<SEC-DOCUMENT>0000851205-25-000012.txt : 20250213
<SEC-HEADER>0000851205-25-000012.hdr.sgml : 20250213
<ACCEPTANCE-DATETIME>20250213063140
ACCESSION NUMBER:		0000851205-25-000012
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		138
CONFORMED PERIOD OF REPORT:	20241231
FILED AS OF DATE:		20250213
DATE AS OF CHANGE:		20250213

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			COGNEX CORP
		CENTRAL INDEX KEY:			0000851205
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL INSTRUMENTS FOR MEASUREMENT, DISPLAY, AND CONTROL [3823]
		ORGANIZATION NAME:           	08 Industrial Applications and Services
		IRS NUMBER:				042713778
		STATE OF INCORPORATION:			MA
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-34218
		FILM NUMBER:		25617086

	BUSINESS ADDRESS:	
		STREET 1:		ONE VISION DR
		CITY:			NATICK
		STATE:			MA
		ZIP:			01760
		BUSINESS PHONE:		5086503000

	MAIL ADDRESS:	
		STREET 1:		ONE VISION DRIVE
		CITY:			NATICK
		STATE:			MA
		ZIP:			01760
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>cgnx-20241231.htm
<DESCRIPTION>10-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:6abacc18-a2b7-49fc-a7c2-9a55de473aa7,g:b2bf2ad7-589f-41d7-85c1-902f84842ef8,d:67e131bb2c504a23903df9579998c003-->
<html xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:srt="http://fasb.org/srt/2024" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:cgnx="http://cognex.com/20241231" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:cyd="http://xbrl.sec.gov/cyd/2024" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns="http://www.w3.org/1999/xhtml" xmlns:ecd="http://xbrl.sec.gov/ecd/2024" xmlns:currency="http://xbrl.sec.gov/currency/2024" xmlns:country="http://xbrl.sec.gov/country/2024" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en-US"><head><meta http-equiv="Content-Type" content="text/html"/>


<title>cgnx-20241231</title></head><body><div style="display:none"><ix:header><ix:hidden><ix:nonNumeric contextRef="c-1" name="dei:AmendmentFlag" id="f-30">false</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:DocumentFiscalYearFocus" id="f-31">2024</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:DocumentFiscalPeriodFocus" id="f-32">FY</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:EntityCentralIndexKey" id="f-33">0000851205</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:CurrentFiscalYearEndDate" format="ixt:date-month-day" id="f-34">12/31</ix:nonNumeric><ix:nonFraction unitRef="shares" contextRef="c-3" decimals="0" name="dei:EntityCommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-35">169,865,714</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-2" decimals="0" name="dei:EntityPublicFloat" format="ixt:num-dot-decimal" scale="0" id="f-36">8,001,170,186</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" format="ixt:fixed-zero" scale="3" id="f-419">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" format="ixt:fixed-zero" scale="3" id="f-420">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" format="ixt:fixed-zero" scale="3" id="f-421">&#8212;</ix:nonFraction><ix:nonNumeric contextRef="c-39" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="f-435">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="c-41" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="f-437">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="c-43" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="f-443">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="c-45" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="f-445">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="c-47" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="f-447">P6Y</ix:nonNumeric><ix:nonNumeric contextRef="c-50" name="cgnx:ProductWarrantyPeriod" id="f-451">P1Y</ix:nonNumeric><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-475">1,271,000</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-476">1,271,000</ix:nonFraction><ix:nonNumeric contextRef="c-52" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-477">2</ix:nonNumeric><ix:nonNumeric contextRef="c-41" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="f-478">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="c-53" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-479">5</ix:nonNumeric><ix:nonNumeric contextRef="c-54" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-480">2</ix:nonNumeric><ix:nonNumeric contextRef="c-55" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-481">5</ix:nonNumeric><ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="cgnx:MaximumInvestmentOfCompanyInPartnership" scale="-2" id="f-482">5</ix:nonFraction><ix:nonNumeric contextRef="c-50" name="cgnx:ProductWarrantyPeriod" format="ixt-sec:duryear" id="f-483">1</ix:nonNumeric><ix:nonNumeric contextRef="c-50" name="cgnx:RevenuePaymentTerms" format="ixt-sec:durday" id="f-484">30</ix:nonNumeric><ix:nonNumeric contextRef="c-7" name="us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" id="f-922">http://fasb.org/us-gaap/2024#OtherAssetsNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="c-6" name="us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" id="f-923">http://fasb.org/us-gaap/2024#OtherAssetsNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="c-7" name="us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" id="f-924">http://fasb.org/us-gaap/2024#OtherLiabilitiesNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="c-6" name="us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" id="f-925">http://fasb.org/us-gaap/2024#OtherLiabilitiesNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="c-169" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-1020">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="c-172" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-1023">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="c-174" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-1025">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="c-173" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-1026">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="c-175" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-1027">P3Y</ix:nonNumeric><ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" scale="-2" id="f-1160">50</ix:nonFraction><ix:nonFraction unitRef="segment" contextRef="c-4" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-1469">one</ix:nonFraction><ix:nonNumeric contextRef="c-279" name="ecd:TrdArrDuration" format="ixt-sec:durday" id="f-1573">360</ix:nonNumeric></ix:hidden><ix:references xml:lang="en-US"><link:schemaRef xlink:type="simple" xlink:href="cgnx-20241231.xsd"/></ix:references><ix:resources><xbrli:unit id="usd"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:unit id="shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:unit id="usdPerShare"><xbrli:divide><xbrli:unitNumerator><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unitNumerator><xbrli:unitDenominator><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unitDenominator></xbrli:divide></xbrli:unit><xbrli:unit id="number"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:unit id="lease_component"><xbrli:measure>cgnx:lease_component</xbrli:measure></xbrli:unit><xbrli:unit id="sqft"><xbrli:measure>utr:sqft</xbrli:measure></xbrli:unit><xbrli:unit id="sgd"><xbrli:measure>iso4217:SGD</xbrli:measure></xbrli:unit><xbrli:unit id="eur"><xbrli:measure>iso4217:EUR</xbrli:measure></xbrli:unit><xbrli:unit id="cny"><xbrli:measure>iso4217:CNY</xbrli:measure></xbrli:unit><xbrli:unit id="mxn"><xbrli:measure>iso4217:MXN</xbrli:measure></xbrli:unit><xbrli:unit id="huf"><xbrli:measure>iso4217:HUF</xbrli:measure></xbrli:unit><xbrli:unit id="gbp"><xbrli:measure>iso4217:GBP</xbrli:measure></xbrli:unit><xbrli:unit id="jpy"><xbrli:measure>iso4217:JPY</xbrli:measure></xbrli:unit><xbrli:unit id="chf"><xbrli:measure>iso4217:CHF</xbrli:measure></xbrli:unit><xbrli:unit id="cad"><xbrli:measure>iso4217:CAD</xbrli:measure></xbrli:unit><xbrli:unit id="vote"><xbrli:measure>cgnx:Vote</xbrli:measure></xbrli:unit><xbrli:unit id="group"><xbrli:measure>cgnx:group</xbrli:measure></xbrli:unit><xbrli:unit id="segment"><xbrli:measure>cgnx:Segment</xbrli:measure></xbrli:unit><xbrli:context id="c-1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-06-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2025-01-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-10"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-11"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-12"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-13"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-14"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-15"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-16"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-17"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-18"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-19"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-20"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-21"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-22"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-23"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-24"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-25"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-26"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-27"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-28"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-29"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-32"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-33"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-34"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-35"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-36"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-37"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-38"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-39"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-40"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-41"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:ComputerHardwareAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-42"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:ComputerHardwareAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-43"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-44"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-45"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologiesAndOtherIntangibleAssetsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-46"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologiesAndOtherIntangibleAssetsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-47"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-48"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-49"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-50"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-51"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-52"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-53"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-54"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-55"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-56"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-57"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-58"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-59"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-60"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-61"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryBillSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-62"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryBillSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-63"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-64"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-65"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-66"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-67"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-68"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-69"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-70"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-71"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-72"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-73"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-74"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-75"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-76"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-77"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-78"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-79"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-80"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-81"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-82"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-83"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-84"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-85"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-86"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-87"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-88"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-89"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-90"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:HardwareAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-91"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:HardwareAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-92"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-93"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-94"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-95"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-96"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-97"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A88000SquareFootPremisesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-98"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-99"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-100"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-06-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-101"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AachenGermanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-102"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AachenGermanyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-103"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SACSiriusAdvancedCyberneticsGmbHMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-104"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-105"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-106"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-107"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-108"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-109"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-110"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-111"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OtherIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-112"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-113"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-114"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-115"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-116"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-117"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-118"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-119"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-120"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-121"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-122"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-123"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:GBP</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-124"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:GBP</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-125"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-126"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-127"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CHF</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-128"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CHF</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-129"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-130"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-131"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-132"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-133"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-134"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-135"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-136"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-137"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-138"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-139"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-140"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-141"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-142"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-143"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-144"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-145"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-146"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-147"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-148"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-149"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-150"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-151"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-152"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-153"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2018-04-25</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-154"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-03-12</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-155"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-156"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-03-03</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-157"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-158"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-159"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-160"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-10-02</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-161"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-10-03</xbrli:startDate><xbrli:endDate>2023-10-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-162"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-02</xbrli:startDate><xbrli:endDate>2024-09-29</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-163"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2024-09-30</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-164"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-05-03</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-165"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2021And2007StockOptionAndIncentivePlansMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-05-03</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-166"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-04</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-167"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-168"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-169"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-170"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-171"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-172"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-173"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-174"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-175"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-176"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-177"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-178"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-179"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-180"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-181"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-182"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-183"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-184"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-185"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-186"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-187"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-188"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-189"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-190"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-191"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-192"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-193"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-194"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-195"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-196"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-197"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-198"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:RevenueCommissionersIrelandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-199"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:StateAdministrationOfTaxationChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-200"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">country:JP</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-201"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">country:KP</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-202"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-203"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-204"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-205"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-206"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-207"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-208"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">cgnx:OperatingLossCarryforwardMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-209"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">cgnx:TaxCreditCarryforwardMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-210"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">cgnx:TaxCreditCarryforwardMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-211"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-212"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-213"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-214"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-215"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-216"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-217"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-218"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-219"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-220"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-221"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-222"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-223"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-224"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-225"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-226"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-227"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-228"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-229"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-230"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-232"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-233"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-234"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-235"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-236"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-237"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-238"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-239"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-240"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-241"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-242"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:ResearchDevelopmentAndEngineeringExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-243"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:ResearchDevelopmentAndEngineeringExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-244"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:ResearchDevelopmentAndEngineeringExpensesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-245"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:SegmentGeneralAndEngineeringExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-246"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:SegmentGeneralAndEngineeringExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-247"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:SegmentGeneralAndEngineeringExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-248"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-249"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-18</xbrli:startDate><xbrli:endDate>2023-10-18</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-250"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-251"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-09-30</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-252"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-253"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-254"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-255"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:UnusualOrInfrequentItemAxis">us-gaap:FireMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-256"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:UnusualOrInfrequentItemAxis">us-gaap:FireMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-257"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2025-02-12</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-258"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-259"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-260"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-261"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-262"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-263"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-264"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-265"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-266"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-267"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-268"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-269"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-270"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-271"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-272"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-273"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-274"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-275"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-276"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-277"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-278"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-279"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-09-30</xbrli:startDate><xbrli:endDate>2024-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-280"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="ecd:TradingArrAxis">cgnx:JoergKuechenRuleTradingArrangementCommonStockPurchaseMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-281"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="ecd:TradingArrAxis">cgnx:JoergKuechenRuleTradingArrangementCommonStockSaleMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-12-31</xbrli:instant></xbrli:period></xbrli:context><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="f-107 f-108 f-109" linkRole="http://www.xbrl.org/2003/role/link" toRefs="fn-1" order="1"/></ix:resources></ix:header></div><div id="i67e131bb2c504a23903df9579998c003_1"></div><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:3pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:11pt;font-weight:700;line-height:120%">UNITED STATES</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:11pt;font-weight:700;line-height:120%">SECURITIES AND EXCHANGE COMMISSION</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Washington, D.C. 20549</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:22pt;font-weight:700;line-height:120%">FORM <ix:nonNumeric contextRef="c-1" name="dei:DocumentType" id="f-1">10-K</ix:nonNumeric> </span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:120%">(Mark One)</span></div><div style="text-indent:24.75pt"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentAnnualReport" format="ixt-sec:boolballotbox" id="f-2">&#9746;</ix:nonNumeric></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">   Annual report pursuant to Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 for the fiscal year ended <ix:nonNumeric contextRef="c-1" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en" id="f-3">December 31, 2024</ix:nonNumeric> or</span></div><div style="text-indent:24.75pt"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox" id="f-4">&#9744;</ix:nonNumeric> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"> Transition report pursuant to Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 for the transition period from </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:underline">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">to</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:underline">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:120%">Commission File Number </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:120%;text-decoration:underline"><ix:nonNumeric contextRef="c-1" name="dei:EntityFileNumber" id="f-5">001-34218</ix:nonNumeric></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:120%"> </span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:17pt;font-weight:700;line-height:120%;text-decoration:underline"><ix:nonNumeric contextRef="c-1" name="dei:EntityRegistrantName" id="f-6">COGNEX CORP</ix:nonNumeric>ORATION</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:120%">(Exact name of registrant as specified in its charter)</span></div><div style="margin-top:5pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:511.50pt"><tr><td style="width:1.0pt"/><td style="width:13.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:136.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:252.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:85.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:13.75pt"/><td style="width:1.0pt"/></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" id="f-7">Massachusetts</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityTaxIdentificationNumber" id="f-8">04-2713778</ix:nonNumeric></span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:20pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">(State or other jurisdiction of<br/>incorporation or organization)</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">(I.R.S. Employer<br/>Identification No.)</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressAddressLine1" id="f-9">One Vision Drive</ix:nonNumeric> </span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressCityOrTown" id="f-10">Natick</ix:nonNumeric>,&#160;<ix:nonNumeric contextRef="c-1" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="f-11">Massachusetts</ix:nonNumeric>&#160;<ix:nonNumeric contextRef="c-1" name="dei:EntityAddressPostalZipCode" id="f-12">01760</ix:nonNumeric>-2059</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%">(<ix:nonNumeric contextRef="c-1" name="dei:CityAreaCode" id="f-13">508</ix:nonNumeric>) <ix:nonNumeric contextRef="c-1" name="dei:LocalPhoneNumber" id="f-14">650-3000</ix:nonNumeric> </span></div><div style="text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:512.25pt"><tr><td style="width:1.0pt"/><td style="width:78.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:85.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:174.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:85.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:78.25pt"/><td style="width:1.0pt"/></tr><tr style="height:21pt"><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">(Address, including zip code, and telephone number,<br/>including area code, of principal executive offices)</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Securities registered pursuant to Section&#160;12(b) of the Act:</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:37.609%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:19.574%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:39.517%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%;text-decoration:underline">Title of Each Class</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%;text-decoration:underline">Trading Symbol(s)</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%;text-decoration:underline">Name of Exchange on Which Registered</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:Security12bTitle" id="f-15">Common Stock, par value $.002 per share</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:TradingSymbol" id="f-16">CGNX</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" id="f-17">The NASDAQ Stock Market LLC</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Securities registered pursuant to Section&#160;12(g) of the Act: None</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityWellKnownSeasonedIssuer" id="f-18">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark if the registrant is not required to file reports pursuant to Section&#160;13 or Section&#160;15(d) of the Act.</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityVoluntaryFilers" id="f-19">No</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark whether the registrant (1)&#160;has filed all reports required to be filed by Section&#160;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)&#160;has been subject to such filing requirements for the past 90 days.</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityCurrentReportingStatus" id="f-20">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">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 during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityInteractiveDataCurrent" id="f-21">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or emerging growth company. See the definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company&#8221; and "emerging growth company" in Rule 12b-2 of the Exchange Act. (Check one):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:0.1%"/><td style="width:2.732%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:45.967%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.272%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:44.796%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen" id="f-22">Large accelerated filer</ix:nonNumeric></span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Accelerated filer</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Non-accelerated filer</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntitySmallBusiness" format="ixt:fixed-false" id="f-23">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Smaller&#160;reporting&#160;company</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityEmergingGrowthCompany" format="ixt:fixed-false" id="f-24">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Emerging growth company</span></td></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:8pt;font-weight:400;line-height:120%">o</span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark whether the registrant has filed a report on and attestation to its management&#8217;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. </span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:IcfrAuditorAttestationFlag" format="ixt:fixed-true" id="f-25">&#9746;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements. </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentFinStmtErrorCorrectionFlag" format="ixt:fixed-false" id="f-26">o</ix:nonNumeric></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of incentive-based compensation received by any of the registrant&#8217;s executive officers during the relevant recovery period pursuant to &#167;240.10D-1(b). </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:8pt;font-weight:400;line-height:120%">o</span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:112%">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act).</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityShellCompany" format="ixt:fixed-false" id="f-27">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Aggregate market value of voting stock held by non-affiliates of the registrant as of June&#160;28, 2024: $<ix:nonFraction unitRef="usd" contextRef="c-2" decimals="0" name="dei:EntityPublicFloat" format="ixt:num-dot-decimal" scale="0" id="f-28">8,001,170,186</ix:nonFraction> </span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Common stock, par value $.002 per share, outstanding as of January&#160;26, 2025: <ix:nonFraction unitRef="shares" contextRef="c-3" decimals="0" name="dei:EntityCommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-29">169,865,714</ix:nonFraction> shares</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">DOCUMENTS INCORPORATED BY REFERENCE:</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">The registrant intends to file a Definitive Proxy Statement pursuant to Regulation 14A within 120&#160;days of the end of the fiscal year ended December&#160;31, 2024. Portions of such Proxy Statement are incorporated by reference in Part&#160;III of this report.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><span><br/></span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_7"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ANNUAL REPORT ON FORM 10-K</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">FOR THE YEAR ENDED DECEMBER 31, 2024 </span></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">INDEX</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:14.104%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:72.584%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.012%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_10">PART I</a></span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_10">1</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 1.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_13">BUSINESS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_13">1</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 1A.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_16">RISK FACTORS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_16">6</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;1B.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_19">UNRESOLVED STAFF COMMENTS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_19">14</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 1C.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_22">CYBERSECURITY</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_22">14</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 2.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_25">PROPERTIES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_25">15</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 3.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_28">LEGAL PROCEEDINGS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_28">16</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 4.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_31">MINE SAFETY DISCLOSURES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_31">16</a></span></div></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_34">PART II</a></span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_34">17</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 5.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_37">MARKET FOR REGISTRANT&#8217;S COMMON EQUITY, RELATED STOCKHOLDER MATTERS, AND ISSUER PURCHASES OF EQUITY SECURITIES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_37">17</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 6.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_40">[RESERVED]</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_40">19</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 7.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_43">MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_43">19</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;7A.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_58">QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_58">25</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 8.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_61">FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_61">27</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 9.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_214">CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURE</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_214">65</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 9A.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_217">CONTROLS AND PROCEDURES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_217">65</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 9B.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_220">OTHER INFORMATION</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_220">67</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 9C.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_226">DISCLOSURE REGARDING FOREIGN JURISDICTIONS THAT PREVENT INSPECTIONS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_226">67</a></span></div></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_229">PART&#160;III</a></span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_229">67</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;10.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_232">DIRECTORS, EXECUTIVE OFFICERS, AND CORPORATE GOVERNANCE</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_232">67</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;11.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_235">EXECUTIVE COMPENSATION</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_235">67</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;12.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_238">SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND MANAGEMENT AND RELATED STOCKHOLDER MATTERS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_238">67</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;13.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_241">CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS, AND DIRECTOR INDEPENDENCE</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_241">68</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;14.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_244">PRINCIPAL ACCOUNTING FEES AND SERVICES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_244">68</a></span></div></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_247">PART&#160;IV</a></span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_247">68</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;15.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_250">EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_250">68</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 16.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_253">FORM 10-K SUMMARY</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_253">69</a></span></div></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><span><br/></span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_10"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART I</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This Annual Report on Form 10-K contains forward-looking statements within the meaning of the federal securities laws. Readers can identify these forward-looking statements by our use of the words &#8220;expects,&#8221; &#8220;anticipates,&#8221; &#8220;estimates,&#8221; &#8220;believes,&#8221; &#8220;projects,&#8221; &#8220;intends,&#8221; &#8220;plans,&#8221; &#8220;will,&#8221; &#8220;may,&#8221; &#8220;shall,&#8221; &#8220;could,&#8221; &#8220;should,&#8221; and similar words and other statements of a similar sense. Our future results may differ materially from current results and from those projected in the forward-looking statements as a result of known and unknown risks and uncertainties. Readers should pay particular attention to considerations described in the section captioned &#8220;Risk Factors,&#8221; appearing in Part&#160;I&#160;- Item&#160;1A of this Annual Report on Form 10-K. We caution readers not to place undue reliance upon any such forward-looking statements, which speak only as of the date made. We disclaim any obligation to subsequently revise forward-looking statements to reflect the occurrence of anticipated or unanticipated events or circumstances after the date such statements are made.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Unless the context otherwise requires, the words &#8220;Cognex</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">,&#8221; the &#8220;Company,&#8221; &#8220;we,&#8221; &#8220;our,&#8221; &#8220;us,&#8221; and &#8220;our company&#8221; refer to Cognex Corporation and its consolidated subsidiaries.</span></div><div id="i67e131bb2c504a23903df9579998c003_13"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 1: BUSINESS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our Company</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Founded in 1981, Cognex Corporation (&#8220;the Company&#8221; or &#8220;Cognex&#8221;) invents and commercializes technologies that address some of the most critical manufacturing and distribution challenges. We are a leading global provider of machine vision products and solutions that improve efficiency and quality in a wide range of businesses across attractive industrial end markets. Our solutions blend physical products and software to capture and analyze visual information, allowing for the automation of manufacturing and distribution tasks for customers worldwide. Machine vision products are used to automate the manufacturing or distribution and tracking of discrete items, such as mobile phones, automotive components, and e-commerce packages, by locating, identifying, inspecting, and measuring them. Machine vision is particularly valuable for applications in which human vision is inadequate to meet requirements for size, accuracy, or speed, or in instances where substantial cost savings are obtained through the reduction of labor or improved product quality.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex sells to customers in nearly all industries in which discrete items are manufactured on an assembly line or moved through a distribution center or warehouse. Our largest industries by revenue are the logistics, automotive,  and consumer electronics industries, which combined represented approximately 60% of our total revenue in 2024.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our Industry and Market Opportunity </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Machine vision is used in a variety of industries where technology is widely recognized as an important component of automated production, distribution, and quality assurance. Virtually every manufacturer or logistics provider can achieve better quality and efficiency by using machine vision. This results in a broad base of customers across a variety of industries, including logistics, automotive, consumer electronics, semiconductor, consumer products, medical-related, and food and beverage.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our End Markets</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Logistics</span></div><div style="margin-top:5pt;text-align:justify"><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The logistics industry demands high-speed, efficient throughput combined with end-to-end supply chain traceability. Consumers expect fast and cost-effective fulfillment. Retail distributors, e-commerce platforms, and parcel processing customers face an ongoing tight labor market, increased demand, and increased costs. To address these challenges, organizations are increasingly deploying automated</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> traceability</span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">,</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> dimensioning</span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, and</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> detection </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">solutions featuring Cognex machine vision, including barcode reading and AI-enabled vision technology, either directly or with the help of partners, such as an original equipment manufacturer ("OEM"), machine builder, or system integrator.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> We believe our e-commerce logistics business is differentiated by the high performance of our barcode reading and that potential growth will be driven by retailers investing in online fulfillment. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">From an automation perspective, the logistics industry is still in its early stages with a large reliance on human labor and a low rate of robotic automation. Today, most applications in logistics are centered around barcode reading. Beyond barcode reading, we expect vision applications in logistics to grow quickly and become a more substantial part of our business. Vision applications include tasks such as inspecting packages for damage, object and symbol recognition, and dimensioning. Geographically, our logistics business started primarily in the United States, but has diversified into Europe and Asia, where we believe customers are beginning to catch up with the United States in logistics automation technology and are reducing share with local incumbent suppliers. Leading e-commerce players invested significantly in late 2020 through early 2022, then took a post-pandemic &#8220;time out&#8221; to absorb </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">excess capacity from early 2022 into 2023, and began investing at a steadier pace in 2024. We believe that logistics has the potential to be our highest-growth end market over the mid to long-term.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Automotive</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The automotive market has been one of our largest markets for the past twenty years. Machine vision is used in almost every step of vehicle manufacturing, from measuring inbound parts, to guiding robot assembly, to inspecting the stitching on leather seats. We currently expect the proliferation of electronics in automobiles to be a significant growth driver in both electric vehicles and internal combustion engine vehicles. For example, innovations in safety, driver assist, and entertainment features increase the number of items to be placed, tracked, measured, and inspected by machine vision.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also anticipate a multi-year wave of investment in hybrid and electric vehicle (&#8220;EV&#8221;) manufacturing equipment, particularly related to battery manufacturing and inspection. Cognex works closely with the major EV battery manufacturers who we believe produce the majority of the world&#8217;s automotive batteries. We believe that these manufacturers are positioned to grow within Asia, and to expand both independently and through partnerships in the Americas and Europe. We expect our existing relationships and proven offerings to position us to capture a significant share of this growth. We are also well positioned to continue to support traditional powertrain investments on internal combustion engine vehicles, supporting long-term growth in the automotive market.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Consumer Electronics</span></div><div style="margin-top:5pt;text-align:justify"><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Today, electronic components and devices are difficult to manufacture without machine vision. Machine vision has made it possible to achieve the density of today&#8217;s integrated circuits and to manufacture them cost-effectively. Electronics producers and leading OEMs rely on Cognex</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> machine vision</span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">,</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> including </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">AI-enabled vision technology,</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> 3D vision</span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">, and</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> barcode reading, </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">to build, inspect, and track semiconductors, printed circuit boards, electronic hardware, and consumer devices. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We anticipate major investments in new generations of consumer electronics. A significant amount of visual inspection in consumer electronics is still performed manually by humans. As labor becomes more costly and scarce, these customers are looking for productivity initiatives to automate their processes. We also expect leading companies in this space to continue to grow based on new technologies and the devices that incorporate them. We believe new devices will be difficult to manufacture on a large scale, and therefore will require more innovative vision products in that process. Cognex has close relationships with the largest and most sophisticated companies in the consumer electronics market, and we expect to be a partner of choice as they bring new products to market.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Semiconductor</span></div><div style="margin-top:5pt;text-align:justify"><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Machine vision has made it possible to </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">achieve the density in today&#8217;s integrated circuits and to manufacture them cost-effectively. Semiconductor manufacturers rely on Cognex machine vision, including AI-based technology, to ensure precise alignment of wafers during masking and etching processes, increase traceability of wafers and die as they move through the front and back-end processes, and improve product quality through advanced inspection procedures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As AI continues to drive demand for high-end logic process chips with our OEM customers, the overall semiconductor market has the potential for outsized growth in the coming years. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Other</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of end markets that can benefit from machine vision applications is expanding. Other end market uses of Cognex machine vision include regulated manufacturers reducing counterfeiting, food producers improving food safety, and manufacturers using 3D measurement for robotic guidance. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our Business Strategies</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Historically, Cognex has been a leader in providing the most powerful machine vision technology to the most sophisticated customers and solving their most challenging automation problems. There are thousands of such customers and we believe our market share with these customers is high. There is also a much larger segment of customers with less complex applications and less automation engineering capacity who are looking for more standardized products that are easy to implement and easy to use. Our goal is to expand our business with these customers by offering tailored products and increasing our sales coverage. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Growth through innovation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We invest heavily in research and development to maintain our position as a technology leader in machine vision. We continue to introduce products embedded with artificial intelligence ("AI") technology that augments rule-based machine vision with image-based analysis. We invest in technology that makes vision easier to use and more affordable, and therefore, available to a broader base of customers, such as our edge learning products that enable customers with less technical capabilities to use machine vision while minimizing installation and applications support. We also continue to invest in technology that addresses the most challenging vision applications, such as our deep learning vision software that solves complex applications with unpredictable defects and deviations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Increase of sales coverage</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We reach a broad base of customers through our worldwide direct sales force that sells primarily to large customers, as well as through our network of distributors and integrators that sell primarily to smaller customers who may be more geographically remote or may require integration assistance or supplemental technical support. In 2023, we began investing more aggressively to expand our direct sales force to reach customers new to factory automation or new to Cognex, who have yet to fully benefit from all that machine vision can offer. We are doing so by adding a new sales engineer profile to our team, ambitious recent college graduates, and are investing in their onboarding and training. These entry-level sales personnel are enabling us to broaden and deepen our sales coverage, make many more, shorter sales calls, and reach more customers. We expect this sales investment to expand our reach, increase penetration, and further diversify our customer base.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Expansion of market position</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We continue to invest in our core markets, such as logistics, automotive, and consumer electronics, where we are a leading provider of vision and ID products for warehouse and factory automation. Within these markets, we are making significant investments to focus on what we believe to be the fastest-growing applications and use cases. In the logistics market for example, we are moving beyond barcode reading into more complex applications in distribution centers and parcel and post warehouses.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Inorganic growth</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We plan to drive inorganic growth through deeper penetration of our served machine vision market and expansion in adjacent markets. We are focusing specifically on markets in which we expect our products and solutions, application expertise, and customer and industry relationships to enable us to provide significant value to end users.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We seek out selective opportunities in new applications and markets through the acquisition of businesses and technologies that are synergistic with our core markets. We are selective in choosing businesses and technologies that we believe will enhance long-term growth and profitability. In the fourth quarter of 2023, we acquired Moritex Corporation, a global provider of premium optical components based in Japan. With an enterprise value of approximately $270 million, this was Cognex's largest acquisition to-date. We plan to continue to seek high-return, EPS-accretive acquisition opportunities to expand our product lines, customer base, distribution network, and technical talent.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Culture</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our strong and unique corporate culture reinforces our values of customer first and innovation, and enables us to attract and retain smart, enthusiastic, and creative talent who are motivated to solve the most challenging vision tasks for customers.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Products and Technology </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex offers a full range of machine vision systems and sensors, vision software, and barcode readers designed to meet customer needs at different performance and price points. Our products range from deep learning solutions that solve complex applications with unpredictable defects and deviations, to lower-cost vision sensors that conduct simple presence/absence inspections. Our products have a variety of physical forms, depending on the user's needs. For example, customers can purchase vision software to use with their own camera and processor, or they can purchase a standalone system that combines imager, processor, and software into a single package.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Vision Systems and Sensors</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Vision systems combine smart cameras and software to perform a wide range of tasks, including part location, identification, measurement, assembly verification, and robotic guidance. Vision sensors can deliver an easy-to-use, low-cost, reliable solution for simple pass/fail inspections, such as checking the presence and size of parts. In-Sight&#174; vision systems and sensors include our 2D and 3D vision systems, as well as our In-Sight SnAPP&#8482; sensor. These products leverage various forms of AI, including rule-based coding, as well as deep learning and edge learning technology leveraging pre-trained models powered by neural networks. Our product portfolio meets the </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">varying price and performance requirements of our broad base of industrial customers. Our deep learning-based systems automate and solve complex inline inspections that typically require human judgment for defect detection, optical character recognition ("OCR"), assembly verification, or classification. Similar to our deep learning-based systems, our edge learning-based systems use pre-trained models, but on simpler applications that prioritize ease of use and have a broader appeal with easier and faster implementation and training.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Vision Software</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Vision software offers customers the flexibility of the Cognex vision tools library to use with the cameras, frame grabbers, and peripheral equipment of their choice. Cognex VisionPro&#174; software offers an extensive suite of patented vision tools, including both traditional rule-based tools and deep learning-enabled tools, for advanced programming. Its QuickBuild&#8482; prototyping environment allows customers to build complete vision applications with the simplicity of a graphical flowchart-based programming interface.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Barcode Readers</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex industrial image-based barcode readers quickly and reliably read 1D, 2D, label-based, and direct part mark ("DPM") codes found in nearly every industry including logistics, automotive, consumer products, and medical-related. The DataMan&#174; product line, which includes fixed-mount and handheld models, as well as barcode verifiers, help organizations optimize performance, increase throughput, and control traceability.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Vision Accessories</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex vision accessories are designed for easy integration with Cognex products and applications. Cameras are available in both area scan and line scan formats to address a wide variety of applications. Lenses and lighting are also available in both embedded and component formats to provide high-quality image acquisition, including a range of premium optical components that were added to the Company's vision accessory portfolio with the acquisition of Moritex Corporation in the fourth quarter of 2023. From value solutions to high-performance hardware, Cognex offers industrial cameras, lenses, lighting, vision controllers, frame grabbers, and I/O cards to meet customer requirements. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Research, Development, and Engineering</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex engages in research, development, and engineering (RD&amp;E) to enhance our existing products and to develop new products and functionality to address market opportunities. We believe that a continued commitment to RD&amp;E activities is essential to maintain or achieve product leadership with our existing products and to provide innovative new product offerings, as well as to provide engineering support for large customers. In addition, we consider our ability to accelerate time to market for new products to be critical to our revenue growth</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> We incurred RD&amp;E costs of approximately $140 million (15% of revenue), $139 million (17% of revenue), and $141 million (14% of revenue), for the years ended December 31, 2024, 2023, and 2022, respectively. We expect to continue our commitment to RD&amp;E, even during periods of lower revenue levels, to introduce new platforms, products, and solutions throughout economic cycles.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Intellectual Property </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on the technical expertise, creativity, and knowledge of our personnel, and therefore, we utilize patent, trademark, copyright, and trade secret protection to maintain our competitive position and protect our proprietary rights in our products and technology. While our intellectual property rights are important to our success, we believe that our business as a whole is not materially dependent on any particular patent, trademark, copyright, or other intellectual property right.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Operations </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Most of Cognex&#8217;s hardware products, including our vision systems, vision sensors, and barcode readers, are manufactured utilizing third-party contractors, whereby the majority of component procurement, system assembly, and initial testing are performed by electronics manufacturing services suppliers. Cognex&#8217;s primary contract manufacturers are located in Indonesia and Malaysia. We purchase assembled goods from our contract manufacturers, who use specified components sourced from vendor lists approved by Cognex and assembly/test processes created and controlled by Cognex. After the completion of initial testing, assembled products from our contract manufacturers are routed to our distribution centers where trained Cognex personnel load Cognex software onto the products, provide additional assembly and image alignment as needed, and perform quality control procedures. Cognex manufactures optical components, including our lenses and lighting, at our in-house production plants located in China and Vietnam that are then stocked in our distribution centers. Cognex ships finished products for customers located in the Americas from our Southborough, Massachusetts distribution center, for </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">customers located in Europe from our Cork, Ireland distribution center, and for customers located in Asia from our Singapore distribution center.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Sales Channels and Support Services</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex sells its products through a worldwide direct sales force that primarily focuses on the development of strategic accounts that generate or are expected to generate significant sales volume, as well as through a global network of distribution and integration partners. Our distribution partners provide sales and local support to help Cognex reach the many prospects for our products in factories around the world, and our integration partners are experts in vision and complementary technologies that can provide turnkey solutions for complex automation projects using vision. Through each of these channels, sales engineers call directly on targeted accounts, with the assistance of application engineers, and manage the activities of our distribution and integration partners within their territories in order to provide an advantageous sales model for our products. In 2023, we began investing more aggressively to expand our direct sales force to include entry-level sales personnel to sell our easier-to-deploy and easier-to-use products.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sales to customers based outside of the United States represented approximately 67% of our total revenue in 2024, with approximately 24% from customers based in Europe, approximately 18% from customers based in Greater China, and approximately 25% from customers based in other regions outside the United States. Sales to customers based in Europe are denominated in Euros and U.S. Dollars, sales to customers based in Greater China are denominated in Renminbi for sales within Mainland China and U.S. Dollars in other territories, and sales to customers based in other regions are denominated in U.S. Dollars, Japanese Yen, Korean Won, Indian Rupee, and Mexican Pesos.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex&#8217;s service offerings represent less than 10% of our total revenue and include maintenance and support, consulting, and training services. Maintenance and support programs include hardware support programs that entitle customers to have products repaired, as well as software support programs that provide customers with application support and software updates to the latest software releases. Application support is provided by technical support personnel located at Cognex regional offices, as well as by field service engineers that provide support at the customer&#8217;s production site. We provide consulting services that range from a specific area of functionality to a completely integrated installed application. Training services include a variety of product courses that are available at our offices worldwide, at customer facilities, and online.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Competition </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex is one of the leading machine vision companies in the world. Our competitors include other vendors of machine vision systems, controllers, and components; manufacturers of image processing systems, sensors, and components; and system integrators. We also compete with internal engineering departments of current or prospective customers, as well as open-source tools available for free from various companies, including tools using AI.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Human Capital</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our employees are our most valuable asset and are critical to our success. We create and maintain an environment where &#8220;Cognoids,&#8221; a unique name for our employees, can engage with each other, perform their best work, develop their careers, and be creative. As of December&#160;31, 2024, Cognex employed 2,914 Cognoids globally, including 1,586 in sales, marketing, and service activities; 653 in research, development, and engineering; 435 in manufacturing and quality assurance; and 240 in information technology, finance, and administration. Of our 2,914 Cognoids, 1,949 are based outside of the United States.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We pride ourselves on having a unique culture that exemplifies our motto of </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Work Hard, Play Hard, Move Fast</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Our culture guides the actions and behaviors of our Cognoids and is defined by our ten values - </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Customer First, Excellence, Perseverance, Enthusiasm, Creativity, Pride, Integrity, Recognition, Sharing, and Fun</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We are committed to finding the very best talent to be part of our growing technology company. We believe our culture enables us to attract and retain smart, energetic, and creative talent, and is central to our ability to execute our operating plans and strategic initiatives. To preserve and enhance our corporate culture, while recognizing differences across and within regions, we have a global team of Cognoids who serve as Ministers of Culture, led by our Chief Culture Officer.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe in investing in tools and resources that support employees&#8217; learning and development and setting a compensation structure that reflects the Company&#8217;s commitment to a pay-for-performance philosophy. We believe these efforts align with our stockholders&#8217; long-term interests and better position Cognex to continue to operate as a leader in the machine vision industry.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Regulatory Compliance</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex&#8217;s capital expenditures, earnings, and competitive position are not materially affected by compliance with federal, state, and local environmental provisions, which have been enacted or adopted to regulate the distribution of materials into the environment.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Available Information</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex maintains a website at www.cognex.com. We make available, free of charge, on our website in the &#8220;Company&#8221; section under the caption &#8220;Investor Information&#8221; followed by &#8220;Financial Reports&#8221; and then &#8220;SEC FiIings,&#8221; our Annual Report on Form 10-K, Quarterly Reports on Form 10-Q, and Current Reports on Form 8-K, including exhibits, and amendments to those reports filed or furnished pursuant to Section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended (the "Exchange Act"), as soon as reasonably practicable after such reports are electronically filed with, or furnished to, the SEC. Cognex&#8217;s reports filed with, or furnished to, the SEC are also available at the SEC&#8217;s website at www.sec.gov. Cognex has used, and intends to continue to use, its investor relations website as a means of disclosing material non-public information and for complying with our disclosure obligations under Regulation FD. Information contained on our website is not a part of, or incorporated by reference into, this Annual Report on Form 10-K or in any other document or report that Cognex files with the SEC, and any references to Cognex's website are intended to be inactive textual references only.</span></div><div id="i67e131bb2c504a23903df9579998c003_16"></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 1A: RISK FACTORS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The risks and uncertainties described below are not the only ones that we face. Additional risks and uncertainties that we are unaware of, or that we currently deem immaterial, also may become important factors that affect our company in the future. If any of these risks were to occur, our business, financial condition, or results of operations could be materially and adversely affected. This section includes or refers to certain forward-looking statements. We refer you to the explanation of the qualifications and limitations of such forward-looking statements, appearing under the heading "Forward-Looking Statements" in Part II - Item 7 of this Annual Report on Form 10-K.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Risks Related to Execution of our Business Strategy</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our failure to introduce new products in a successful and timely manner could result in the loss of our market share and a decrease in our revenues and profits.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for our products is characterized by rapidly changing technology and increasingly capable competitors. Accordingly, we believe that our future success will depend on our ability to accelerate time-to-market for new products with improved functionality, ease-of-use, performance, and price. This includes continuing to introduce products embedded with artificial intelligence ("AI") technology that augments rule-based machine vision with image-based analysis. There can be no assurance that we will be able to introduce new products in accordance with scheduled release dates or that new products will achieve market acceptance. Our inability to keep pace with the rapid rate of technological change and customer demands in the high-technology marketplace could have a material adverse effect on our operating results. In addition, we may not achieve significant revenue from new product investments for several years, if at all. Moreover, new products, if introduced, may not generate the gross margins that we have experienced historically.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:107%">Increased competition may result in decreased demand or prices for our products and services and may harm our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The machine vision market continues to be fragmented and competitive. Our competitors include primarily other vendors of machine vision systems, controllers, and components; manufacturers of image processing systems, sensors, and components; and system integrators. We also compete with internal engineering departments of current or prospective customers, as well as open-source tools available for free from various companies, including tools using AI. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In recent years, advancements in AI, particularly the availability of sophisticated AI algorithms and open-source machine vision platforms, have lowered the barriers to entry in our market. These tools enable new entrants and low-cost providers, particularly in China, to produce vision systems that may perform comparably to our offerings. This commoditization trend intensifies pricing pressures and challenges our ability to differentiate our products solely on performance or features. Additionally, large technology companies and other competitors with substantial financial and technological resources may continue to develop and distribute free or low-cost solutions, further eroding market prices. If we fail to effectively respond to these trends through innovation, cost management, or other strategies, our competitive position could weaken. This could result in decreased market share, reduced pricing power, and a material adverse effect on our revenue, gross margins, and operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Further, in recent years, we have seen some examples of industry consolidation in our markets. This trend may continue as companies attempt to strengthen or hold their market positions in an evolving industry and as </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">6</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">companies are acquired or are unable to continue operations. We believe that industry consolidation may result in stronger competition and may be accompanied by pressure from customers for lower prices. This could have a material adverse effect on our revenue, gross margins, and operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If we fail to attract and retain key talent, effectively plan for succession, and maintain our unique corporate culture, our business and operating results could suffer.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To support our growth and execute our operating plans and strategic initiatives, we must effectively attract, train, develop, motivate, and retain skilled employees, while maintaining our unique corporate culture. Technical personnel with experience in machine vision, and more recently AI and transformer-based models, are in high demand and competition for their talents is intense. We rely on attracting and retaining talent with these skills to execute our product development plans. We use time-based and performance-based equity awards, including stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"), as a key component of compensation for our more senior employees to align employee interests with the interests of our shareholders, provide competitive compensation packages, and encourage employee retention. Our stock price volatility may cause periods of time during which option exercise prices might be less than the sale price of our common stock or the value of RSUs might be less competitive, which may lessen the retentive attributes of these awards. We are limited as to the number of stock options and RSUs that we may grant under our stock plans, and we are unsure how effective different stock-based awards with different vesting schedules will be to retain key talent. Accordingly, we may find it difficult to attract and retain employees, and any such difficulty could materially adversely affect our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our success significantly depends on the continued contributions of our executive officers and other key management personnel. The loss of any of these individuals could materially adversely affect our business, operating results, and financial condition. Effective succession planning is crucial to ensure smooth transitions and maintain business continuity. Failure to attract and retain executive officers and other key management personnel or to implement effective succession planning could have a material adverse effect on our business, reputation, and financial performance.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our failure to properly manage the distribution of our products and services could result in the loss of revenues and profits.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We utilize a direct sales force, as well as a network of distribution and integration partners, to sell our products and services. We are continually reviewing our go-to-market strategy to help ensure that we are reaching the most customers that we can and with the highest level of service. At times, this may require strategic changes to our sales organization or enlisting or dropping various partners in certain regions, which could result in additional costs or operational challenges. In 2023, we began investing more aggressively to expand our direct sales force to include entry-level sales personnel to sell our easier-to-deploy and easier-to-use products.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To support the expansion of our business internationally, we may decide to make changes to our operating structure in other countries when we believe these changes will make us more competitive by reaching additional customers, offering faster delivery, importation services, and/or local currency sales. These new operating models may require changes in legal structures, business systems, and business processes that may result in significant business disruption and negatively impact our customers&#8217; experience, resulting in loss of sales. Furthermore, as we assume more responsibility for the importation of our products into other countries, we face higher compliance risk to adhere to local regulatory and trade requirements. Finally, the local stocking of finished products in countries outside of our primary distribution centers may result in higher costs and increased risk of excess or obsolete inventory associated with maintaining the appropriate level and mix of products in multiple inventory locations, resulting in lower gross margins.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our go-to-market strategy has distinct risks and costs, and therefore, our failure to implement the most advantageous balance in the sales and operating model for our products and services could have a material adverse effect on our revenue and profitability.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Economic, political, and other risks associated with international sales and operations could adversely affect our business and operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2024, approximately 67% of our revenue was derived from customers located outside of the United States. In addition, we source components from suppliers located outside of the United States, including China, utilize third-party contract manufacturers, primarily located in Indonesia and Malaysia, to assemble certain of our products, and manufacture optical components at in-house production plants located in China and Vietnam. We intend to continue to expand our sales and operations outside of the United States and expand our presence in international emerging markets. As a result, our business is subject to the risks inherent in international sales and operations, including, among other things:</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">various regulatory and statutory requirements,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">export and import restrictions, including trade sanctions,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">trade tariffs,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">transportation delays,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">product certification requirements,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">employment regulations and local labor conditions,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">corruption,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties protecting intellectual property,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">varying data protection and privacy laws,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">business systems connectivity issues, </span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">gains and losses associated with foreign currency exposures,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties injecting and repatriating cash, and</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">potentially adverse tax consequences.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Any of these factors could have a material adverse effect on our business, operating results, or financial condition.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We face several risks related to conducting business in China. In recent years, trade tariffs imposed by the United States on certain components imported from Chinese suppliers resulted in higher costs for our products, which, to date, have not been material to our total cost of revenue. In addition to trade tariffs, U.S. export controls that place restrictions on the exportation of our products or a subset of our products, including applicable regulations promulgated by the U.S. Commerce Department&#8217;s Bureau of Industry and Security, have had a negative impact on our revenue from customers based in China. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The recent expansion of U.S. sanctions on Chinese companies, including expanded restrictions with respect to Chinese semi-conductor companies,  has heightened the risks and complexities for U.S. companies conducting business in China. These sanctions have led to increased scrutiny and operational challenges, which may result in costly supply chain shifts and loss of customers and business opportunities. Adjusting our business and supply chain to comply with new or amended international trade restrictions, sanctions, or tariffs can be expensive, time-consuming, and operationally challenging and may cause our customers to find alternative providers of machine vision products and services. Such restrictions are often implemented with little or no advance notice, creating uncertainty and limiting our ability to mitigate their impact effectively. Furthermore, customers in China may perceive heightened risks in doing business with U.S. companies, which may reduce demand for our products. To date, the impact of these restrictions has been immaterial to our total revenue and costs; however, if disputes and conflicts continue or further escalate, actions by governments in response could be significantly more severe and restrictive and could materially adversely affect our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">An escalation of the China-Taiwan conflict could lead to challenges procuring integrated circuit chips from Taiwan-based vendors that are fundamental to the design of our products. Although we are taking steps to mitigate this risk, including purchasing chips in advance of demand, there can be no assurance that these steps will be successful in securing an adequate supply of chips at our current cost structure. Furthermore, purchasing inventory in advance of demand may expose us to increased risk of excess and obsolete inventory and resulting charges.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Implementation of our acquisition strategy may not be successful, which could affect our ability to increase our revenue or profitability and may otherwise adversely affect our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have acquired, and may continue to acquire, new businesses and technologies. During the fourth quarter of 2023, we completed our largest acquisition to date by acquiring Moritex Corporation, a global provider of premium optical components based in Japan, for an enterprise value of approximately $270 million. The Moritex acquisition, and acquisitions in general, may involve significant risks and uncertainties, which could include, among others:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the diversion of management's attention from other operational matters,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the inability to realize expected synergies or other benefits resulting from the acquisition, including the failure to achieve projected sales of acquired products,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties or delays integrating personnel, operations, technologies, products, processes, and systems of the acquired business, particularly in locations far from the Company's headquarters,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the failure to retain key talent and difficulties integrating corporate cultures,</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">entry into markets in which we may have limited prior experience and where competitors have stronger market positions,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the inability to protect and secure acquired intellectual property or confidential information,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties or delays completing the development of acquired in-process technology,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the failure to retain key customers,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the impairment of acquired intangible assets resulting from lower-than-expected cash flows from the acquired assets,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">acquisition-related charges, which could adversely impact operating results and cash flows in any given period and could be substantially different from period to period,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties with implementing internal controls and accounting systems necessary to be compliant with requirements applicable to public companies subject to SEC reporting, and</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties with closing a transaction due to regulatory approvals, employment matters, required consents, litigation, or other challenges, which could increase costs and prevent the acquisition from being completed within the expected timeframe, or from being completed at all.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Acquisitions are inherently risky and the inability to effectively manage these risks could have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our future capital needs are uncertain and may be influenced by various factors, including strategic initiatives, which could impact our financial condition and operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our future capital needs are uncertain and may be affected by various factors, including strategic initiatives. We may need to raise additional capital in the future for a variety of reasons, such as to acquire businesses or fund growth opportunities. Raising capital may involve issuing debt, which could increase our leverage and limit our financial flexibility, or equity, which could result in dilution to our existing shareholders. There can be no assurance that such capital will be available on favorable terms, or at all. Challenges in obtaining favorable funding may delay, reduce, or eliminate certain business activities or growth initiatives, which could adversely affect our financial condition and operating results. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Risks Related to Information Technology and Intellectual Property</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Information security breaches may adversely affect our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on our information technology systems, including third-party services, to effectively run our business. We may be subject to information security failures or breaches caused by hacking, malicious software, acts of vandalism or terrorism, or other events. The risk of a cyberattack continues to increase given rapid advancements in technologies, as well as the proliferation of diplomatic and armed conflict throughout the world. Our security measures or those of our third-party service providers may not detect or prevent such breaches. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cybersecurity threats are becoming increasingly sophisticated and frequent, with attackers employing new and varied methods such as ransomware, phishing, and advanced persistent threats. These threats pose significant risks to our operations, including:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">disruption of operations, system outages, data corruption, and other disruptions, impacting our ability to deliver products and services to our customers, </span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the distraction of management and diversion of information technology resources,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">theft of our intellectual property, including software source code, trade secrets, and other confidential business or proprietary information,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">financial losses through fraud, theft of assets, or the costs associated with responding to and mitigating the effects of an attack,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">reputation damage and loss of trust among stakeholders as a result of breaches of customer, vendor, or employee data,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">litigation, regulatory penalties, and increased compliance costs as a result of data breaches and cybersecurity incidents.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have experienced cybersecurity incidents in the past, however, to date, these incidents have not had a material impact on our operations or financial results. Future cybersecurity incidents could have a material adverse effect on our business, reputation, financial condition, or operating results. We continuously invest in and enhance our </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">9</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">cybersecurity measures, including employee training, incident response planning, and collaboration with third-party experts, to mitigate these risks.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Changes in laws or regulations relating to data privacy or data protection, or any actual or perceived failure by us to comply with such laws and regulations, could harm our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are subject to a variety of United States and international laws, rules, policies, and other obligations regarding data protection and security breaches. Privacy and data security have become significant issues in the United States, Europe, and in many other jurisdictions where we conduct or may in the future conduct our operations. The regulatory framework for the collection, use, safeguarding, sharing, and transfer of information worldwide is rapidly evolving and is likely to remain uncertain for the foreseeable future. New regulations may require us to further modify certain of our information practices and could subject us to additional compliance costs. These laws continue to develop and may be inconsistent from jurisdiction to jurisdiction. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The adoption of AI technologies is subject to increasing regulatory scrutiny, with emerging laws such as the European Union's AI Act and U.S. initiatives potentially imposing requirements for transparency, bias mitigation, and ethical deployment. Compliance with these evolving standards may increase costs, delay product launches, or require significant changes to our technologies. AI-related concerns, including data privacy, intellectual property, and cybersecurity, add further complexity, while inconsistent global regulations heighten operational challenges. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Complying with emerging and changing requirements may be costly and require us to change certain business practices. Noncompliance could result in significant fines, penalties, claims, or legal liability. Any inability to adequately address privacy and data security concerns or comply with applicable privacy or data security laws, regulations, and policies could result in additional cost, damage our reputation, inhibit sales, and adversely affect our business, financial condition, and operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If we fail to successfully protect our intellectual property, our competitive position and operating results could suffer.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on our proprietary software technology and hardware designs, as well as the technical expertise, creativity, and knowledge of our personnel, to maintain our position as a leading provider of machine vision products. Software piracy and reverse engineering may result in counterfeit products that are misrepresented in the market as Cognex products or pirated products that contain stolen technology, such as software. Although we use a variety of methods to protect our intellectual property, we rely most heavily on patent, trademark, copyright, and trade secret protection, as well as non-disclosure agreements with customers, suppliers, employees, and consultants. We also attempt to protect our intellectual property by restricting access to our proprietary information by a combination of technical and internal security measures. These measures, however, may not be adequate to:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">protect our proprietary technology,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">protect our patents from challenge, invalidation, or circumvention, or</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">ensure that our intellectual property will provide us with competitive advantages.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our pending and future patent applications may not issue as patents or, if issued, may not issue in a form that will provide us with any meaningful protection or any competitive advantage. Even if issued, existing or future patents may be challenged, narrowed, invalidated, or circumvented, which could limit our ability to stop competitors from developing and marketing similar products, increase costs, or limit the length of patent protection we may have for our products. Furthermore, other companies may design around technologies we have patented, licensed, or developed. Moreover, changes in patent laws or their interpretation in the United States and other countries could also diminish the value of our intellectual property or narrow the scope of our patent protection. In addition, the legal systems of certain countries do not favor the aggressive enforcement of patents and the laws of foreign countries may not protect our rights to the same extent as the laws of the United States. As a result, our patent portfolio may not provide us with sufficient rights to exclude others from commercializing products similar to ours. Any of these adverse circumstances could have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Risks Related to our Supply Chain</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The failure to manufacture and deliver products in a timely manner could negatively affect customer satisfaction and our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of our products is manufactured by a third-party contractor located in Indonesia. Since 2022, we have been scaling up an additional contract manufacturer located in Malaysia, which has further mitigated risk, diversified our supply chain, and expanded our production capacity. With the acquisition of Moritex Corporation in the fourth quarter of 2023, we began in-house manufacturing of optical components, such as lenses and lighting, in production plants located in China and Vietnam. In-house manufacturing exposes us to various risks that could </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">10</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">adversely impact our business operations and financial condition, including, but not limited to, (i) the health and safety of our employees engaged in manufacturing; (ii) the storage, use, and transportation of hazardous materials utilized in the manufacturing process; and (iii) legal risks related to environmental protection and health and safety laws in all applicable jurisdictions. Although our third-party and in-house manufacturers have the ability to shift production to plants in other regions when operations in their primary plant are disrupted, production and test equipment located at the plant that is unique to the manufacture of Cognex products creates practical challenges to doing so in a timely manner. Furthermore, the loss of a key supplier, or failure of a key supplier to access necessary credit to operate its business or otherwise remain in business, could have a material adverse impact on our operating results. Changes and additions to our supply chain require considerable time and resources and involve significant risks and uncertainties, and we can provide no assurance of return on, or success of, such investments.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also rely on our third-party and in-house manufacturers to meet delivery schedules. We have experienced, and may continue to experience, delays in the delivery of our products from our suppliers due to the impact of global supply chain challenges or other factors. For example, on June 7, 2022, our primary contract manufacturer experienced a fire at its plant in Indonesia which destroyed a significant amount of Cognex inventories. The fire resulted in delayed shipments, loss of sales, and higher-than-normal purchase costs to replenish component inventories, which adversely impacted our business, financial condition, and results of operations through the first half of 2023. Challenges in obtaining components and maintaining production have resulted in delays, and may continue to result in delays, in meeting our delivery schedules that, as a result, delay deliveries to our customers past their requested delivery date. Delays in customer orders also can result in delayed revenue recognition or loss of business which can impact our operating results in a particular reporting period.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our inability to obtain components for our products could adversely affect our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges and other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, higher delivery costs, and manufacturing delays.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If components purchased by our contract manufacturers have not been consumed in our production of finished goods within a certain period of time, we have been required, and may continue to be required, to purchase these components from our contract manufacturers and later sell them back when they are needed to meet our demand. While we typically expect these components to be consumed in the production of our finished goods, this arrangement may expose us to an increased risk of excess or obsolete inventory and resulting charges.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We source components from preferred vendors that are selected based on price, quality and performance considerations. In the event of a supply disruption from a preferred vendor, these components typically may be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source. Certain Cognex products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and loss of sales.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we are taking certain actions to mitigate supply risk and have entered into agreements for the supply of many components, there can be no assurance that Cognex will be able to extend or renew these agreements on similar terms, such as purchase prices, or at all. Component suppliers may suffer from poor financial conditions, which can lead to business failure for the supplier, further limiting our ability to obtain sufficient quantities of components on reasonable terms, or at all. Therefore, Cognex remains subject to risks of supply shortages and price increases that can adversely affect our business, gross margins, and operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our products may contain design or manufacturing defects, which could result in reduced demand, significant delays, substantial costs, or customer dissatisfaction and/or loss of sales.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If flaws in either the design or manufacture of our products were to occur, we could experience a rate of failure in our products that could result in significant delays in shipment and material repair or replacement costs. Due, in part, to our focus on releasing new products as quickly as possible to satisfy customer demands, our release-to-market process may not be robust enough to detect significant design flaws or software bugs. While we engage in product quality programs and processes, including actively monitoring and evaluating the quality of our component suppliers and contract manufacturers, these actions may not be sufficient to avoid a product failure rate that results in:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">substantial delays in shipment,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">significant repair or replacement costs,</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">11</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">product liability claims or lawsuits, particularly in connection with life sciences customers, electric vehicle battery manufacturers, or other high-risk end-user industries,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">customer dissatisfaction and/or loss of sales, or</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">potential damage to our reputation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Any of these results could have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Risks Related to Financial Performance</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The loss of, or significant curtailment of purchases by, large customers could have an adverse effect on our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Over the past few years, we had two customers that represented 10% or more of our total revenue. Large customers may divert management&#8217;s attention from other operational matters and pull resources from other areas of the business, resulting in potential loss of sales from other customers. In addition, large customers may receive preferred pricing and a higher level of support, which may lower our gross margin. Furthermore, in certain instances, due to long supplier lead times, we may purchase inventory in advance of receipt of a large customer purchase order, which exposes us to an increased risk of excess or obsolete inventory and resulting charges. The loss of, or curtailment of purchases by, any one or more of our large customers, has had, and could in the future have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our financial performance varies quarterly due to seasonal and cyclical purchasing patterns and the timing of large customer orders, which can lead to challenges in accurately forecasting our financial results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business experiences significant seasonal variations, with certain quarters typically generating higher revenues due to industry cycles and customer purchasing patterns, which can significantly impact quarterly results depending on their timing. The sale of our products and services is dependent on customers whose industries are subject to seasonal or cyclical trends in the demand for their products. For example, the consumer electronics industry is particularly volatile, making demand difficult to anticipate, which exposes us to increased risk of excess and obsolete inventory and resulting charges. This volatility can also lead to challenges in forecasting our financial results. Failing to meet quarterly revenue and earnings expectations due to these seasonal and cyclical trends could negatively impact investor confidence, resulting in stock price volatility and potential reputational damage.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are at risk for impairment charges with respect to our investments or acquired intangible assets, which could have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, we had approximately $401 million of debt securities in our investment portfolio. These debt securities are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#8217; equity as other comprehensive income (loss). As of December 31, 2024, our portfolio of debt securities had a net unrealized loss of $4,904,000. Included in this net loss, were gross unrealized losses totaling $5,317,000, of which $2,118,000 related to debt securities in a loss position for greater than twelve months. Management monitors its debt securities that are in an unrealized loss position to determine whether a loss exists related to the credit quality of the issuer that would be reported in current operations. While management currently intends to hold these securities to full value recovery at maturity, we may determine to sell these securities prior to maturity to fund our operations, complete acquisitions, or for other purposes, which may result in a loss. It is our policy to invest in investment-grade debt securities that minimize our exposure to credit losses; however, no assurances can be made that we will not incur credit losses with respect to our securities portfolio.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, we had approximately $91 million in acquired intangible assets, consisting primarily of customer relationships and completed technologies. The majority of these intangible assets were recorded in the fourth quarter of 2023 when Cognex acquired Moritex Corporation. These assets are susceptible to changes in fair value due to a decrease in the historical or projected cash flows from the use of these assets, which may be negatively impacted by economic trends. We evaluate long-lived assets for impairment annually each fourth quarter and whenever events or changes in circumstances, referred to as "triggering events," indicate the carrying value may not be recoverable. If we determine that any of these investments or intangible assets are impaired, we will be required to take a related charge that could have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We may have additional tax liabilities and our effective tax rate may increase or fluctuate, which could adversely affect our operating results and financial condition.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a multinational corporation, we are subject to income taxes, as well as non-income based taxes, in the United States and numerous foreign jurisdictions. Our effective income tax rate is dependent on the geographic distribution of our worldwide earnings or losses and the tax laws and regulations in each geographic region in which we operate. Significant judgment is required in determining our worldwide provision for income and other taxes. The </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">12</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">application of tax laws and regulations is subject to legal and factual interpretation, judgment, and uncertainty, and tax laws themselves are subject to change. For example, many countries have adopted, or are considering the adoption of, revisions to their respective tax laws based on the Organization for Economic Co-operation and Development&#8217;s (&#8220;OECD&#8221;) Inclusive Framework, which could impact our tax liability due to our organizational structure and significant operations outside of the United States. Furthermore, we are subject to regular review and audit by both domestic and foreign tax authorities and may be assessed additional taxes, penalties, fees, or interest. Although we believe our tax positions are reasonable, the final determination of tax audits or any related litigation could be different from what is reflected in our financial statements and could have a material adverse effect on our income tax provision or liquidity in the period in which the determination is made.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Fluctuations in foreign currency exchange rates and the use of derivative instruments to hedge these exposures could adversely affect our reported results, liquidity, and competitive position.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We face exposure to foreign currency exchange rate fluctuations, as a significant portion of our revenues, expenses, assets, and liabilities are denominated in currencies other than the functional currencies of our subsidiaries or the reporting currency of our company, which is the U.S. Dollar. In certain instances, we utilize forward contracts to hedge against foreign currency fluctuations. These contracts are used to minimize foreign currency gains or losses, as the gains or losses on the derivative are intended to offset the losses or gains on the underlying exposure. We do not engage in foreign currency speculation. If the counterparty to any of our hedging arrangements experiences financial difficulties, or is otherwise unable to honor the terms of the contract, we may experience material losses. We may enter into other types of financial instruments in the future to mitigate our foreign currency risk as we deem appropriate.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The success of our foreign currency risk management program depends on forecasts of transaction activity denominated in various currencies. To the extent that these forecasts are overstated or understated during periods of currency volatility, we could experience unanticipated foreign currency gains or losses that could have a material impact on our results of operations. In addition, our failure to identify new exposures and hedge them in an effective manner may result in material foreign currency gains or losses. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">General Risk Factors</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Unfavorable global economic conditions may negatively impact our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenue levels are impacted by global economic conditions, as we have a significant business presence in many countries throughout the world. Unfavorable economic conditions, such as inflation, slower growth or recession, higher interest rates, tighter credit, and labor shortages, may cause companies to delay or reduce spending for automation projects, including those with machine vision, amid weaker general manufacturing confidence and heightened uncertainty around global trade. Furthermore, customer confidence and capital investment can be materially adversely impacted as a result of financial market volatility, negative financial news, declines in income or asset values, energy shortages and cost increases, labor and healthcare costs, and other global economic conditions. When global economic conditions are unfavorable, our revenue and our ability to generate operating profits could be materially adversely affected.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of global economic conditions, our business is subject to the following risks, among others:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our customers may not have sufficient cash flow or access to financing to purchase our products and services,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our customers may not pay us within agreed upon terms or may default on their payments altogether,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our suppliers may be unable to fulfill their delivery obligations to us in a timely manner,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">lower demand for our products may result in charges for excess and obsolete inventory if we are unable to sell inventory that is either already on hand or that we are committed to purchase,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">lower cash flows may result in impairment charges for acquired intangible assets or goodwill,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">a decline in our stock price may make stock-based awards a less attractive form of compensation and a less effective incentive for retention for our employees, and</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the trading price of our common stock may be volatile.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, we had approximately $587 million in cash and investments. In addition, we have no long-term debt. We believe that our strong cash position puts us in a relatively good position to weather economic downturns. Nevertheless, our operating results have been materially adversely affected in the past, and could be materially adversely affected in the future, as a result of unfavorable economic conditions and reduced capital spending by manufacturers and logistics companies worldwide.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">13</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Natural disasters, widespread public health crises, and man-made disasters could result in business disruptions that may adversely affect our business and operating results. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business, and the businesses of our customers, suppliers, and third-party service providers, could be disrupted by natural disasters, such as extreme weather events and earthquakes, public health crises, such as pandemics and epidemics, man-made disasters, such as terrorism and industrial accidents, or other events outside of our control. Certain facets of our business operations, such as our third-party primary contractor manufacturers in Indonesia and Malaysia, are in locations that may be more prone to earthquakes and other natural disasters. Following a business disruption, the Company could be subject to production downtimes, operational delays, substantial recovery time, customer claims, significant expenditures to resume operations, the diversion of management&#8217;s attention and resources, or loss of business, any of which could have a material adverse effect on our competitive position, financial condition, or operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While we maintain insurance coverage for certain types of losses, such insurance coverage may be insufficient to cover all losses that may arise. The impact of any such business disruption on the Company is difficult to predict and will depend on the severity of the event and resulting governmental, community, and business actions.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Expectations relating to environmental, social, and governance considerations expose the Company to potential liabilities, increased costs, reputational harm, and other adverse effects on our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Governments, regulators, investors, employees, customers, suppliers, and other stakeholders are increasingly focused on environmental, social, and governance disclosures relating to businesses activities. Performance in this area is driven by transparency, goal setting, and third-party opinion. Any failure, or perceived failure, to further our initiatives, adhere to our public statements, comply with federal, state, or international environmental, social, and governance laws and regulations, or meet evolving and varied stakeholder expectations and standards could result in legal and regulatory proceedings against the Company and adversely affect our business, reputation, financial condition, operating results, stock price, and ability to operate in certain geographic regions.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Responding to environmental, social, and governance disclosure requests and the implementation of associated initiatives involves risks and uncertainties, requires investments, and depends in part on third-party performance or data that is outside of our control. Initiatives related to climate performance may be dependent upon the availability of alternative energy sources and evolving procurement practices. Stakeholder expectations and priorities continue to change. We cannot guarantee that we will achieve our environmental, social, and governance goals or commitments. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The price of the Company&#8217;s stock is subject to volatility.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have experienced substantial stock price volatility in the past and may continue to do so in the future. The price of our stock may be affected by factors such as our financial performance, announcements of technological innovations or new products by us or our competitors, market conditions, and other factors. Additionally, the Company, the technology industry, and the overall stock market have, from time to time, experienced extreme stock price and volume fluctuations that have affected stock prices in ways that may have been unrelated to these companies&#8217; operating performance. We believe the price of our stock should reflect expectations for future growth and profitability. If we fail to meet expectations related to future growth, profitability, dividends, share repurchases, or other market expectations, the price of our stock may decline significantly, which could have a material adverse impact on investor confidence and employee retention.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our Company may be subject to time-consuming and costly litigation or activist shareholder activities.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">From time to time, we may be subject to various claims, demands, and lawsuits by competitors, shareholders, customers, distributors, patent trolls, former employees, or other parties arising in the ordinary course of business, including lawsuits charging patent infringement, or claims and lawsuits instituted by us to protect our intellectual property and confidential information, or for other reasons. These matters can be time-consuming, divert management&#8217;s attention and resources, and cause us to incur significant expenses. Furthermore, the results of any of these actions may have a material adverse effect on our operating results.</span></div><div id="i67e131bb2c504a23903df9579998c003_19"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 1B: UNRESOLVED STAFF COMMENTS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">None</span></div><div id="i67e131bb2c504a23903df9579998c003_22"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 1C: CYBERSECURITY</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Cybersecurity Risk Management</span></div><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock" id="f-38" continuedAt="f-38-1" escape="true"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock" id="f-37" continuedAt="f-37-1" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of our overall &#8220;Enterprise Risk Management&#8221; program, the Company has implemented a <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementProcessesIntegratedFlag" format="ixt:fixed-true" id="f-39">cybersecurity risk management program</ix:nonNumeric> that is informed by recognized industry standards and frameworks. Our cybersecurity risk </span></div></ix:nonNumeric></ix:nonNumeric><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">14</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><ix:continuation id="f-37-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-38-1">management program includes a number of components, including information security program assessments, penetration testing, and threat simulation exercises that are conducted periodically by both internal and <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementThirdPartyEngagedFlag" format="ixt:fixed-true" id="f-40">external resources</ix:nonNumeric>, as well as continuous monitoring of critical risks from cybersecurity threats using automated tools. During onboarding and periodically thereafter, we conduct trainings for the Company&#8217;s employees and contractors about cybersecurity risks, including sending test phishing emails for training purposes to all users of the Company&#8217;s email system.</ix:continuation> </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of our cybersecurity risk management program, we maintain processes to assess and review the cybersecurity practices of <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag" format="ixt:fixed-true" id="f-41">third-party vendors and service providers</ix:nonNumeric>, including utilization of software to evaluate, assess, and monitor cybersecurity risks posed by third parties that provide critical services or handle confidential information. Additionally, prior to engaging a critical third-party vendor or service provider, and periodically thereafter, we conduct security audits of such third parties, and, as appropriate, include security requirements in contracts. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We, like other companies in our industry, face a number of cybersecurity risks in connection with our business. Although such risks have not materially affected us, including our business strategy, results of operations, or financial condition, to date, we have, from time to time, experienced threats and security incidents related to our data and systems, including denial of service and phishing attacks. For more information about the cybersecurity risks we face, see the risk factor entitled &#8220;Information security breaches may adversely affect our business&#8221; in Item 1A- Risk Factors.</span></div></ix:continuation><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Governance</span></div><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" id="f-43" continuedAt="f-43-1" escape="true"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock" id="f-42" continuedAt="f-42-1" escape="true"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskRoleOfManagementTextBlock" id="f-44" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our cybersecurity risk management program and related operations and processes are managed by our <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag" format="ixt:fixed-true" id="f-45">Information Security team</ix:nonNumeric> (the &#8220;IS Team&#8221;), which is led by the Senior Director of Information Security. <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock" id="f-46" escape="true">The Senior Director of Information Security role is currently held by an individual who has over fifteen years of experience managing information security programs.</ix:nonNumeric> <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock" id="f-47" continuedAt="f-47-1" escape="true">The IS Team is responsible for <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag" format="ixt:fixed-false" id="f-48">assessing risks</ix:nonNumeric> from cybersecurity threats, including their potential business impact and likelihood of occurrence, as well as implementing risk mitigations and remediations.</ix:nonNumeric></span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock" id="f-49" continuedAt="f-49-1" escape="true"><ix:continuation id="f-47-1" continuedAt="f-47-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The IS Team provides reports on cybersecurity risk management processes to the Chief Financial Officer and other leaders of the Company on a quarterly basis, or as potentially critical risks from cybersecurity threats or incidents arise. </span></div></ix:continuation></ix:nonNumeric></ix:nonNumeric></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock" id="f-50" escape="true"><ix:continuation id="f-47-2"><ix:continuation id="f-43-1"><ix:continuation id="f-42-1"><ix:continuation id="f-49-1">The IS Team provides reports on a semi-annual basis to the <ix:nonNumeric contextRef="c-1" name="cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag" format="ixt:fixed-true" id="f-51">Audit Committee</ix:nonNumeric>, which oversees cybersecurity risks pursuant to the Audit Committee Charter</ix:continuation>. The Audit Committee periodically reports on cybersecurity risk management to the full Board of Directors. The Board of Directors, as a whole and through its committees, has responsibility for the oversight of risk management.</ix:continuation></ix:continuation></ix:continuation></ix:nonNumeric> </span></div><div id="i67e131bb2c504a23903df9579998c003_25"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 2: PROPERTIES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 1994, Cognex purchased and renovated a 100,000 square-foot building located in Natick, Massachusetts that serves as our corporate headquarters and is occupied by employees primarily in research, development, and engineering, manufacturing and quality assurance, and administration functions. In 1997, Cognex completed construction of a 50,000 square-foot addition to this building. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 1995, Cognex purchased an 83,000 square-foot office building adjacent to our corporate headquarters that is occupied by employees primarily in marketing, service, information technology, and finance functions.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 1997, Cognex purchased a three and one-half acre parcel of land adjacent to our corporate headquarters. This land is being held for future expansion and is currently used as an Ultimate Frisbee Field for our Cognoids.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2007, Cognex purchased a 19,000 square-foot building adjacent to our corporate headquarters that is currently used as a training center for our sales function.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2014, Cognex purchased a 50,000 square-foot building in Cork, Ireland that serves as the distribution center for customers located in Europe.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2021, Cognex entered into a lease for a 65,000 square-foot building in Southborough, Massachusetts for a term of 10 years that serves as the distribution center for customers located in the Americas.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2023, Cognex entered into a lease for a 115,000 square-foot building in Singapore for a term of 10 years and 6 months that serves as the distribution center for customers located in Asia.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023, the Company acquired a 162,000 square-foot building in Shenzhen, China and assumed a lease agreement for a 22,000 square-foot building in Bac Ninh, Vietnam, both of which serve as production plants for optical components.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">15</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex conducts certain of its operations in other leased facilities, predominantly research, development, and engineering, sales, and administration functions. These lease agreements expire at various dates through 2033. Certain of these leases contain renewal options, leasehold improvement incentives, retirement obligations, escalation clauses, rent holidays, and variable payments tied to a consumer price index.</span></div><div id="i67e131bb2c504a23903df9579998c003_28"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 3: LEGAL PROCEEDINGS</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Various claims and legal proceedings generally incidental to the normal course of business are pending or threatened on behalf of or against the Company. While we cannot predict the outcome of these matters, we believe that any liability arising from them will not have a material adverse effect on our financial position, liquidity, or results of operations.</span></div><div id="i67e131bb2c504a23903df9579998c003_31"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 4: MINE SAFETY DISCLOSURES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">16</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_34"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-bottom:9pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART II</span></div><div id="i67e131bb2c504a23903df9579998c003_37"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;5: MARKET FOR REGISTRANT&#8217;S COMMON EQUITY, RELATED STOCKHOLDER MATTERS, AND ISSUER PURCHASES OF EQUITY SECURITIES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s common stock is traded on The NASDAQ Stock Market LLC, under the symbol CGNX. As of January&#160;26, 2025, there were approximately 600 shareholders of record of the Company&#8217;s common stock. The Company believes the number of beneficial owners of the Company&#8217;s common stock on that date was substantially greater.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this March 2020 program, in addition to repurchases made in prior years, the Company repurchased 1,677,000 shares at a cost of $117,000,000 in 2022, which completed purchases under the March 2020 program.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, the Company's Board of Directors authorized the repurchase of an additional $500,000,000 of the Company's common stock. Under this March 2022 program, the Company repurchased 1,682,000 shares at a cost of $87,314,000 in 2022, 1,723,000 shares at a cost of $79,794,000 in 2023, and 1,711,000 shares at a cost of $67,085,000 in 2024, leaving a remaining balance of $265,807,000 as of December 31, 2024. The 2023 repurchase included $446,000 of buyback Excise Tax in accordance with the Inflation Reduction Act of 2022.  </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements. The Company is authorized to make repurchases of its common stock through open market purchases, pursuant to Rule 10b5-1 trading plans, or in privately negotiated transactions.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth information with respect to purchases by the Company of shares of its common stock during each fiscal month of the fourth quarter of 2024:</span></div><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:32.525%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.519%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.987%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:1.970%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.859%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.005%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:1.975%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total Number of<br/>Shares&#160;Purchased</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Average<br/>Price&#160;Paid<br/>per Share</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total Number of<br/>Shares&#160;Purchased&#160;as<br/>Part of Publicly<br/>Announced Plans or<br/>Programs</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Approximate Dollar<br/>Value of Shares that<br/>May Yet Be<br/>Purchased&#160;Under&#160;the<br/>Plans or Programs</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">September 30 - October 27, 2024</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">119,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39.45&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">119,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">304,355,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">October 28 - November 24, 2024</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">109,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39.71&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">109,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">300,007,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">November 25 - December 31, 2024</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">928,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36.87&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">928,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">265,807,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,156,000&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">37.40&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,156,000&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">265,807,000&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by Item 5 of Form 10-K regarding equity compensation plans is incorporated herein by reference to Item 12 of Part III of this Annual Report.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors declared and paid cash dividends of $0.065 per share in the first, second, and third quarters of 2022, $0.070 per share in the fourth quarter of 2022 and in the first, second, and third quarters of 2023, and $0.075 per share in the fourth quarter of 2023 and in the first, second, and third quarters of 2024. The dividend was increased to $0.080 per share in the fourth quarter of 2024. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total dividends paid were $52,329,000 in 2024, $49,079,000 in 2023, and $45,921,000 in 2022. Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on such factors as the Board deems relevant, including, among other things, the Company's ability to generate positive cash flow from operations.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">17</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Set forth below is a line graph comparing the annual percentage change in the cumulative total shareholder return on the Company&#8217;s common stock, based on the market price of the Company&#8217;s common stock, with the total return on companies within the Nasdaq Composite Index and the Nasdaq Lab Apparatus&#160;&amp; Analytical, Optical, Measuring&#160;&amp; Controlling Instrument (SIC 3820-3829 US Companies) Index (the &#8220;Nasdaq Lab Apparatus Index&#8221;). The performance graph assumes an investment of $100 in each of the Company and the two indices, and the reinvestment of any dividends. The historical information set forth below is not necessarily indicative of future performance. Data for the Nasdaq Composite Index and the Nasdaq Lab Apparatus Index was provided to the Company by Research Data Group, Inc.</span></div><div style="text-align:center"><img src="cgnx-20241231_g1.jpg" alt="4069" style="height:530px;margin-bottom:5pt;vertical-align:text-bottom;width:633px"/></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.660%"><tr><td style="width:1.0%"/><td style="width:43.959%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.548%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.548%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.548%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.548%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.548%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.441%"/><td style="width:0.1%"/></tr><tr><td colspan="36" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*$100 invested on 12/31/2019 in stock or index, including reinvestment of dividends.  Fiscal year ended December 31.</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/19</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/20</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/21</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/22</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/23</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/24</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Cognex Corporation</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">100.00</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">151.56</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">147.25</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">89.67</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">79.95</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">69.20</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">NASDAQ Composite</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">100.00</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">144.92</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">177.06</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">119.45</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">172.77</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">223.87</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">NASDAQ Stocks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">100.00</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">132.07</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">136.90</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">82.82</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">96.36</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">97.07</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="30" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:700;line-height:100%">(SIC 3820-3829 U.S. Companies) Lab Apparatus &amp; Analyt,Opt, Measuring, and Controlling Instrument)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">18</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_40"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;6:&#160;[RESERVED]</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.122%"><tr><td style="width:1.0%"/><td style="width:45.065%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.076%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.537%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.076%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.537%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.076%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.537%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.076%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.537%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.083%"/><td style="width:0.1%"/></tr><tr style="height:11pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div id="i67e131bb2c504a23903df9579998c003_43"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;7:&#160;MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">FORWARD-LOOKING STATEMENTS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain statements made in this report, as well as oral statements made by the Company from time to time, constitute forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended, and Section 21E of the Exchange Act. Readers can identify these forward-looking statements by our use of the words &#8220;expects,&#8221; &#8220;anticipates,&#8221; &#8220;estimates,&#8221; "potential," &#8220;believes,&#8221; &#8220;projects,&#8221; &#8220;intends,&#8221; &#8220;plans,&#8221; &#8220;will,&#8221; &#8220;may,&#8221; &#8220;shall,&#8221; &#8220;could,&#8221; &#8220;should,&#8221; "opportunity," "goal" and similar words and other statements of a similar sense. These statements are based on our current estimates and expectations as to prospective events and circumstances, which may or may not be in our control and as to which there can be no firm assurances given. These forward-looking statements, which include statements regarding business and market trends, future financial performance and financial targets, customer demand and order rates and timing of related revenue, future product or revenue mix, research and development activities, sales and marketing activities, new product offerings, innovation and product development activities, customer acceptance of our products, capital expenditures, cost and working capital management activities, investments, liquidity, dividends and stock repurchases, strategic and growth plans and opportunities, acquisitions, and estimated tax benefits and expenses and other tax matters, involve known and unknown risks and uncertainties that could cause actual results to differ materially from those projected. Such risks and uncertainties include: (1) the technological obsolescence of current products and the inability to develop new products; (2) the impact of competitive pressures; (3) the inability to attract and retain skilled employees, effectively plan for succession, and maintain our unique corporate culture; (4) the failure to properly manage the distribution of products and services; (5) economic, political, and other risks associated with international sales and operations, including the impact of trade disputes on the economic climate in China; (6) the challenges in integrating and achieving expected results from acquired businesses; (7) uncertainty surrounding our future capital needs; (8)  information security breaches; (9) the failure to comply with laws or regulations relating to data privacy or data protection;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(10) the inability to protect our proprietary technology and intellectual property; (11) the failure to manufacture and deliver products in a timely manner; (12) the inability to obtain, or the delay in obtaining, components for our products at reasonable prices; (13) the inability to design and manufacture high-quality products; (14) the loss of, or curtailment of purchases by, large customers in the logistics, consumer electronics, or automotive industries; (15) challenges in accurately forecasting our financial results due to seasonal and cyclical variations in customer purchasing patterns; (16) potential impairment charges with respect to our investments or acquired intangible assets; (17) exposure to additional tax liabilities, increases and fluctuations in our effective tax rate, and other tax matters; (18) fluctuations in foreign currency exchange rates and the use of derivative instruments; (19) unfavorable global economic conditions, including increases in interest rates and elevated inflation rates; (20) business disruptions from natural or man-made disasters, public health crises, or other events outside our control; (21) exposure to potential liabilities, increased costs, reputational harm, and other adverse effects associated with expectations relating to environmental, social, and governance considerations; (22) stock price volatility; and (23) our involvement in time-consuming and costly litigation or activist shareholder activities. The foregoing list should not be construed as exhaustive and we encourage readers to refer to the detailed discussion of risk factors included in Part I - Item 1A of this Annual Report on Form 10-K. The Company cautions readers not to place undue reliance upon any such forward-looking statements, which speak only as of the date made. The Company disclaims any obligation to subsequently revise forward-looking statements to reflect the occurrence of anticipated or unanticipated events or circumstances after the date such statements are made.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXECUTIVE OVERVIEW</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation (&#8220;the Company&#8221;) invents and commercializes technologies that address some of the most critical manufacturing and distribution challenges. We are a leading global provider of machine vision products and solutions that seek to improve efficiency and quality in a wide range of businesses across attractive industrial end markets. In addition to product revenue derived from the sale of machine vision products, the Company also generates revenue by providing maintenance and support, consulting, and training services to its customers; however, service revenue accounted for less than 10% of total revenue for all periods presented.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Machine vision is used in a variety of industries where technology is widely recognized as an important component of automated production, distribution, and quality assurance. Virtually every manufacturer or distributor can achieve better quality and efficiency by using machine vision. This results in a broad base of potential customers across a </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">19</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">variety of industries, including logistics, automotive, consumer electronics, semiconductor, consumer products, medical-related, and food and beverage.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue was $914,515,000 in 2024, representing an increase of 9% over the prior year. The increase was due to incremental revenue arising from the acquisition of Moritex Corporation (&#8220;Moritex&#8221;) that closed in the fourth quarter of 2023, as well as higher revenue from customers in the logistics and semiconductor industries. These increases were partially offset by lower revenue from customers in the automotive industry and softness across our broader factory automation business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Gross margin was 68% in 2024 compared to 72% in 2023. The decrease was primarily due to a less favorable revenue mix related to the contribution of Moritex and higher logistics revenue, and to a lesser extent, the impact of pricing pressures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating expenses increased 9% over the prior year. Investments intended to expand our sales coverage, incremental costs related to the acquisition of Moritex, and higher incentive compensation expenses were partially offset by disciplined cost management and lower total headcount. Cost recoveries recorded in 2023 related to the 2022 fire at the Company&#8217;s contract manufacturer also contributed to the increase.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating income decreased to 13% of revenue in 2024 compared to 16% of revenue in 2023 driven by the lower gross margin percentage. Net income decreased to 12% of revenue, or $0.62 per share, in 2024 compared to 14% of revenue, or $0.65 per share, in 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth certain consolidated financial data as a percentage of revenue:</span></div><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:54.847%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.996%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.143%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.146%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">2024 </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">(1)</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%;text-decoration:underline">2023 (1)</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%;text-decoration:underline">2022 (1)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">100</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">32</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">68</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">15</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">41</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss (recovery) from fire</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating income</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">13</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-operating income</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income before income tax expense</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">14</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">(1) Amounts may not total properly due to rounding.</span></div><div id="i67e131bb2c504a23903df9579998c003_46"></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">RESULTS OF OPERATIONS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Year Ended December 31, 2024 Compared to Year Ended December 31, 2023</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Revenue</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue was $914,515,000 in 2024 compared to $837,547,000 in 2023, representing an increase of 9%. Revenue from the acquisition of Moritex that closed in the fourth quarter of 2023 represented approximately 8% of total revenue in 2024 and 1% of total revenue in 2023. Excluding the contribution of Moritex, revenue increased by 1% in 2024 over the prior year due to higher revenue from customers in the logistics and semiconductor industries, partially offset by lower revenue from customers in the automotive industry and softness across our broader factory automation business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in revenue from an end-market perspective, including Moritex, were as follows:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from the logistics industry represented approximately 23% of total revenue in 2024 and increased by 20% from the prior year due to investment by e-commerce customers. </span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from the automotive industry represented approximately 22% of total revenue in 2024 and decreased by 12% from the prior year due to continued weakness in this industry, including lower investment related to electric vehicles. </span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from the consumer electronics industry represented approximately 17% of total revenue in 2024 and increased by 3% from the prior year due to the contribution of Moritex, as well as higher large customer demand. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">20</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from the semiconductor industry represented approximately 11% of total revenue in 2024 and grew by 80% from the prior year due to the contribution of Moritex, as well as higher global demand for computing chips.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our disaggregated revenue information by geographic area based on the customers' country of domicile (in thousands) for the years ended December 31, 2024 and 2023.</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:42.321%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.116%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Twelve-months Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2023</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$ Change</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">% Change</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">350,155</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">330,415&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">19,740&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">38</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">39&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">217,880</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">220,665&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(2,785)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">24</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">26&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Greater China</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">164,147</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">164,115&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">32&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">18</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">20&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">182,333</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">122,352&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">59,981&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">49&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">20</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">15&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenue</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">914,515</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">837,547&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">76,968&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in revenue from a geographic perspective, including Moritex, were as follows:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from customers based in the Americas increased by 6% from the prior year. Strong growth in logistics was partially offset by weakness in the automotive industry.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from customers based in Europe decreased by 1% from the prior year. Growth in logistics was offset by declines in factory automation, most notably in the automotive industry.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from customers based in Greater China was flat compared to the prior year. The Moritex contribution, higher semiconductor revenue, and higher large customer consumer electronics revenue was offset by declines in other factory automation industries, most notably in the automotive industry.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from other countries in Asia increased by 49% from the prior year due to the Moritex contribution, higher semiconductor revenue, and growth in logistics.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Gross Profit</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our gross profit (in thousands) for the years ended December 31, 2024 and 2023.</span></div><div style="margin-top:9pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:43.052%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.864%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.116%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Twelve-months Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2023</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$ Change</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">% Change</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">625,794</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">601,241&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">24,553&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">68</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">72&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Gross margin decreased to 68% in 2024 compared to 72% in 2023. The decrease was due to a less favorable revenue mix in 2024 that included higher logistics revenue and products with relatively lower gross margins from the Moritex acquisition that closed in the fourth quarter of 2023, as well as the amortization of Moritex acquired technologies. Lower average selling prices due to pricing pressures also contributed to the lower margin in 2024.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">21</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Operating Expenses</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our operating expenses (in thousands) for the years ended December 31, 2024 and 2023.</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:42.321%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.864%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.847%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Twelve-months Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2023</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$ Change</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">% Change</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research, development, and engineering expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">139,815</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">139,400&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">415&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">15</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">17</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general, and administrative expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">370,914</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">339,139&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">31,775&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">41</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">40</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (recovery) from fire</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(8,000)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">8,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(100)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">510,729</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">470,539&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">40,190&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">56</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">56</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research, Development, and Engineering Expenses</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research, development, and engineering (RD&amp;E) expenses in 2024 were relatively flat compared to the prior year.  Higher incentive compensation expenses and the additional cost associated with a new team of optical engineers that joined Cognex with the acquisition of Moritex in the fourth quarter of 2023 was offset by a reduction in RD&amp;E headcount outside of Moritex, lower deferred compensation costs related to the 2019 acquisition of Sualab Co, Ltd. that were fully paid in the fourth quarter of 2023, and disciplined cost management.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RD&amp;E expenses as a percentage of revenue were 15% in 2024 compared to 17% in 2023. We believe that a continued commitment to RD&amp;E activities is essential to maintain or achieve product leadership with our existing products and to provide innovative new product offerings, as well as to provide engineering support for large customers. In addition, we consider our ability to accelerate the time to market for new products to be critical to our revenue growth and competitive position. This annual percentage is impacted by revenue levels and investment cycles.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Selling, General, and Administrative Expenses</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Selling, general, and administrative (SG&amp;A) expenses in 2024 increased by 9% from the prior year. The increase was due primarily to investments in entry-level sales personnel hired over the past few years intended to transform our sales model, allowing us to broaden and deepen our sales coverage. Costs related to the acquisition of Moritex that closed in the fourth quarter of 2023 also contributed to the higher SG&amp;A expenses in 2024, including additional sales and support personnel-related costs, the amortization of acquired customer relationship and trademarks, and integration costs. In addition, incentive compensation expenses were higher in 2024. These increases were partially offset by Moritex transaction costs incurred in the fourth quarter of 2023, a reduction in SG&amp;A headcount outside of Moritex and entry-level sales, and disciplined cost management.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Loss (Recovery) from Fire</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 7, 2022, the Company&#8217;s primary contract manufacturer experienced a fire at its plant in Indonesia, destroying a significant amount of Cognex inventories. In 2023, the Company recorded recoveries related to the fire totaling $8,000,000, including $5,500,000 for proceeds received from a financial settlement and $2,500,000, for proceeds received from business interruption insurance.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Non-operating Income (Expense)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our non-operating income (expense) (in thousands) for the years ended December 31, 2024 and 2023.</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:41.590%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.677%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.864%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.847%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Twelve-months Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2023</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$ Change</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">% Change</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">1,531</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(10,039)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,570&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(115)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Investment income</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">13,971</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14,093&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(122)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other income (expense)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">922</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">592&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">330&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">56&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total non-operating income (expense)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">16,424</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,646&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">11,778&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">254&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">22</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the third quarter of 2023, the Company recorded a foreign currency loss of $8,456,000 on the settlement of a foreign currency forward contract entered into to hedge the Japanese Yen purchase price of the acquisition of Moritex Corporation. Remaining foreign currency gains and losses in each year resulted primarily from the revaluation and settlement of assets and liabilities that are denominated in currencies other than the functional currency of the Company, which is the U.S. Dollar, or its subsidiaries.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Investment income decreased by $122,000, or 1%, from the prior year. The decrease was due to lower average investment balances, partially offset by higher yields on the Company's portfolio of debt securities. During the fourth quarter of 2023, net cash payments related to the acquisition of Moritex reduced cash available to invest by approximately $257 million, which resulted in lower investment income for 2024.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Income Tax Expense</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth income tax information (in thousands) for the years ended December 31, 2024 and December 31, 2023.</span></div><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:40.566%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.677%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.116%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Twelve-months Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2024</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2023</span></div></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$ Change</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">% Change</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income before income tax expense</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">131,489</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">135,348&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3,859)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">25,318</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">22,114&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">3,204&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Effective income tax rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">19</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">16&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s effective tax rate was 19% in 2024 and 16% in 2023. The Company recorded discrete tax net expenses of $5,731,000 in 2024 and $2,338,000 in 2023. Excluding the impact of these discrete tax items, the Company&#8217;s effective tax rate was 15% in both years.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Year Ended December 31, 2023 Compared to Year Ended December 31, 2022</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For a discussion of the Company&#8217;s fiscal 2023 results compared to fiscal 2022, refer to "Management's Discussion and Analysis of Financial Condition and Results of Operations" in the Company&#8217;s Annual Report on Form 10-K for the year ended December 31, 2023, filed with the Securities and Exchange Commission on February 15, 2024.</span></div><div id="i67e131bb2c504a23903df9579998c003_49"></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">LIQUIDITY AND CAPITAL RESOURCES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has historically been able to generate positive cash flow from operations, which has funded its operating activities and other cash requirements and resulted in an accumulated cash and investment balance of $586,948,000 as of December&#160;31, 2024. The Company has established guidelines relative to credit ratings, diversification, and maturities of its investments to maintain liquidity and safety of its investment portfolio.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Operating Activities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net cash provided by operating activities totaled $149,081,000 in 2024. Significant uses of cash consisted of an increase in accounts receivable related to growth in logistics revenue and in support of sales initiatives.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Investing Activities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net cash used in investing activities totaled $38,969,000 in 2024. Investing activities included capital expenditures, that totaled $15,043,000 and consisted primarily of continued investments in business systems, manufacturing equipment related to new product introductions, and building and leasehold improvements.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Financing Activities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net cash used in financing activities totaled $118,420,000 in 2024.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, the Company's Board of Directors authorized the repurchase of $500,000,000 of the Company's common stock. Under this program, the Company repurchased 1,711,000 shares at a cost of $67,085,000 in 2024, leaving a remaining balance of $265,807,000 as of December 31, 2024. The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements. The Company is authorized to make repurchases of its common stock through open market purchases, pursuant to Rule 10b5-1 trading plans, or in privately negotiated transactions.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">23</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors declared and paid cash dividends of $0.075 per share in the first, second, and third quarters of 2024 and $0.080 per share in the fourth quarter of 2024, totaling $52,329,000 in 2024. Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on such factors as the Board deems relevant, including, among other things, the Company's ability to generate positive cash flow from operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Future Cash Requirements</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, the Company had inventory purchase commitments of $44,269,000, with the majority payable within twelve months, and lease payment obligations of $115,200,000, with $13,177,000 payable within twelve months. As of December 31, 2024, the Company had a remaining balance of $18,338,000 payable in the second quarter of 2025 related to a one-time transition tax on unrepatriated foreign earnings arising from the Tax Cuts and Jobs Act of 2017. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that the Company's existing cash and investment balances, together with cash flow from operations, will be sufficient to meet its operating, investing, and financing activities for the next twelve months. In addition, the Company has no long-term debt. We believe that our strong cash position has put us in a relatively good position with respect to anticipated longer-term liquidity needs.</span></div><div id="i67e131bb2c504a23903df9579998c003_52"></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CRITICAL ACCOUNTING ESTIMATES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our discussion and analysis of the Company&#8217;s financial condition and results of operations are based on the consolidated financial statements included in this Annual Report on Form 10-K, which have been prepared in accordance with accounting principles generally accepted in the United States. The preparation of these financial statements requires management to make estimates and judgments that affect the reported amounts of assets, liabilities, revenue, and expenses, and related disclosure of contingent assets and liabilities. We base our estimates on historical experience and various other assumptions believed to be reasonable under the circumstances, the results of which form the basis for making judgments about the carrying values of assets and liabilities that are not readily apparent from other sources. Changes in accounting estimates are reasonably likely to occur from period to period. Accordingly, actual results could differ from these estimates under different assumptions or circumstances resulting in charges that could be material in future reporting periods. We believe the following critical accounting policies require the use of significant estimates and judgments in the preparation of our consolidated financial statements.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the Company expects to be entitled in exchange for those goods or services.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management uses significant judgment when determining the amount of revenue to be recognized each period for application-specific customer solutions. Accounting for application-specific customer solutions requires management to monitor and evaluate customer contracts to determine the point in time at which the solution is validated. The Company&#8217;s application-specific customer solutions are comprised of a combination of products and services which are accounted for as one performance obligation to deliver a total solution to the customer. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can reasonably determine that the agreed-upon specifications in the contract have been met and the customer should reasonably accept the performance obligations in the arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#8217;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Income Taxes</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Significant judgment is required in determining worldwide income tax expense based on tax laws in the various jurisdictions in which the Company operates. The Company has established reserves for income taxes by applying the &#8220;more likely than not&#8221; criteria, under which the recognition threshold is met when an entity concludes that a tax position, based solely on its technical merits, is more likely than not to be sustained upon examination by the relevant tax authority. All tax positions are analyzed periodically and adjustments are made as events occur that warrant modification, such as the completion of audits or the expiration of statutes of limitations, which may result in future charges or credits to income tax expense.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of the process of preparing consolidated financial statements, management is required to estimate income taxes in each of the jurisdictions in which the Company operates. These estimates occur in the calculation of income tax credits, benefits, and deductions, and in the calculation of certain tax assets and liabilities, which arise </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">24</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">from differences in the timing of the recognition of certain expenses for tax and financial statement purposes. We assess the likelihood of the realization of deferred tax assets and record a corresponding valuation allowance as necessary if we determine those deferred tax assets may not be realized due to the uncertainty of the timing and amount to be realized of certain federal, state, and international tax credit carryovers.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company accounts for the impact of the Global Intangible Low-Taxed Income (GILTI) minimum tax in deferred taxes.</span></div><div id="i67e131bb2c504a23903df9579998c003_55"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NEW PRONOUNCEMENTS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Refer to Part II, Item 8 - Note 2 within this Form 10-K, for a full description of recently issued accounting pronouncements including the expected dates of adoption and expected impact on the financial position and results of operations of the Company. </span></div><div id="i67e131bb2c504a23903df9579998c003_58"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;7A:&#160;QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company is exposed to certain risks relating to its ongoing business operations, including foreign currency exchange rate risk and interest rate risk. The Company currently mitigates certain foreign currency exchange rate risks with derivative instruments. The Company does not currently manage its interest rate risk with derivative instruments.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Foreign Currency Risk</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company faces exposure to foreign currency exchange rate fluctuations, as a significant portion of its revenues, expenses, assets, and liabilities are denominated in currencies other than the functional currencies of the Company&#8217;s subsidiaries or the reporting currency of the Company, which is the U.S. Dollar. In certain instances, we utilize forward contracts to hedge against foreign currency fluctuations. These contracts are used to minimize foreign currency gains or losses, as the gains or losses on the derivative are intended to offset the losses or gains on the underlying exposure. We do not engage in foreign currency speculation. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company enters into economic hedges utilizing foreign currency forward contracts with maturities of up to three months to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company had the following outstanding forward contracts as of December 31, 2024 and 2023 (in thousands): </span></div><div style="margin-top:10pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:17.228%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.603%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.630%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.844%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.844%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.656%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.630%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.964%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.968%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Currency</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">USD Equivalent</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">High Rate</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Low Rate</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">USD Equivalent</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">High Rate</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Low Rate</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="24" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Singapore Dollar</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">40,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">29,457</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.36</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.36</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">39,700</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">30,136</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.32</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.32</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Euro</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">26,029</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.9605</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.9605</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">40,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">44,302</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.9029</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.9029</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chinese Renminbi</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">95,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,990</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.31</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.31</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">50,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7,025</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.12</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.12</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Mexican Peso</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">220,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,701</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">20.56</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">20.56</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">145,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,505</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17.05</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17.05</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Hungarian Forint</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,360,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,951</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">396.59</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">396.59</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,240,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,466</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">346.45</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">346.45</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">British Pound</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,200</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,008</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.7983</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.7983</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,345</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,258</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.7855</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.7855</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Japanese Yen</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,000,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,750</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">156.52</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">156.52</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">600,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,255</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">141.02</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">141.02</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Swiss Franc</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,200</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,432</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.9047</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.9047</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Canadian Dollar</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,390</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.44</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.44</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,470</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,112</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.32</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.32</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A change in foreign currency exchange rates could materially impact the fair value of these contracts; however, if this occurred, the fair value of the underlying exposures hedged by the contracts would change by a similar amount. Accordingly, management does not believe that a material change in foreign currency exchange rates used in the fair value of our derivative instruments would materially impact operations or cash flows.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The success of our foreign currency risk management program depends on forecasts of transaction activity denominated in various currencies. To the extent that these forecasts are overstated or understated during periods of currency volatility, we could experience unanticipated foreign currency gains or losses that could have a material impact on our results of operations. Furthermore, our failure to identify new exposures and hedge them in an effective manner may result in material foreign currency gains or losses.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">25</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s functional currency/reporting currency exchange rate exposures result from revenues and expenses that are denominated in currencies other than the U.S. Dollar. In addition to the U.S. Dollar, a significant portion of our revenues and expenses are denominated in the Euro and Chinese Renminbi, and to a lesser extent the Japanese Yen, Korean Won, Indian Rupee, and Mexican Peso. We estimate that approximately 55% of our sales in 2024 were invoiced in currencies other than the U.S.&#160;Dollar, and we expect sales denominated in foreign currencies to continue to represent a significant portion of our total revenue. While we also have expenses denominated in these same foreign currencies, the impact on revenues has historically been, and is expected to continue to be, greater than the offsetting impact on expenses. Therefore, in times when the U.S.&#160;Dollar strengthens in relation to these foreign currencies, we would expect to report a net decrease in operating income. Conversely, in times when the U.S.&#160;Dollar weakens in relation to these foreign currencies, we would expect to report a net increase in operating income. Thus, changes in the relative strength of the U.S.&#160;Dollar may have a material impact on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Interest Rate Risk</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s investment portfolio of debt securities includes corporate bonds, treasury notes, asset-backed securities, and sovereign bonds. Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value. As of December&#160;31, 2024, the fair value of the Company&#8217;s portfolio of debt securities amounted to $400,854,000, with amortized cost amounts totaling $405,758,000, maturities that do not exceed six years, and a yield to maturity of 3.8%. Differences between</span><span style="color:#ee2724;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">the fair value and principal amounts of the Company&#8217;s portfolio of debt securities are primarily attributable to discounts and premiums arising at the acquisition date, as well as unrealized gains and losses as of the balance sheet date. Management currently intends to hold these securities to full value recovery at maturity.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, the Company&#8217;s investment policy was modified to reduce effective maturities of newly-purchased securities to up to five years. As of December 31, 2024, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. As of December&#160;31, 2024, 63% of the investment portfolio had effective maturity dates of less than three years. Given the relatively short maturities and investment-grade quality of the Company&#8217;s portfolio of debt securities as of December&#160;31, 2024, we do not expect a sharp rise in interest rates to have a material adverse effect on the fair value of these instruments. As a result, the Company does not currently hedge these interest rate exposures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the hypothetical change in the fair value of the Company&#8217;s portfolio of debt securities arising from selected potential changes in interest rates (in thousands). This modeling technique measures the change in fair value that would result from a parallel shift in the yield curve plus or minus 50 and 100 basis points (BP) over a twelve-month time horizon.</span></div><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:18.870%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.171%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.171%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.171%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.171%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.176%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Type of security</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Valuation&#160;of&#160;securities&#160;given<br/>an&#160;interest&#160;rate&#160;decrease</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">No&#160;change&#160;in<br/>interest&#160;rates</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Valuation&#160;of&#160;securities&#160;given<br/>an interest&#160;rate&#160;increase</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(100 BP)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(50 BP)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">50 BP</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100 BP</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">348,034&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">344,475&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">340,916&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">337,357&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">333,798&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">46,586&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">46,109&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">45,634&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">45,157&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">44,680&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Asset-backed&#160;securities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">13,592&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">13,453&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">13,314&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">13,175&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">13,036&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,011&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">980&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">969&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">409,223</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">405,037</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">400,854</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">396,669</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">392,483</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">26</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_61"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;8:&#160;FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</span></div><div style="margin-top:14pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">INDEX TO FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:88.782%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.018%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Consolidated Financial Statements:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_64">Report of Independent Registered Public Accounting Firm (PCAOB ID</a><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_64"> Number </a><ix:nonNumeric contextRef="c-1" name="dei:AuditorFirmId" id="f-52">248</ix:nonNumeric><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_64">)</a></span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_64">28</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">Consolidated Statements of Operations for the Years Ended December&#160;31, </a>2024<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">, and </a>2022</span></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">30</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_73">Consolidated Statements of Comprehensive Income for the Years Ended December&#160;31, </a>2024<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">, and </a>2022</span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_73">31</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_79">Consolidated Balance Sheets as of December&#160;31, </a>2024<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_79"> and </a>2023</span></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_79">32</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_85">Consolidated Statements of Cash Flows for the Years Ended December&#160;31, </a>2024<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">, and </a>2022</span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_85">33</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_88">Consolidated Statements of Shareholders&#8217; Equity for the Years Ended December&#160;31, </a>2024<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">, and </a>2022</span></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_88">34</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_94">Notes to the Consolidated Financial Statements</a></span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_94">35</a></span></div></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Financial Statement Schedule:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_211">Schedule II &#8211; Valuation and Qualifying Accounts for the Years Ended December&#160;31, </a>2024<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_67">, and </a>2022</span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_211">64</a></span></div></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">27</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_64"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</span></div><div style="margin-top:5pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Board of Directors and Shareholders</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation</span></div><div style="margin-top:5pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Opinion on the financial statements </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have audited the accompanying consolidated balance sheets of Cognex Corporation (a Massachusetts corporation) and subsidiaries (the &#8220;Company&#8221;) as of December 31, 2024 and 2023, the related consolidated statements of operations, comprehensive income, shareholders&#8217; equity, and cash flows for each of the three years in the period ended December 31, 2024, and the related notes and financial statement schedule included under Item 15(a) (collectively referred to as the &#8220;financial statements&#8221;). In our opinion, the financial statements present fairly, in all material respects, the financial position of the Company as of December 31, 2024 and 2023, and the results of its operations and its cash flows for each of the three years in the period ended December 31, 2024, in conformity with accounting principles generally accepted in the United States of America. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (&#8220;PCAOB&#8221;), the Company&#8217;s internal control over financial reporting as of December 31, 2024, based on criteria established in the 2013 </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Internal Control&#8212;Integrated Framework</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> issued by the Committee of Sponsoring Organizations of the Treadway Commission (&#8220;COSO&#8221;), and our report dated February 13, 2025 expressed an unqualified opinion.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Change in accounting principle</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As discussed in Note 20 to the consolidated financial statements, the Company has adopted new accounting guidance in 2024 related to the disclosure of segment information in accordance with ASU 2023-07, Segment Reporting (Topic 280). The adoption was retrospectively applied to 2023 and 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Basis for opinion </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These financial statements are the responsibility of the Company&#8217;s management. Our responsibility is to express an opinion on the Company&#8217;s 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. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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 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 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 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 financial statements. We believe that our audits provide a reasonable basis for our opinion.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Critical audit matter</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The critical audit matter communicated below is a matter arising from the current period audit of the 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 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 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.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Revenue Recognition &#8211; Application-Specific Customer Solutions </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As described further in Notes 1 and 14 to the consolidated financial statements, the Company recognizes revenue from application-specific customer solutions. For these transactions, revenue is recognized at the point in time when the solution is validated, which is when the Company can reasonably determine that the agreed-upon specifications in the contract have been met and the customer will accept the performance obligation in the contract. We identified revenue recognition related to application-specific customer solutions as a critical audit matter.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The principal considerations for our determination that revenue recognition related to application-specific customer solutions is a critical audit matter are that evaluating the performance obligations and determining the timing of </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">28</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">validation and that the agreed-upon specifications in the contract have been met rely on the use of management judgements and require a higher degree of auditor judgment in designing, executing and evaluating the results of audit procedures. Accounting for application-specific customer solutions requires the Company to monitor and evaluate customer contracts on an ongoing basis to determine the point in time at which the solution is validated, the agreed-upon specifications in the contract have been met and revenue is recognized. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our audit procedures related to the revenue recognition of application-specific customer solutions included the following, among others. </span></div><div style="margin-top:5pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We tested the design and operating effectiveness of internal controls related to the monitoring of application-specific customer solution contracts, determination of validation and the timing of revenue recognition.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We evaluated management&#8217;s significant accounting policies related to these customer contracts, including the determination of the performance obligation, for appropriate revenue recognition based on the key terms and provisions.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">For a sample of contracts, we inspected source documents, including the customer contract or purchase order, third-party shipping information, invoice, and evidence of validation or acceptance to evaluate the identification of performance obligations and timing of revenue recognition.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">/s/ GRANT THORNTON LLP</span></div><div style="margin-top:5pt"><span><br/></span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have served as the Company&#8217;s auditor since 2007. </span></div><div style="margin-top:5pt"><span><br/></span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Boston, Massachusetts</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">February&#160;13, 2025 </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">29</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_67"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF OPERATIONS</span></div><div><span><br/></span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:55.938%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.122%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.243%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.831%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(In thousands, except per share amounts)</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-53">914,515</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-54">837,547</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-55">1,006,090</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-56">288,721</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-57">236,306</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-58">284,185</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="f-59">625,794</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="f-60">601,241</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="f-61">721,905</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-62">139,815</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-63">139,400</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-64">141,133</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-65">370,914</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-66">339,139</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-67">312,107</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss (recovery) from fire (Note 22)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:LossGainFromCatastrophes" format="ixt:fixed-zero" scale="3" id="f-68">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="cgnx:LossGainFromCatastrophes" format="ixt:num-dot-decimal" scale="3" id="f-69">8,000</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:LossGainFromCatastrophes" format="ixt:num-dot-decimal" scale="3" id="f-70">20,779</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:fixed-zero" scale="3" id="f-71">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:fixed-zero" scale="3" id="f-72">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-73">1,657</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating income</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-74">115,065</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-75">130,702</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-76">246,229</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-77">1,531</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-78">10,039</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-79">1,837</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Investment income</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="f-80">13,971</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="f-81">14,093</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="f-82">6,715</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other income (expense)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-83">922</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-84">592</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-85">412</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income before income tax expense</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-86">131,489</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-87">135,348</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-88">250,695</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-89">25,318</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-90">22,114</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-91">35,170</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-92">106,171</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-93">113,234</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-94">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net Income per weighted-average common and common-equivalent share:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-95">0.62</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-96">0.66</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="2" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-97">1.24</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-98">0.62</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-99">0.65</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-100">1.23</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:8pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Weighted-average common and common-equivalent shares outstanding:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-101">171,438</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-102">172,249</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-103">173,407</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted</span></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-104">172,611</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-105">173,399</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-106">174,869</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:11pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash dividends per common share</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="4" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-107">0.305</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="4" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-108">0.286</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="4" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-109">0.265</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/></tr></table></div><div><span><br/></span></div><div><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">30</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_73"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:59.222%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.640%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(In thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-110">106,171</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-111">113,234</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-112">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other comprehensive income (loss), net of tax:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Available-for-sale investments:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:11.25pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net unrealized gain (loss), net of tax of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="f-113">1,245</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="f-114">4,389</ix:nonFraction>, and $(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="f-115">5,943</ix:nonFraction>) in 2024, 2023, and 2022, respectively</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-116">3,809</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-117">10,507</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-118">17,152</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reclassification of net realized (gain) loss into current operations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-119">8</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-120">1,954</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-121">182</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net change related to available-for-sale investments</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-122">3,817</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-123">12,461</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-124">16,970</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:12pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency translation adjustments:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency translation gain (loss) </span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-125">31,258</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-126">11,500</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-127">4,385</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net change related to foreign currency translation adjustments</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-128">31,258</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-129">11,500</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-130">4,385</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other comprehensive income (loss), net of tax</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-131">27,441</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-132">23,961</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-133">21,355</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total comprehensive income</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-134">78,730</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-135">137,195</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-136">194,170</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:72pt;font-weight:400;line-height:120%">&#160;</span></div><div><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">31</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_79"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; CONSOLIDATED BALANCE SHEETS</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:71.560%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.204%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.206%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(In thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">ASSETS</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current assets:</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-137">186,094</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-138">202,655</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current investments, amortized cost of $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent" format="ixt:num-dot-decimal" scale="3" id="f-139">60,725</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent" format="ixt:num-dot-decimal" scale="3" id="f-140">132,799</ix:nonFraction> in 2024 and 2023, respectively, allowance for credit losses of $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" scale="3" id="f-141"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" scale="3" id="f-142">0</ix:nonFraction></ix:nonFraction> in 2024 and 2023</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-143">59,956</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-144">129,392</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable, allowance for credit losses of $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-145">827</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-146">583</ix:nonFraction> in 2024 and 2023, respectively</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="f-147">143,359</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="f-148">114,164</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:UnbilledReceivablesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-149">3,055</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:UnbilledReceivablesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-150">2,402</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-151">157,527</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-152">162,285</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-153">63,376</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-154">68,099</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-155">613,367</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-156">678,997</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-current investments, amortized cost of $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-157">345,033</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-158">250,790</ix:nonFraction> in 2024 and 2023, respectively, allowance for credit losses of $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" scale="3" id="f-159"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" scale="3" id="f-160">0</ix:nonFraction></ix:nonFraction> in 2024 and 2023</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-161">340,898</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-162">244,230</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property, plant, and equipment, net</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-163">98,445</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-164">105,849</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-165">67,326</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-166">75,115</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-167">384,937</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-168">393,181</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible assets, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="3" id="f-169">90,684</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="3" id="f-170">112,952</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred income taxes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredIncomeTaxAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-171">392,166</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredIncomeTaxAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-172">400,400</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-173">5,027</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-174">7,088</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total assets</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="3" id="f-175">1,992,850</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="3" id="f-176">2,017,812</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts payable</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="3" id="f-177">38,046</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="3" id="f-178">21,454</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-179">71,760</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-180">72,374</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued income taxes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AccruedIncomeTaxesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-181">25,685</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedIncomeTaxesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-182">16,907</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenue and customer deposits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-183">25,035</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-184">31,525</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-185">8,854</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-186">9,624</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current liabilities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-187">169,380</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-188">151,884</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-current operating lease liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-189">61,363</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-190">68,977</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-191">217,155</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-192">246,877</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reserve for income taxes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-193">26,365</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-194">26,685</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-current accrued income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AccruedIncomeTaxesNoncurrent" format="ixt:fixed-zero" scale="3" id="f-195">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedIncomeTaxesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-196">18,338</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OtherLiabilitiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-197">1,082</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OtherLiabilitiesNoncurrent" scale="3" id="f-198">299</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total liabilities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="3" id="f-199">475,345</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="3" id="f-200">513,060</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:12pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Commitments and contingencies (Note 11)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-6" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="f-201"></ix:nonFraction></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-7" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="f-202"></ix:nonFraction></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Shareholders&#8217; equity:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Preferred stock, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-6" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="f-203"><ix:nonFraction unitRef="usdPerShare" contextRef="c-7" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="f-204">0.01</ix:nonFraction></ix:nonFraction> par value - Authorized: <ix:nonFraction unitRef="shares" contextRef="c-6" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" scale="3" id="f-205"><ix:nonFraction unitRef="shares" contextRef="c-7" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" scale="3" id="f-206">400</ix:nonFraction></ix:nonFraction> shares in 2024 and 2023, respectively, <ix:nonFraction unitRef="shares" contextRef="c-7" decimals="INF" name="us-gaap:PreferredStockSharesIssued" format="ixt-sec:numwordsen" scale="3" id="f-207"><ix:nonFraction unitRef="shares" contextRef="c-6" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" format="ixt-sec:numwordsen" scale="3" id="f-208"><ix:nonFraction unitRef="shares" contextRef="c-6" decimals="INF" name="us-gaap:PreferredStockSharesIssued" format="ixt-sec:numwordsen" scale="3" id="f-209"><ix:nonFraction unitRef="shares" contextRef="c-7" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" format="ixt-sec:numwordsen" scale="3" id="f-210">no</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction> shares issued and outstanding</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:PreferredStockValueOutstanding" format="ixt:fixed-zero" scale="3" id="f-211">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:PreferredStockValueOutstanding" format="ixt:fixed-zero" scale="3" id="f-212">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Common stock, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-7" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-213"><ix:nonFraction unitRef="usdPerShare" contextRef="c-6" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-214">0.002</ix:nonFraction></ix:nonFraction> par value &#8211; Authorized: <ix:nonFraction unitRef="shares" contextRef="c-7" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-215"><ix:nonFraction unitRef="shares" contextRef="c-6" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-216">300,000</ix:nonFraction></ix:nonFraction> shares in 2024 and 2023, respectively, issued and outstanding: <ix:nonFraction unitRef="shares" contextRef="c-6" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-217"><ix:nonFraction unitRef="shares" contextRef="c-6" decimals="-3" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-218">170,434</ix:nonFraction></ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="c-7" decimals="-3" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-219"><ix:nonFraction unitRef="shares" contextRef="c-7" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-220">171,599</ix:nonFraction></ix:nonFraction> shares in 2024 and 2023, respectively</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:CommonStockValueOutstanding" scale="3" id="f-221">341</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:CommonStockValueOutstanding" scale="3" id="f-222">343</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additional paid-in capital</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AdditionalPaidInCapitalCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-223">1,090,638</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AdditionalPaidInCapitalCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-224">1,037,202</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Retained earnings</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="3" id="f-225">499,303</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="3" id="f-226">512,543</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accumulated other comprehensive loss, net of tax</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" sign="-" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-227">72,777</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" sign="-" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-228">45,336</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total shareholders&#8217; equity</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-229">1,517,505</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-230">1,504,752</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total liabilities and shareholders' equity</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-231">1,992,850</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-232">2,017,812</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">32</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_85"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF CASH FLOWS</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:5pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:66.202%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.310%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.310%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.312%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(In thousands)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash flows from operating activities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net income</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-233">106,171</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-234">113,234</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-235">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Adjustments to reconcile net income to net cash provided by operating activities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockOptionPlanExpense" format="ixt:num-dot-decimal" scale="3" id="f-236">52,443</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StockOptionPlanExpense" format="ixt:num-dot-decimal" scale="3" id="f-237">54,768</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:StockOptionPlanExpense" format="ixt:num-dot-decimal" scale="3" id="f-238">54,505</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Depreciation of property, plant, and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-239">21,271</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-240">17,270</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-241">16,347</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (gain) on disposal of property, plant, and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span id="idfd2578adb6c466ab3d83771419d1a31_9-1-1-1-179092"></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="f-242">88</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="f-243">229</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="f-244">19</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amortization of intangible assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="f-245">11,418</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="f-246">4,610</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="f-247">3,274</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-cash impact of charges related to fire (Note 22)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:NonCashLossFromCatastrophes" format="ixt:fixed-zero" scale="3" id="f-248">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:NonCashLossFromCatastrophes" format="ixt:fixed-zero" scale="3" id="f-249">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:NonCashLossFromCatastrophes" format="ixt:num-dot-decimal" scale="3" id="f-250">46,372</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Excess and obsolete inventory charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="3" id="f-251">2,505</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="3" id="f-252">3,775</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="3" id="f-253">3,084</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value adjustment on acquired inventories (Note 21)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:FairValueAdjustmentOnAcquiredInventories" format="ixt:num-dot-decimal" scale="3" id="f-254">1,224</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:FairValueAdjustmentOnAcquiredInventories" format="ixt:num-dot-decimal" scale="3" id="f-255">2,829</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:FairValueAdjustmentOnAcquiredInventories" format="ixt:fixed-zero" scale="3" id="f-256">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amortization of discounts or premiums on investments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" scale="3" id="f-257">306</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" format="ixt:num-dot-decimal" scale="3" id="f-258">1,745</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" format="ixt:num-dot-decimal" scale="3" id="f-259">4,968</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Realized (gain) loss on sale of investments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfInvestments" scale="3" id="f-260">8</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfInvestments" format="ixt:num-dot-decimal" scale="3" id="f-261">1,954</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfInvestments" scale="3" id="f-262">182</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in deferred income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-263">21,507</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-264">19,779</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-265">27,338</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in operating assets and liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-266">32,128</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-267">23,346</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-268">3,454</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" id="f-269">693</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" id="f-270">255</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" format="ixt:num-dot-decimal" scale="3" id="f-271">1,806</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="3" id="f-272">1,253</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="3" id="f-273">22,591</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="3" id="f-274">48,934</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:num-dot-decimal" scale="3" id="f-275">1,514</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:num-dot-decimal" scale="3" id="f-276">2,469</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:num-dot-decimal" scale="3" id="f-277">6,998</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-278">18,352</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-279">13,744</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-280">17,277</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-281">2,916</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-282">35,309</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-283">2,056</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" format="ixt:num-dot-decimal" scale="3" id="f-284">9,278</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" format="ixt:num-dot-decimal" scale="3" id="f-285">16,745</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" scale="3" id="f-286">444</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenue and customer deposits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-287">6,216</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-288">9,122</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-289">4,886</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" format="ixt:num-dot-decimal" scale="3" id="f-290">1,940</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" format="ixt:num-dot-decimal" scale="3" id="f-291">4,232</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" format="ixt:num-dot-decimal" scale="3" id="f-292">12,081</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash provided by operating activities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-293">149,081</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-294">112,916</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-295">243,406</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash flows from investing activities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Purchases of investments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquireInvestments" format="ixt:num-dot-decimal" scale="3" id="f-296">850,852</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PaymentsToAcquireInvestments" format="ixt:num-dot-decimal" scale="3" id="f-297">184,056</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PaymentsToAcquireInvestments" format="ixt:num-dot-decimal" scale="3" id="f-298">233,720</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Maturities and sales of investments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" format="ixt:num-dot-decimal" scale="3" id="f-299">828,370</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" format="ixt:num-dot-decimal" scale="3" id="f-300">496,462</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" format="ixt:num-dot-decimal" scale="3" id="f-301">253,983</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Purchases of property, plant, and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-302">15,043</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-303">23,077</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-304">19,667</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net payments related to business acquisitions (Note 21)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:num-dot-decimal" scale="3" id="f-305">1,444</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:num-dot-decimal" scale="3" id="f-306">257,056</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:num-dot-decimal" scale="3" id="f-307">5,050</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash provided by (used in) investing activities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-308">38,969</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-309">32,273</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-310">4,454</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash flows from financing activities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net payments from issuance of common stock under stock plans</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" scale="3" id="f-311">994</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" format="ixt:num-dot-decimal" scale="3" id="f-312">3,268</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" format="ixt:num-dot-decimal" scale="3" id="f-313">9,861</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Repurchase of common stock</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-314">67,085</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-315">79,794</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-316">204,314</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Payment of dividends</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsOfDividendsCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-317">52,329</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PaymentsOfDividendsCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-318">49,079</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PaymentsOfDividendsCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-319">45,921</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash used in financing activities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="f-320">118,420</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="f-321">125,605</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="f-322">240,374</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Effect of foreign exchange rate changes on cash and cash equivalents</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-323">8,253</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-324">1,697</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-325">3,365</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net change in cash and cash equivalents</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-326">16,561</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-327">21,281</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-328">4,787</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents at beginning of year</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-329">202,655</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-330">181,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-331">186,161</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents at end of year</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-332">186,094</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-333">202,655</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-334">181,374</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">33</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_88"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Content</a></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:5pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.593%"><tr><td style="width:1.0%"/><td style="width:48.186%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.278%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.925%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.254%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.035%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.767%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.567%"/><td style="width:0.1%"/></tr><tr style="height:27pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Common Stock</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Additional<br/>Paid-in<br/>Capital</span></td><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Retained<br/>Earnings</span></td><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated<br/>Other<br/>Comprehensive<br/>Loss</span></td><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total<br/>Shareholders&#8217;<br/>Equity</span></td></tr><tr style="height:12pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(In thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Shares</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Par&#160;Value</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><ix:footnote id="fn-1" footnoteRole="http://www.xbrl.org/2003/role/footnote"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-10" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-335">175,481</ix:nonFraction>&#160;</span></ix:footnote></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-10" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-336">351</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-11" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-337">914,802</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-12" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-338">562,882</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-339">47,942</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-340">1,430,093</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net issuance of common stock under stock plans</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-14" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-341">514</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-14" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-342">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-15" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-343">9,860</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-344">9,861</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Repurchase of common stock</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-14" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="3" id="f-345">3,364</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-14" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="f-346">7</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-16" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-347">204,307</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-348">204,314</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-15" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-349">54,505</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-350">54,505</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Payment of dividends ($0.265 per common share)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-16" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-351">45,921</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-352">45,921</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net income</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-16" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-353">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-354">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($5,943)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-17" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-355">17,152</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-356">17,152</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-17" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-357">182</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-358">182</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign currency translation adjustment</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-17" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-359">4,385</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-360">4,385</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-18" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-361">172,631</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-362">345</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-363">979,167</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-364">528,179</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-365">69,297</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-366">1,438,394</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net issuance of common stock under stock plans</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-22" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-367">691</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-368">1</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-23" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-369">3,267</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-370">3,268</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Repurchase of common stock</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-22" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="3" id="f-371">1,723</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="f-372">3</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-373">79,791</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-374">79,794</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-23" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-375">54,768</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-376">54,768</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Payment of dividends ($0.286 per common share)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-377">49,079</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-378">49,079</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net income</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-379">113,234</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-380">113,234</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net unrealized gain (loss) on available-for-sale investments, net of tax of $4,389</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-25" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-381">10,507</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-382">10,507</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-25" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-383">1,954</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-384">1,954</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign currency translation adjustment</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-25" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-385">11,500</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-386">11,500</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-26" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-387">171,599</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-26" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-388">343</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-27" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-389">1,037,202</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-28" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-390">512,543</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-29" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-391">45,336</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-392">1,504,752</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net issuance of common stock under stock plans</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-30" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-393">546</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-30" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-394">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-31" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-395">993</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-396">994</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Repurchase of common stock</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-30" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="3" id="f-397">1,711</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-30" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="f-398">3</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-32" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-399">67,082</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-400">67,085</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-31" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-401">52,443</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-402">52,443</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Payment of dividends ($0.305 per common share)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-32" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-403">52,329</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-404">52,329</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net income</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-32" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-405">106,171</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-406">106,171</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net unrealized gain (loss) on available-for-sale investments, net of tax of $1,245</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-33" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-407">3,809</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-408">3,809</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-33" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-409">8</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-410">8</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign currency translation adjustment</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-33" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-411">31,258</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-412">31,258</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Balance as of December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-34" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-413">170,434</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-34" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-414">341</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-415">1,090,638</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-36" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-416">499,303</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-37" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-417">72,777</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-418">1,517,505</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/></tr></table></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">34</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_94"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><span><br/></span></div><div id="i67e131bb2c504a23903df9579998c003_97"></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 1:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:SignificantAccountingPoliciesTextBlock" id="f-422" continuedAt="f-422-1" escape="true">Summary of Significant Accounting Policies</ix:nonNumeric></span></div><ix:continuation id="f-422-1" continuedAt="f-422-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.</span></div><ix:nonNumeric contextRef="c-1" name="cgnx:NatureOfOperationsPolicyTextBlock" id="f-423" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Nature of Operations</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation ("the Company" or "Cognex") is a leading global provider of machine vision products and solutions that improve efficiency and quality and address some of the most critical manufacturing and distribution challenges.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:UseOfEstimates" id="f-424" escape="true"><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Use of Estimates in the Preparation of Financial Statements</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America (U.S.&#160;GAAP) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and the disclosure of contingent liabilities as of the balance sheet date, and the reported amounts of revenues and expenses during the year. Actual results could differ from those estimates. Significant estimates and judgments include those related to revenue recognition and income taxes.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ConsolidationPolicyTextBlock" id="f-425" escape="true"><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Basis of Consolidation</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The consolidated financial statements include the accounts of Cognex Corporation and its subsidiaries, all of which are wholly owned. All intercompany accounts and transactions have been eliminated.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="f-426" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Foreign Currency Translation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements of the Company&#8217;s foreign subsidiaries, where the local currency is the functional currency, are translated using exchange rates in effect at the end of the year for assets and liabilities and average exchange rates during the year for results of operations. The resulting foreign currency translation adjustment, net of tax, is included in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="f-427" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Fair Value Measurements</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company applies a three-level valuation hierarchy for fair value measurements. The categorization of assets and liabilities within the valuation hierarchy is based on the lowest level of input that is significant to the measurement of fair value. Level&#160;1 inputs to the valuation methodology utilize unadjusted quoted market prices in active markets for identical assets and liabilities. Level 2 inputs to the valuation methodology are other observable inputs, including quoted market prices for similar assets and liabilities, quoted prices for identical and similar assets and liabilities in markets that are not active, or other inputs that are observable or can be corroborated by observable market data. Level 3 inputs to the valuation methodology are unobservable inputs based on management&#8217;s best estimate of the inputs that market participants would use in pricing the asset or liability at the measurement date, including assumptions about risk. A change to the level of an asset or liability within the fair value hierarchy is determined at the end of a reporting period.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:InvestmentPolicyTextBlock" id="f-429" continuedAt="f-429-1" escape="true"><ix:nonNumeric contextRef="c-1" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="f-428" continuedAt="f-428-1" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Cash, Cash Equivalents, and Investments</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#8217;s investment policy was modified to reduce effective maturities of newly purchased securities to up to <ix:nonNumeric contextRef="c-1" name="cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" format="ixt-sec:durwordsen" id="f-430">five years</ix:nonNumeric>. As of December 31, 2024, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#8217; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could </span></div></ix:nonNumeric></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">35</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-422-2" continuedAt="f-422-3"><ix:continuation id="f-429-1"><ix:continuation id="f-428-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.</span></div></ix:continuation></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:TradeAndOtherAccountsReceivablePolicy" id="f-431" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounts Receivable</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company extends credit with various payment terms to customers based on an evaluation of their financial condition. Accounts that are outstanding longer than the payment terms are considered to be past due. The Company establishes an allowance against accounts receivable for credit losses when it determines receivables are at risk for collection based on the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, and general economic and industry conditions, as well as various other factors. Receivables are written off against this allowance in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a recovery of the credit loss. Credit losses and recoveries related to accounts receivable are included in "Selling, general, and administrative expenses" on the Consolidated Statements of Operations.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:InventoryPolicyTextBlock" id="f-432" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Inventories</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost and net realizable value. Cost is determined using standard costs, which approximates actual costs under the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Purchase price variances are incurred when actual costs are different than standard costs due to favorable or unfavorable market prices. Management applies judgment to recognize purchase price variances in the same period that the associated standard costs of the finished goods that consume these components are sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s inventory is subject to technological change or obsolescence. The Company reviews inventory quantities on hand and estimates excess and obsolescence exposures based on assumptions about future demand, product transitions, general economic and industry conditions, and other circumstances, and records reserves to reduce the carrying value of inventories to their net realizable value. If actual future demand is less than estimated, additional inventory write-downs would be required.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company generally disposes of obsolete inventory upon determination of obsolescence. The Company does not dispose of excess inventory immediately, due to the possibility that some of this inventory could be sold to customers as a result of differences between actual and forecasted demand. When inventory has been written down below cost, such reduced amount is considered the new cost basis for subsequent accounting purposes. As a result, the Company could recognize a higher-than-normal gross margin if the reserved inventory were subsequently sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired inventories are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of inventories above the acquired company&#8217;s pre-acquisition carrying value, which results in a lower-than-normal gross margin when these acquired inventories are sold.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="f-433" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Property, Plant, and Equipment</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment are stated at cost and depreciated using the straight-line method over the assets&#8217; estimated useful lives. Buildings&#8217; original useful lives are <ix:nonNumeric contextRef="c-38" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-434">39</ix:nonNumeric> years, building improvements&#8217; useful lives range from <span style="-sec-ix-hidden:f-435">five</span> to <ix:nonNumeric contextRef="c-40" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:durwordsen" id="f-436">ten years</ix:nonNumeric>, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from <span style="-sec-ix-hidden:f-437">two</span> to <ix:nonNumeric contextRef="c-42" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:durwordsen" id="f-438">ten years</ix:nonNumeric>. Land that is leased or granted, as well as leasehold improvements, are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases. Maintenance and repairs are expensed when incurred; additions and improvements are capitalized. Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired property, plant, and equipment are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of property, plant, and equipment above the acquired company&#8217;s pre-acquisition carrying value, which results in a higher depreciation expense over the estimated lives of the assets.</span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">36</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-422-3" continuedAt="f-422-4"><ix:nonNumeric contextRef="c-1" name="us-gaap:InternalUseSoftwarePolicy" id="f-439" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Internal-use Software</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Internal-use software is software acquired, internally developed, or modified solely to meet the Company's internal needs, and during the software's development no substantive plan exists to sell the software. The accounting treatment for computer software developed for internal use depends on the nature of activities performed at each stage of development. The preliminary project stage includes conceptual formulation of design alternatives, determination of system requirements, vendor demonstrations, and final selection of vendors, and during this stage costs are expensed as incurred. The application development stage includes software configuration, coding, hardware installation, and testing. During this stage, certain costs are capitalized, including external direct costs of materials and services, as well as payroll and payroll-related costs for employees who are directly associated with the project, while certain costs are expensed as incurred, including training and data conversion costs. The post-implementation stage includes support and maintenance, and during this stage costs are expensed as incurred.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Capitalization begins when both the preliminary project stage is completed and management commits to funding the project. Capitalization ceases at the point the project is substantially complete and ready for its intended use, that is, after all substantial testing is completed. Costs of specified upgrades and enhancements to internal-use software are capitalized if it is probable that those expenditures result in additional functionality. Capitalized costs are amortized on a straight-line basis over the estimated useful life.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeLeasesPolicyTextBlock" id="f-440" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Leases</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At inception of a contract, the Company determines whether that contract is or contains a lease by assessing whether there is an identified asset and whether the contract conveys the right to control the use of the identified asset for a period of time in exchange for consideration. The Company has control of the asset if it has the right to direct the use of the asset and obtains substantially all of the economic benefits from the use of the asset throughout the period of use.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a practical expedient, the Company does not recognize a lease asset or lease liability for leases with a lease term of twelve months or less. In the determination of the lease term, the Company considers the existence of extension or termination options and the probability of those options being exercised.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease contracts may include fixed lease components and non-lease components, such as common area maintenance and utilities for property leases. As a practical expedient, the Company accounts for the non-lease components together with the lease components as a single lease component for all of its leases.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: (1) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; (2) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; (3) the lease term is for the major part of the remaining economic life of the underlying asset (the Company considers a major part to be 75% or more of the remaining economic life of the underlying asset); (4) the present value of the sum of the lease payments and any residual value guaranteed by the Company equals or exceeds substantially all of the fair value of the underlying asset (the Company considers substantially all the fair value to be 90% or more of the fair value of the underlying asset amount); or (5) the underlying asset is of such a specialized nature that it is expected to have no alternative use to the lessor at the end of the lease term. When none of the criteria above are met, the Company classifies the lease as an operating lease.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On the lease commencement date, the Company records a lease asset and lease liability on the balance sheet. The lease asset consists of: (1) the amount of the initial lease liability; (2) any lease payments made to the lessor at or before the lease commencement date, minus any lease incentives received; and (3) any initial direct cost incurred by the Company. Initial direct costs are incremental costs of a lease that would not have been incurred if the lease had not been obtained and are capitalized as part of the lease asset. The lease liability equals the present value of the future cash payments discounted using the Company's incremental borrowing rate. The Company&#8217;s incremental borrowing rate is the rate of interest that the Company would have to pay to borrow an amount equal to the lease payments over a similar term which was estimated using the Secured Overnight Financing Rate (SOFR) plus a 2% credit risk spread.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating lease expense equals the total cash payments recognized on a straight-line basis over the lease term. The amortization of the lease asset is calculated as the straight-line lease expense less the accretion of the interest on the lease liability each period. The lease liability is reduced by the cash payment less the interest each period.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy" id="f-441" continuedAt="f-441-1" escape="true"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Goodwill</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill is stated at cost. The Company evaluates the potential impairment of goodwill annually each fourth quarter </span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">37</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-422-4" continuedAt="f-422-5"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-441-1">and whenever events or circumstances indicate the carrying value of the goodwill may not be recoverable. The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary. Factors that management considers in this assessment include general economic and industry conditions, overall financial performance (both current and projected), changes in strategy, changes in the composition or carrying amount of net assets, and market capitalization. If this qualitative assessment indicates that it is more likely than not that the fair value of a reporting unit is less than its carrying value, the Company proceeds to perform a quantitative impairment test. Under this quantitative analysis, the fair value of the reporting unit is compared with its carrying value, including goodwill. If the carrying value exceeds the fair value of the reporting unit, the Company recognizes an impairment charge. The Company estimates the fair value of its reporting unit using the income approach based on a discounted cash flow model. In addition, the Company uses the market approach, which compares the reporting unit to publicly traded companies and transactions involving similar businesses, to support the conclusions based on the income approach.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:IntangibleAssetsFiniteLivedPolicy" id="f-442" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Intangible Assets</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets are stated at cost and amortized over the assets&#8217; estimated useful lives. Intangible assets are either amortized in relation to the relative cash flows anticipated from the intangible asset or using the straight-line method, depending on facts and circumstances. The useful lives of customer relationships range from <span style="-sec-ix-hidden:f-443">five</span> to <ix:nonNumeric contextRef="c-44" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="f-444">fifteen years</ix:nonNumeric>, completed technologies from <span style="-sec-ix-hidden:f-445">five</span> to <ix:nonNumeric contextRef="c-46" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="f-446">nine years</ix:nonNumeric>, non-compete agreements from <span style="-sec-ix-hidden:f-447">six</span> to <ix:nonNumeric contextRef="c-48" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="f-448">seven years</ix:nonNumeric>, and trademarks for <ix:nonNumeric contextRef="c-49" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="f-449">three years</ix:nonNumeric>. In-process technology is an indefinite-lived intangible asset until the technology is completed, at which point it is amortized over its estimated useful life. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company evaluates the potential impairment of intangible assets whenever events or circumstances indicate the carrying value of the assets may not be recoverable. For finite-lived intangible assets that are subject to amortization, the Company follows a two-step process for impairment testing. In step one, known as the recoverability test, the carrying value of the asset is compared to the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the asset. If the sum of the undiscounted future cash flows is less than the carrying value, the asset is not recoverable and step two is performed. In step two, the impairment charge is measured as the amount by which the carrying value of the asset exceeds its fair value.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:StandardProductWarrantyPolicy" id="f-450" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Warranty Obligations</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from <span style="-sec-ix-hidden:f-451">one</span> to <ix:nonNumeric contextRef="c-51" name="cgnx:ProductWarrantyPeriod" format="ixt-sec:durwordsen" id="f-452">three years</ix:nonNumeric> from the time of sale based on the product being purchased and the terms of the customer arrangement. Warranty obligations are evaluated and recorded at the time of sale since it is probable that customers will make claims under warranties related to products that have been sold and the amount of these claims can be reasonably estimated based on historical costs to fulfill claims. Obligations may also be recorded subsequent to the time of sale whenever specific events or circumstances impacting product quality become known that would not have been taken into account using historical data.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:CommitmentsAndContingenciesPolicyTextBlock" id="f-453" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Contingencies</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Loss contingencies are accrued if the loss is probable and the amount of the loss can be reasonably estimated. Legal costs associated with potential loss contingencies are expensed as incurred.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:DerivativesPolicyTextBlock" id="f-454" continuedAt="f-454-1" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Derivative Instruments</span></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-454-1">Derivative instruments are recorded on the Consolidated Balance Sheets at fair value. Changes in the fair value of the Company&#8217;s economic hedges utilizing foreign currency forward contracts are included in "Foreign currency gain (loss)" on the Consolidated Statements of Operations. When the Company is engaged in more than one outstanding derivative contract with the same counterparty and also has a legally enforceable master netting agreement with that counterparty, the &#8220;net&#8221; mark-to-market exposure represents the netting of the positive and negative exposures with that counterparty. The cash flows from derivative instruments are presented in the same category on the Consolidated Statements of Cash Flows as the category for the cash flows from the hedged item. Generally, this accounting policy election results in cash flows related to derivative instruments being classified as an operating activity on the Consolidated Statements of Cash Flows.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueRecognitionPolicyTextBlock" id="f-455" continuedAt="f-455-1" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Revenue Recognition</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &#8220;Revenue from Contracts with Customers.&#8221; The core principle of ASC 606 is to recognize revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the </span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">38</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-455-1" continuedAt="f-455-2"><ix:continuation id="f-422-5" continuedAt="f-422-6"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Company expects to be entitled in exchange for those goods or services. The framework in support of this core principle includes: (1) identifying the contract with the customer; (2) identifying the performance obligations in the contract; (3) determining the transaction price; (4) allocating the transaction price to the performance obligations; and (5) recognizing revenue when (or as) the performance obligations are satisfied. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Contract with the Customer</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies contracts with customers as agreements that create enforceable rights and obligations, which typically take the form of customer contracts or purchase orders. 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.</span></div><div style="margin-top:6pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Performance Obligations in the Contract</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies performance obligations as promises in contracts to transfer distinct goods or services. Standard products and services that the Company regularly sells separately, which customers can benefit from either on their own or with other readily available resources and are distinct within the context of the customer contract, are accounted for as distinct performance obligations. Application-specific customer solutions that are comprised of a combination of products and services are accounted for as one performance obligation to deliver a total solution to the customer. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shipping and handling activities for which the Company is responsible under the terms and conditions of the sale are not accounted for as performance obligations but as fulfillment costs. These activities are required to fulfill the Company&#8217;s promise to transfer the goods and are expensed when revenue is recognized.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company does not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract. If revenue is recognized before immaterial promises have been completed, then the costs related to such immaterial promises are accrued at the time of sale.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Determining the Transaction Price</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company determines the transaction price as the amount of consideration it expects to receive in exchange for transferring promised goods or services to the customer. Amounts collected from customers for sales taxes are excluded from the transaction price. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If a contract includes a variable amount, such as a rebate, then the Company estimates the transaction price using either the expected value or the most likely amount of consideration to be received, depending on the specific facts and circumstances. The Company includes estimated variable consideration in the transaction price only to the extent it is probable that a significant reversal of revenue will not occur when the uncertainty is resolved. The Company updates its estimate of variable consideration at the end of each reporting period to reflect changes in facts and circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company records revenue net of estimated returns. As a practical expedient, the Company estimates the transaction price using the expected value based on its history of return experience using a portfolio approach in which the Company&#8217;s total revenue is reduced by an estimate of total customer returns. Management reasonably expects that the effect of applying a portfolio approach to a group of contracts would not differ materially from considering each contract separately.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Allocating the Transaction Price to the Performance Obligations</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company allocates the transaction price to each performance obligation at contract inception based on a relative stand-alone selling price basis, or the price at which the Company would sell the good or service separately to similar customers in similar circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue when it transfers the promised goods or services to the customer. Revenue for standard products is recognized at the point in time when the customer obtains control of the goods, which is typically upon shipment or delivery when the customer has legal title, physical possession, the risks and rewards of ownership, and an enforceable obligation to pay for the products. Revenue for services, which are not material, is typically recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can reasonably determine that the agreed-upon specifications in the contract have been met and the customer should reasonably accept the performance obligations in the </span></div></ix:continuation></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">39</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-422-6" continuedAt="f-422-7"><ix:continuation id="f-455-2"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#8217;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#8217;s requirements. If the Company can reasonably determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the Company&#8217;s standard products and services, revenue recognition and billing typically occur at the same time. For application-specific customer solutions, however, the agreement with the customer may provide for billing terms which differ from the timing of revenue recognition, resulting in either deferred revenue or unbilled revenue. Credit assessments are performed to determine payment terms, which vary by region, industry, and customer. Prepayment terms result in contract liabilities for customer deposits. When credit is granted to customers, payment is typically due <ix:nonNumeric contextRef="c-50" name="cgnx:RevenuePaymentTerms" format="ixt-sec:durday" id="f-456">30</ix:nonNumeric> to <ix:nonNumeric contextRef="c-51" name="cgnx:RevenuePaymentTerms" format="ixt-sec:durday" id="f-457">90</ix:nonNumeric> days from billing. The Company's contracts typically have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on such contracts and to expense sales commissions. The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management exercises judgment when determining the amount of revenue to be recognized each period. Such judgments include, but are not limited to, assessing the customer&#8217;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" id="f-458" continuedAt="f-458-1" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Research and Development</span></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-458-1">Research and development costs primarily include costs related to personnel, prototyping materials and equipment, and outside services. Research and development costs are expensed when incurred until technological feasibility has been established for the product. Thereafter, all software costs may be capitalized until the product is available for general release to customers. The Company determines technological feasibility at the time the product reaches beta in its stage of development. Historically, the time incurred between beta and general release to customers has been short, and therefore, the costs have been insignificant.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:AdvertisingCostsPolicyTextBlock" id="f-459" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Advertising Costs</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Advertising costs are expensed as incurred and totaled $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="f-460">1,286,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="f-461">1,190,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="f-462">1,257,000</ix:nonFraction> in 2022.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="f-463" continuedAt="f-463-1" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock-Based Compensation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). The Company has reserved a specific number of shares of its authorized but unissued shares for issuance upon the exercise of stock options or the settlement of RSUs. When a stock option is exercised or an RSU is settled, the Company issues new shares from this pool. Management is responsible for determining the appropriate valuation model and estimating the fair value of stock-based awards, and in doing so, considers a number of factors, including information provided by an outside valuation advisor and the observable market price of the Company's common stock on the grant date. The fair value of RSUs is determined based on the observable market price of the Company's common stock on the grant date less the present value of expected future dividends. The fair value of PRSUs where the performance goal includes service and market conditions is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. When determining the grant-date fair value of stock-based awards, management further considers whether an adjustment is required to the observable </span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">40</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-422-7" continuedAt="f-422-8"><ix:continuation id="f-463-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">market price or volatility of the Company's common stock that is used in the valuation as a result of material non-public information if that information is expected to result in a material increase in share price.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes compensation expense related to stock-based awards using the graded attribution method, in which expense is recognized on a straight-line basis over the service period for each separately vesting portion of the stock option or RSU as if the award was, in substance, multiple awards. The amount of compensation expense recognized at the end of the vesting period is based on the number of awards for which the requisite service has been completed. No compensation expense is recognized for awards that are forfeited for which the employee does not render the requisite service. The term &#8220;forfeitures&#8221; is distinct from &#8220;expirations&#8221; and represents only the unvested portion of the surrendered award. The Company applies estimated forfeiture rates to its unvested awards to arrive at the amount of compensation expense that is expected to be recognized over the requisite service period. At the end of each separately vesting portion of an award, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based on the employee&#8217;s service, and an increase or decrease to compensation expense is recorded to true up the final expense.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:IncomeTaxPolicyTextBlock" id="f-464" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Taxes</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes a tax position in its financial statements when that tax position, based solely upon its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statutes of limitations. Derecognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The portion of the liability that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statutes of limitations) or are not expected to be paid within one year are classified as a non-current liability. It is the Company&#8217;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Deferred tax assets and liabilities are determined based on the differences between the financial statement and tax bases of assets and liabilities as measured by the enacted tax rates that will be in effect when these differences reverse. Valuation allowances are provided if, based on the weight of available evidence, it is more likely than not that some or all of the deferred tax assets will not be realized. The Company accounts for the impact of Global Intangible Low-Taxed Income (GILTI) tax in deferred taxes. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sales tax in the United States and similar taxes in other jurisdictions that are collected from customers and remitted to government authorities are presented on a gross basis (i.e., a receivable from the customer with a corresponding payable to the government). Amounts collected from customers and retained by the Company during tax holidays are recognized as non-operating income when earned.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:EarningsPerSharePolicyTextBlock" id="f-465" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Net Income Per Share</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period. Diluted net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period plus potential dilutive common shares. Dilutive common equivalent shares consist of stock options and restricted stock units and are calculated using the treasury stock method. Common equivalent shares do not qualify as participating securities. In periods where the Company records a net loss, potential common stock equivalents are not included in the calculation of diluted net loss per share as their effect would be anti-dilutive.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ComprehensiveIncomePolicyPolicyTextBlock" id="f-466" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Comprehensive Income</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Comprehensive income is defined as the change in equity of a company during a period from transactions and other events and circumstances, excluding transactions resulting from investments by owners and distributions to owners. Accumulated other comprehensive loss, net of tax, consists of foreign currency translation adjustment losses of $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" sign="-" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-467">67,808,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-468">36,550,000</ix:nonFraction>, as of December 31, 2024 and December 31, 2023, respectively; net unrealized losses on available-for-sale investments of $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="0" sign="-" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-469">3,698,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-470">7,515,000</ix:nonFraction> as of December 31, 2024 and December 31, 2023, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-471"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-472">1,271,000</ix:nonFraction></ix:nonFraction> at each year end.</span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">41</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-422-8" continuedAt="f-422-9"><ix:nonNumeric contextRef="c-1" name="cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock" id="f-473" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Concentrations of Risk</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and accounts receivable. The Company has certain domestic and foreign cash balances that exceed the insured limits set by the Federal Deposit Insurance Corporation (FDIC) in the United States and equivalent regulatory agencies in foreign countries. The Company primarily invests in investment-grade debt securities and has established guidelines relative to credit ratings, diversification, and maturities of its debt securities that maintain liquidity and safety. The Company has historically not experienced any significant realized losses on its debt securities. The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has historically not experienced any significant losses related to the collection of its accounts receivable.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of the Company's products is presently manufactured by a third-party contractor located in Indonesia. This contract manufacturer has agreed to provide the Company with termination notification periods and last-time-buy rights, if and when that may be applicable. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges or other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, delivery costs, and manufacturing delays.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company sources components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components may typically be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of the Company&#8217;s products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:BusinessCombinationsPolicy" id="f-474" continuedAt="f-474-1" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Business Combinations</span></div></ix:nonNumeric></ix:continuation><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-474-1"><ix:continuation id="f-422-9">The Company determines whether a transaction qualifies as a business combination by applying the definition of a business, which requires the assets acquired and liabilities assumed to be inputs and processes that have the ability to contribute to the creation of outputs. The Company accounts for business combinations under the acquisition method of accounting, which requires the following steps: (1) identifying the acquirer, (2) determining the acquisition date, (3) recognizing and measuring the identifiable assets acquired and the liabilities assumed, and (4) recognizing and measuring goodwill. The Company measures the identifiable assets acquired and liabilities assumed at their estimated fair values as of the acquisition date. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired, on detailed valuations that use information and assumptions provided by management, which consider management&#8217;s best estimates of inputs and assumptions that a market participant would use. Goodwill is recognized as of the acquisition date as the excess of the consideration transferred over the net amount of assets acquired and liabilities assumed. Transaction costs are expensed as incurred.</ix:continuation></ix:continuation> </span></div><div id="i67e131bb2c504a23903df9579998c003_103"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 2: <ix:nonNumeric contextRef="c-1" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="f-486" continuedAt="f-486-1" escape="true"><ix:nonNumeric contextRef="c-1" name="us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" id="f-485" continuedAt="f-485-1" escape="true">New Pronouncements</ix:nonNumeric></ix:nonNumeric></span></div><ix:continuation id="f-486-1" continuedAt="f-486-2"><ix:continuation id="f-485-1" continuedAt="f-485-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all public entities, including public entities with a single reportable segment, that are required to report segment information in accordance with Topic 280, Segment Reporting. The amendments require public business entities to provide in interim and annual periods one or more measures of segment profit or loss used by the chief operating decision maker to allocate resources and assess performance. Additionally, the amendments require disclosure of significant segment expenses and other segment items, as well as incremental qualitative disclosures. The amendments in this ASU are effective for fiscal years beginning after December 15, 2023 and should be applied on a retrospective basis. The Company adopted ASU 2023-07 in 2024. Refer to Note 20 for related disclosures.</span></div></ix:continuation></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">42</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-486-2"><ix:continuation id="f-485-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all entities that are subject to Topic 740, Income Taxes. The amendments require public business entities to disclose specific categories in their rate reconciliation and provide additional information for reconciling items that meet a quantitative threshold. They also require all entities to disclose income taxes paid, net of refund received, disaggregated by federal, state, and foreign taxes and by individual jurisdictions in which income taxes paid, net of refunds received, is equal to or greater than five percent of total income taxes paid. For public business entities, the amendments in this ASU are effective for annual periods beginning after December 15, 2024. The amendments in this ASU should be applied on a prospective basis. Management does not expect ASU 2023-09 to have a material impact on the Company's financial statements and disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2024-03, Income Statement&#8212;Reporting Comprehensive Income&#8212;Expense Disaggregation Disclosures (Subtopic 220-40)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASU 2024-03 aims to enhance transparency for users of financial statements by requiring public business entities to disaggregate specific expense categories. ASU 2024-03 mandates disclosures in the notes to financial statements detailing the composition and trends of key expense categories within major income statement captions. These enhanced disclosures are intended to help investors more effectively assess the entity&#8217;s performance, understand its cost structure, and make more accurate forecasts of future cash flows. For public business entities, ASU 2024-03 is effective for annual periods beginning after December 15, 2026, and interim periods within annual reporting periods beginning after December 15, 2027. The adoption will result in disclosure changes only.</span></div></ix:continuation></ix:continuation><div id="i67e131bb2c504a23903df9579998c003_109"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 3:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueDisclosuresTextBlock" id="f-487" continuedAt="f-487-1" escape="true">Fair Value Measurements</ix:nonNumeric></span></div><ix:continuation id="f-487-1" continuedAt="f-487-2"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Financial Assets and Liabilities that are Measured at Fair Value on a Recurring Basis</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" id="f-488" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, 2024 (in thousands):</span></div><div style="margin-top:10pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:53.578%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.519%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.519%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.524%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Quoted&#160;Prices&#160;in<br/>Active Markets<br/>for Identical<br/>Assets (Level&#160;1)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Significant&#160;Other<br/>Observable<br/>Inputs (Level&#160;2)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unobservable Inputs                       (Level 3)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-489">15,242</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-490">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-491">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="cgnx:CorporateBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-492">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="cgnx:CorporateBondsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-493">340,916</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="cgnx:CorporateBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-494">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="cgnx:TreasuryBillsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-495">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="cgnx:TreasuryBillsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-496">45,634</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="cgnx:TreasuryBillsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-497">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-498">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-499">13,314</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-500">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="cgnx:SovereignBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-501">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="cgnx:SovereignBondsFairValueDisclosure" scale="3" id="f-502">990</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="cgnx:SovereignBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-503">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="f-504">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" scale="3" id="f-505">324</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-506">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-507">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" scale="3" id="f-508">211</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-509">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s money market instruments are reported at fair value based on the daily market price for identical assets in active markets, and are therefore classified as Level 1. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s debt securities and forward contracts are reported at fair value based on model-driven valuations in which all significant inputs are observable or can be derived from or corroborated by observable market data for substantially the full term of the asset or liability, and are therefore classified as Level 2. Management is responsible for estimating the fair value of these financial assets and liabilities, and in doing so, considers valuations provided by a large, third-party pricing service. For debt securities, this service maintains regular contact with market makers, brokers, dealers, and analysts to gather information on market movement, direction, trends, and other specific data. They use this information to structure yield curves for various types of debt securities and arrive at the daily valuations. The Company's forward contracts are typically traded or executed in over-the-counter markets with a high degree of pricing transparency. The market participants are generally large commercial banks.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">43</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-487-2" continuedAt="f-487-3"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis</span></div></ix:continuation><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-487-3">Non-financial assets, such as property, plant and equipment, operating lease assets, goodwill, and intangible assets, are required to be measured at fair value only when an impairment loss is recognized. The Company evaluates these long-lived assets for impairment whenever events or changes in circumstances, referred to as "triggering events," indicate the carrying value may not be recoverable. The Company did not record impairment charges related to non-financial assets in 2024, 2023, or 2022.</ix:continuation> </span></div><div id="i67e131bb2c504a23903df9579998c003_115"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 4:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" id="f-510" continuedAt="f-510-1" escape="true">Cash, Cash Equivalents, and Investments</ix:nonNumeric></span></div><ix:continuation id="f-510-1" continuedAt="f-510-2"><ix:nonNumeric contextRef="c-1" name="cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" id="f-511" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash, cash equivalents, and investments consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.274%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="f-512">170,852</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="f-513">183,242</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:MoneyMarketFundsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-514">15,242</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:MoneyMarketFundsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-515">19,413</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-516">186,094</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-517">202,655</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-518">55,742</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-519">124,851</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-520">2,487</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:fixed-zero" scale="3" id="f-521">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="f-522">990</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="f-523">990</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="f-524">737</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-525">3,551</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current investments</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-526">59,956</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-527">129,392</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-528">285,174</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-529">183,965</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-530">43,147</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-531">43,523</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-532">12,577</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-533">15,763</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:fixed-zero" scale="3" id="f-534">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="f-535">979</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current investments</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-536">340,898</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-537">244,230</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:CashCashEquivalentsShortTermAndLongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-538">586,948</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:CashCashEquivalentsShortTermAndLongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-539">576,277</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Corporate bonds consist of debt securities issued by both domestic and foreign companies; treasury notes consist of debt securities issued by the U.S. government; sovereign bonds consist of direct debt issued by foreign governments; and asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement. All of the Company's securities as of December 31, 2024 and 2023 were denominated in U.S. Dollars.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s cash balance included foreign bank balances totaling $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:DueFromForeignBanks" format="ixt:num-dot-decimal" scale="0" id="f-540">156,027,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DueFromForeignBanks" format="ixt:num-dot-decimal" scale="0" id="f-541">173,614,000</ix:nonFraction> as of December&#160;31, 2024 and 2023, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accrued interest receivable is included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:InterestReceivable" format="ixt:num-dot-decimal" scale="0" id="f-542">4,144,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InterestReceivable" format="ixt:num-dot-decimal" scale="0" id="f-543">3,169,000</ix:nonFraction> as of December 31, 2024 and 2023, respectively.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" id="f-544" continuedAt="f-544-1" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2024 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:36.583%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.002%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.709%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.002%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.005%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-67" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-545">56,472</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-67" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-546">3</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-67" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-547">733</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-67" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-548">55,742</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-549">2,501</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-550">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-68" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-551">14</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-552">2,487</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-69" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-553">1,013</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-69" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-554">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-69" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-555">23</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-69" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="f-556">990</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="f-557">739</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-558">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-559">2</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="f-560">737</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-561">288,332</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-562">408</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-563">3,566</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-564">285,174</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-565">43,570</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-566">2</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-567">425</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-568">43,147</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-569">13,131</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-570">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-571">554</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-572">12,577</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-573">405,758</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-574">413</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-575">5,317</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-576">400,854</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">44</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-510-2" continuedAt="f-510-3"><ix:continuation id="f-544-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:36.583%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.002%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.709%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.002%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.005%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-577">128,150</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-578">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-579">3,299</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-580">124,851</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-581">3,637</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-582">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-583">86</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-584">3,551</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-585">1,012</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-586">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-587">22</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="f-588">990</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-589">189,326</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-590">506</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-591">5,867</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-592">183,965</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-593">43,654</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-594">82</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-595">213</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-596">43,523</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-79" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-597">16,773</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-79" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-598">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-79" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-599">1,010</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-79" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-600">15,763</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-80" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-601">1,037</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-80" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-602">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-80" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-603">58</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-80" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="f-604">979</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-605">383,589</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-606">588</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-607">10,555</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-608">373,622</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr></table></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" id="f-609" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2024 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:34.289%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.885%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.328%"/><td style="width:0.1%"/></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-610">172,049</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-611">2,227</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-612">87,815</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-613">2,071</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-614">259,864</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-615">4,298</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-616">42,149</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="f-617">425</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-618">2,487</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-619">14</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-620">44,636</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-621">439</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-622">11,024</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="f-623">547</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-624">2,290</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-625">10</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-626">13,314</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-627">557</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:fixed-zero" scale="3" id="f-628">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:fixed-zero" scale="3" id="f-629">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="f-630">990</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-631">23</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" scale="3" id="f-632">990</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-633">23</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-634">225,222</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-635">3,199</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-636">93,582</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-637">2,118</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-638">318,804</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-639">5,317</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2023 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:34.289%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.885%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.328%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-640">30,770</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="f-641">359</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-642">226,643</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-643">8,807</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-644">257,413</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-645">9,166</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-646">20,725</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="f-647">153</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-648">2,441</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-649">60</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-650">23,166</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-651">213</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-652">17,062</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-653">1,049</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-654">2,252</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-655">47</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-656">19,314</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-657">1,096</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:fixed-zero" scale="3" id="f-658">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:fixed-zero" scale="3" id="f-659">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-660">1,968</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-661">80</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-662">1,968</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-663">80</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-664">68,557</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-665">1,561</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-666">233,304</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-667">8,994</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-668">301,861</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-669">10,555</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors debt securities that are in an unrealized loss position to determine whether a loss exists related to the credit quality of the issuer. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows. Based on this evaluation, <ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" format="ixt-sec:numwordsen" id="f-670"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" format="ixt-sec:numwordsen" id="f-671"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" format="ixt-sec:numwordsen" id="f-672">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> allowance for credit losses on debt securities was recorded as of December 31, 2024, 2023, or 2022. Management currently intends to hold these securities to full value recovery at maturity.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">45</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-510-3"><ix:nonNumeric contextRef="c-1" name="us-gaap:RealizedGainLossOnInvestmentsTableTextBlock" id="f-673" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The following table summarizes the Company's gross realized gains and losses on the sale of debt securities (in thousands):</span></div><div style="margin-top:9pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:52.701%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.519%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.823%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.519%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.524%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized gains</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedGain" scale="3" id="f-674">8</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedGain" scale="3" id="f-675">111</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedGain" scale="3" id="f-676">133</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized losses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss" scale="3" id="f-677">16</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss" format="ixt:num-dot-decimal" scale="3" id="f-678">2,065</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss" scale="3" id="f-679">315</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net realized gains (losses)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:RealizedInvestmentGainsLosses" scale="3" id="f-680">8</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:RealizedInvestmentGainsLosses" format="ixt:num-dot-decimal" scale="3" id="f-681">1,954</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:RealizedInvestmentGainsLosses" scale="3" id="f-682">182</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Realized gains and losses are included in "Investment income" on the Consolidated Statements of Operations. Prior to the sale of these securities, unrealized gains and losses for these debt securities, net of tax, were recorded in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock" id="f-683" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the effective maturity dates of the Company&#8217;s available-for-sale investments as of December&#160;31, 2024 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:25.508%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.157%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.864%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.256%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.818%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.818%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.818%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.581%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&lt;1&#160;Year</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1-2&#160;Years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2-3&#160;Years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">3-4&#160;Years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">4-5&#160;Years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">5-7&#160;Years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="f-684">55,742</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-685">62,324</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-686">92,207</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-687">68,029</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-688">62,614</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-689">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-690">340,916</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="f-691">2,487</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-692">9,177</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-693">21,365</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-694">12,605</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-695">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-696">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-697">45,634</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="f-698">737</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-699">5,911</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-700">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-701">1,296</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-702">1,982</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-703">3,388</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-704">13,314</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="f-705">990</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-706">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-707">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-708">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-709">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:fixed-zero" scale="0" id="f-710">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="f-711">990</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="f-712">59,956</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-713">77,412</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-714">113,572</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-715">81,930</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-716">64,596</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-717">3,388</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-718">400,854</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i67e131bb2c504a23903df9579998c003_121"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 5:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:InventoryDisclosureTextBlock" id="f-719" continuedAt="f-719-1" escape="true">Inventories</ix:nonNumeric></span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="f-720" escape="true"><ix:continuation id="f-719-1"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:70.935%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.517%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></div></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Raw materials</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:InventoryRawMaterialsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-721">86,917</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InventoryRawMaterialsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-722">93,201</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:InventoryWorkInProcessNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-723">5,544</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InventoryWorkInProcessNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-724">5,747</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Finished goods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:InventoryFinishedGoodsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-725">65,066</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InventoryFinishedGoodsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-726">63,337</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-727">157,527</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-728">162,285</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation></ix:nonNumeric><div id="i67e131bb2c504a23903df9579998c003_124"></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 6:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock" id="f-729" continuedAt="f-729-1" escape="true">Property, Plant, and Equipment</ix:nonNumeric></span></div><ix:continuation id="f-729-1"><ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="f-730" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:70.935%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.517%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Land</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-83" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-731">8,711</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-84" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-732">8,805</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Buildings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-38" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-733">38,878</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-85" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-734">34,117</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Building improvements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-86" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-735">46,496</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-736">44,992</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-88" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-737">21,642</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-738">19,611</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer hardware and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-90" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-739">57,791</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-91" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-740">55,154</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Manufacturing test equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-92" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-741">45,523</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-93" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-742">36,182</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Furniture and fixtures</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-94" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-743">6,468</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-95" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-744">7,361</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-745">225,509</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-746">206,222</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: accumulated depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-747">127,064</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-748">100,373</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-749">98,445</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-750">105,849</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company disposed of property, plant, and equipment with a cost basis of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentDisposals" format="ixt:num-dot-decimal" scale="0" id="f-751">9,580,000</ix:nonFraction> and accumulated depreciation of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" format="ixt:num-dot-decimal" scale="0" id="f-752">9,492,000</ix:nonFraction> in 2024, resulting in a loss of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-753">88,000</ix:nonFraction>. The Company disposed of property, plant, and equipment with a cost basis of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentDisposals" format="ixt:num-dot-decimal" scale="0" id="f-754">12,421,000</ix:nonFraction> and accumulated depreciation of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" format="ixt:num-dot-decimal" scale="0" id="f-755">12,184,000</ix:nonFraction> in 2023, net of proceeds of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-756">8,000</ix:nonFraction>, resulting in a loss of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-757">229,000</ix:nonFraction>.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">46</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_130"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 7:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeOperatingLeasesTextBlock" id="f-758" continuedAt="f-758-1" escape="true">Leases</ix:nonNumeric></span></div><ix:continuation id="f-758-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company's leases are primarily leased properties across different worldwide locations where the Company conducts its business. All of these leases are classified as operating leases. Certain leases may contain options to extend or terminate the lease at the Company's sole discretion. As of December 31, 2024, there were no options to terminate and twenty options to extend that were accounted for in the determination of the lease term for the Company's outstanding leases. Certain leases contain leasehold improvement incentives, retirement obligations, escalating clauses, rent holidays, and variable payments tied to a consumer price index. There were no restrictions or covenants for the outstanding leases as of December 31, 2024. The Company did not have any leases that had not yet commenced but that created significant rights and/or obligations as of December 31, 2024.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total operating lease expense was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="f-759">14,131,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="f-760">11,598,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="f-761">8,939,000</ix:nonFraction> in 2022. The total operating lease cash payments were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="0" id="f-762">13,683,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="0" id="f-763">10,148,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="0" id="f-764">8,548,000</ix:nonFraction> in 2022. The total lease expense for leases with a term of twelve months or less for which the Company elected not to recognize a lease asset or lease liability was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized" format="ixt:num-dot-decimal" scale="0" id="f-765">407,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized" format="ixt:num-dot-decimal" scale="0" id="f-766">427,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized" format="ixt:num-dot-decimal" scale="0" id="f-767">144,000</ix:nonFraction> in 2022.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="f-768" escape="true"><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future operating lease cash payments are as follows (in thousands):</span></div><div style="margin-top:14pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:82.648%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.728%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.224%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount </span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:num-dot-decimal" scale="3" id="f-769">12,534</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" format="ixt:num-dot-decimal" scale="3" id="f-770">10,543</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" format="ixt:num-dot-decimal" scale="3" id="f-771">9,496</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" format="ixt:num-dot-decimal" scale="3" id="f-772">8,820</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" format="ixt:num-dot-decimal" scale="3" id="f-773">8,242</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" format="ixt:num-dot-decimal" scale="3" id="f-774">43,657</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:num-dot-decimal" scale="3" id="f-775">93,292</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The discounted present value of the future lease cash payments resulted in a lease liability of $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:OperatingLeaseLiabilityDiscountedPresentValue" format="ixt:num-dot-decimal" scale="0" id="f-776">70,217,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-777">78,601,000</ix:nonFraction> as of December 31, 2024 and 2023, respectively. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company leases a building in Singapore that serves as a distribution center for customers in Asia. The lease contains <ix:nonFraction unitRef="lease_component" contextRef="c-96" decimals="INF" name="cgnx:LesseeOperatingLeaseComponents" format="ixt-sec:numwordsen" id="f-778">two</ix:nonFraction> components: an <ix:nonFraction unitRef="sqft" contextRef="c-97" decimals="-3" name="us-gaap:NetRentableArea" format="ixt:num-dot-decimal" scale="0" id="f-779">88,000</ix:nonFraction> square-foot premises that had a commencement date in June of 2023 and a second <ix:nonFraction unitRef="sqft" contextRef="c-98" decimals="-3" name="us-gaap:NetRentableArea" format="ixt:num-dot-decimal" scale="0" id="f-780">27,000</ix:nonFraction> square-foot premises that does not commence until the fourth quarter of 2025. Accordingly, the second component of the lease has not yet been recorded on the Consolidated Balance Sheets, nor has it created any significant rights and obligations as of December 31, 2024. This second lease component has an original term of eight years and the Company has the right and option to extend this term by an additional five years, commencing upon the expiration of the original term. Future payment obligations associated with this lease component total $<ix:nonFraction unitRef="usd" contextRef="c-99" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:num-dot-decimal" scale="0" id="f-781">13,145,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-99" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:num-dot-decimal" scale="0" id="f-782">160,000</ix:nonFraction> of which is payable in 2025 and which reflects an estimated extension period of <ix:nonNumeric contextRef="c-100" name="cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract" format="ixt-sec:durwordsen" id="f-783">five years</ix:nonNumeric>. Future payment obligations related to this lease component are not included in the future operating lease cash payments table above. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has entered into a lease for a <ix:nonFraction unitRef="sqft" contextRef="c-101" decimals="0" name="us-gaap:AreaOfRealEstateProperty" format="ixt:num-dot-decimal" scale="0" id="f-784">6,500</ix:nonFraction> square-foot building in Aachen, Germany for a term of <ix:nonNumeric contextRef="c-1" name="us-gaap:UnrecordedUnconditionalPurchaseObligationTerm" format="ixt-sec:durwordsen" id="f-785">ten years</ix:nonNumeric>. The commencement date for this lease is expected to be in the second quarter of 2025, and therefore it has not yet been recorded on the Consolidated Balance Sheets, nor has it created any significant rights and obligations as of December 31, 2024. The Company has the right and option to extend the term of this lease for an additional period of <ix:nonNumeric contextRef="c-102" name="cgnx:UnrecordedUncontditionalPurchaseObligationRenewalTerm" format="ixt-sec:durwordsen" id="f-786">five years</ix:nonNumeric>, commencing upon the expiration of the original term. Future payment obligations associated with this lease total $<ix:nonFraction unitRef="usd" contextRef="c-101" decimals="-3" name="us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount" format="ixt:num-dot-decimal" scale="0" id="f-787">8,763,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-101" decimals="-3" name="us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary" format="ixt:num-dot-decimal" scale="0" id="f-788">483,000</ix:nonFraction> of which is payable in 2025. Future payment obligations related to this lease are not included in the future operating lease cash payments table above.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted-average discount rate was <ix:nonFraction unitRef="number" contextRef="c-6" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="f-789">5.9</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="c-7" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="f-790">5.7</ix:nonFraction>% for the leases outstanding as of December 31, 2024 and December 31, 2023, respectively. The weighted-average remaining lease term was <ix:nonNumeric contextRef="c-6" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="f-791">9.9</ix:nonNumeric> years and <ix:nonNumeric contextRef="c-7" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="f-792">10.5</ix:nonNumeric> years for the leases outstanding as of December 31, 2024 and 2023, respectively.</span></div></ix:continuation><div style="margin-top:5pt;text-align:justify"><span><br/></span></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">47</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_136"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 8:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:GoodwillDisclosureTextBlock" id="f-793" continuedAt="f-793-1" escape="true">Goodwill</ix:nonNumeric></span></div><ix:continuation id="f-793-1"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfGoodwillTextBlock" id="f-794" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the carrying value of goodwill were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:83.380%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.688%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-795">242,630</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Acquisition of Moritex Corporation (refer to Note 21)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-103" decimals="-3" name="us-gaap:GoodwillOtherIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="f-796">145,047</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:GoodwillForeignCurrencyTranslationGainLoss" format="ixt:num-dot-decimal" scale="3" id="f-797">5,504</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-798">393,181</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Moritex Corporation measurement period adjustments (refer to Note 21)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-104" decimals="-3" name="us-gaap:GoodwillOtherIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="f-799">6,478</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:GoodwillForeignCurrencyTranslationGainLoss" format="ixt:num-dot-decimal" scale="3" id="f-800">14,722</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-801">384,937</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For its 2024 annual analysis of goodwill, management elected to perform a qualitative assessment. Based on this assessment, management believes it is more likely than not that the fair value of the reporting unit exceeds its carrying value. The Company did not record impairment charges related to goodwill in 2024, 2023, or 2022.</span></div></ix:continuation><div id="i67e131bb2c504a23903df9579998c003_139"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 9:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="f-802" continuedAt="f-802-1" escape="true">Intangible Assets</ix:nonNumeric></span></div><ix:continuation id="f-802-1"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="f-803" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:51.176%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.318%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.318%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.320%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-105" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-804">67,781</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-105" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-805">10,229</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-105" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-806">57,552</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-106" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-807">58,373</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-106" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-808">25,766</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-106" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-809">32,607</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-49" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="f-810">810</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-49" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="f-811">337</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-49" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="f-812">473</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-107" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="f-813">340</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-107" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="f-814">288</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-107" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="f-815">52</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-816">127,304</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-817">36,620</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-818">90,684</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-108" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-819">75,965</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-108" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-820">5,352</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-108" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-821">70,613</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-109" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-822">62,123</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-109" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-823">20,745</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-109" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-824">41,378</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-110" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="f-825">903</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-110" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="f-826">50</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-110" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="f-827">853</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-111" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="f-828">340</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-111" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="f-829">232</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-111" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="f-830">108</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-831">139,331</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-832">26,379</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-833">112,952</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company did not record impairment charges related to intangible assets in 2024, 2023, or 2022.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" id="f-834" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:81.623%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.445%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" format="ixt:num-dot-decimal" scale="3" id="f-835">10,147</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" format="ixt:num-dot-decimal" scale="3" id="f-836">9,775</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" format="ixt:num-dot-decimal" scale="3" id="f-837">8,850</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" format="ixt:num-dot-decimal" scale="3" id="f-838">8,120</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" format="ixt:num-dot-decimal" scale="3" id="f-839">8,120</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" format="ixt:num-dot-decimal" scale="3" id="f-840">45,672</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-841">90,684</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">48</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_142"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 10:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" id="f-842" continuedAt="f-842-1" escape="true">Accrued Expenses</ix:nonNumeric></span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="f-843" escape="true"><ix:continuation id="f-842-1"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accrued expenses consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:64.002%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.908%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.057%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AccruedBonusesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-844">18,735</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedBonusesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-845">10,645</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign retirement obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:RetirementAllowance" format="ixt:num-dot-decimal" scale="3" id="f-846">10,445</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:RetirementAllowance" format="ixt:num-dot-decimal" scale="3" id="f-847">12,835</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" format="ixt:num-dot-decimal" scale="3" id="f-848">5,140</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" format="ixt:num-dot-decimal" scale="3" id="f-849">4,244</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and payroll taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AccruedSalariesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-850">5,123</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedSalariesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-851">8,774</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vacation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AccruedVacationCurrent" format="ixt:num-dot-decimal" scale="3" id="f-852">3,945</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedVacationCurrent" format="ixt:num-dot-decimal" scale="3" id="f-853">5,827</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OtherAccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-854">28,372</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OtherAccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-855">30,049</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-856">71,760</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-857">72,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the warranty obligation were as follows (in thousands):</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock" id="f-858" escape="true"><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:81.209%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.591%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="f-859">5,427</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" format="ixt:num-dot-decimal" scale="3" id="f-860">1,876</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ProductWarrantyAccrualPayments" format="ixt:num-dot-decimal" scale="3" id="f-861">2,928</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="f-862">4,375</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" format="ixt:num-dot-decimal" scale="3" id="f-863">2,940</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProductWarrantyAccrualPayments" format="ixt:num-dot-decimal" scale="3" id="f-864">3,078</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" scale="3" id="f-865">7</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="f-866">4,244</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" format="ixt:num-dot-decimal" scale="3" id="f-867">4,794</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProductWarrantyAccrualPayments" format="ixt:num-dot-decimal" scale="3" id="f-868">3,883</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" scale="3" id="f-869">15</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="f-870">5,140</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation></ix:nonNumeric><div id="i67e131bb2c504a23903df9579998c003_145"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 11:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="f-871" continuedAt="f-871-1" escape="true">Commitments and Contingencies</ix:nonNumeric></span></div><ix:continuation id="f-871-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, the Company had outstanding purchase orders totaling $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted" format="ixt:num-dot-decimal" scale="0" id="f-872">44,269,000</ix:nonFraction> to procure inventory from various vendors. Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties. These purchase commitments relate primarily to expected sales in 2025.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of the Company's outstanding inventory purchase orders as of December&#160;31, 2024, as well as additional preauthorized commitments to procure strategic components based on the Company's expected customer demand, are placed with the Company's primary contract manufacturer for the Company's assembled products. The Company purchased $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OtherInventoryPurchasedGoods" format="ixt:num-dot-decimal" scale="0" id="f-873">17,461,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OtherInventoryPurchasedGoods" format="ixt:num-dot-decimal" scale="0" id="f-874">10,616,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:OtherInventoryPurchasedGoods" format="ixt:num-dot-decimal" scale="0" id="f-875">5,269,000</ix:nonFraction> in 2024, 2023, and 2022, respectively, of inventories as a result of the Company's obligation to purchase any non-cancelable and non-returnable components that have been purchased by the contract manufacturer with the Company's preauthorization, when these components have not been consumed within the period defined in the terms of the Company's agreement with this contract manufacturer. While the Company typically expects such purchased components to be used in future production of Cognex finished goods, these components are considered in the Company's reserve estimate for excess and obsolete inventory. Furthermore, the Company accrues for losses on commitments for the future purchase of non-cancelable and non-returnable components from this contract manufacturer at the time that circumstances, such as changes in demand, indicate that the value of the components may not be recoverable, the loss is probable, and management has the ability to reasonably estimate the amount of the loss.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Various claims and legal proceedings generally incidental to the normal course of business are pending or threatened on behalf of or against the Company. While we cannot predict the outcome of these matters, we believe that any liability arising from them will not have a material adverse effect on our financial position, liquidity, or results of operations.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">49</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_151"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 12:&#160;<ix:nonNumeric contextRef="c-1" name="cgnx:IndemnificationProvisionsTextBlock" id="f-876" continuedAt="f-876-1" escape="true">Indemnification Provisions</ix:nonNumeric></span></div><ix:continuation id="f-876-1" continuedAt="f-876-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Except as limited by Massachusetts law, the by-laws of the Company require it to indemnify certain current or former directors, officers, and employees of the Company against expenses incurred by them in connection with each proceeding in which he or she is involved as a result of serving or having served in certain capacities. Indemnification is not available with respect to a proceeding as to which it has been adjudicated that the person did not act in good faith in the reasonable belief that the action was in the best interests of the Company. The maximum potential amount of future payments the Company could be required to make under these provisions is unlimited. The Company has never incurred significant costs related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the ordinary course of business, the Company may accept standard limited indemnification provisions in connection with the sale of its products, whereby it indemnifies its customers for certain direct damages incurred in connection with third-party patent or other intellectual property infringement claims with respect to the use of the Company&#8217;s products. The maximum potential amount of future payments the Company could be required to make under these provisions is, in many, but not all instances, subject to fixed monetary limits. The Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.</span></div></ix:continuation><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-876-2">In the ordinary course of business, the Company also accepts limited indemnification provisions from time to time, whereby it indemnifies customers for certain direct damages incurred in connection with bodily injury and property damage arising from the use of the Company&#8217;s products. Future payments the Company could be required to make under these provisions is generally recoverable under the Company&#8217;s insurance policies. As a result of this coverage, and the fact that the Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions, the Company believes the estimated fair value of these provisions is not material.</ix:continuation> </span></div><div id="i67e131bb2c504a23903df9579998c003_154"></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 13:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" id="f-877" continuedAt="f-877-1" escape="true">Derivative Instruments</ix:nonNumeric></span></div><ix:continuation id="f-877-1" continuedAt="f-877-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s foreign currency risk management strategy is designed to mitigate the potential financial impact of changes in the value of transactions and balances denominated in foreign currencies resulting from changes in foreign currency exchange rates. The Company enters into economic hedges utilizing foreign currency forward contracts with maturities that do not exceed approximately <ix:nonNumeric contextRef="c-112" name="us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1" format="ixt-sec:durwordsen" id="f-878">three months</ix:nonNumeric> to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables. The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged. These economic hedges are not designated as hedging instruments for hedge accounting treatment. </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" id="f-879" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company had the following outstanding forward contracts (in thousands): </span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:47.291%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.765%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.180%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.180%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.354%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Currency</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">USD Equivalent</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">USD Equivalent</span></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="18" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Singapore Dollar</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="sgd" contextRef="c-113" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-880">40,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-113" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-881">29,457</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="sgd" contextRef="c-114" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-882">39,700</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-114" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-883">30,136</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Euro</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="eur" contextRef="c-115" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-884">25,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-115" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-885">26,029</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="eur" contextRef="c-116" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-886">40,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-116" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-887">44,302</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chinese Renminbi</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="cny" contextRef="c-117" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-888">95,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-117" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-889">12,990</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="cny" contextRef="c-118" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-890">50,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-118" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-891">7,025</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Mexican Peso</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="mxn" contextRef="c-119" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-892">220,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-119" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-893">10,701</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="mxn" contextRef="c-120" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-894">145,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-120" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-895">8,505</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Hungarian Forint</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="huf" contextRef="c-121" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-896">2,360,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-121" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-897">5,951</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="huf" contextRef="c-122" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-898">2,240,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-122" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-899">6,466</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">British Pound</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="gbp" contextRef="c-123" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-900">3,200</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-123" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-901">4,008</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="gbp" contextRef="c-124" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-902">3,345</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-124" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-903">4,258</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Japanese Yen</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="jpy" contextRef="c-125" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-904">2,000,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-125" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-905">3,750</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="jpy" contextRef="c-126" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-906">600,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-126" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-907">4,255</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Swiss Franc</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="chf" contextRef="c-127" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-908">2,200</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-127" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-909">2,432</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="chf" contextRef="c-128" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:fixed-zero" scale="3" id="f-910">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-128" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:fixed-zero" scale="3" id="f-911">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Canadian Dollar</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="cad" contextRef="c-129" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-912">2,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-129" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-913">1,390</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="cad" contextRef="c-130" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-914">1,470</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-130" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-915">1,112</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">50</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-877-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" id="f-916" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:15.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.204%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.788%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.350%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.888%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.788%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.358%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Asset Derivatives</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Liability Derivatives</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet  Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet   Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td></tr><tr style="height:24pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="36" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-131" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="f-917">324</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-132" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="f-918">151</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-131" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="f-919">211</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-132" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="f-920">106</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:OffsettingAssetsTableTextBlock" id="f-921" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the gross activity for all derivative assets and liabilities which were presented on a net basis on the Consolidated Balance Sheets due to the right of offset with each counterparty (in thousands):</span></div><div style="margin-top:14pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:18.108%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.826%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.562%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.826%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.709%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.562%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.394%"/><td style="width:0.1%"/></tr><tr><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-922"><span style="-sec-ix-hidden:f-923">Asset Derivatives</span></span></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-924"><span style="-sec-ix-hidden:f-925">Liability Derivatives</span></span></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeAsset" scale="3" id="f-926">324</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeAsset" scale="3" id="f-927">151</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeLiability" scale="3" id="f-928">211</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeLiability" scale="3" id="f-929">106</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset" format="ixt:fixed-zero" scale="3" id="f-930">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset" format="ixt:fixed-zero" scale="3" id="f-931">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset" format="ixt:fixed-zero" scale="3" id="f-932">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset" format="ixt:fixed-zero" scale="3" id="f-933">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of assets presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="f-934">324</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="f-935">151</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of liabilities presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="f-936">211</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="f-937">106</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" id="f-938" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:21.920%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:22.800%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.762%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.908%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.911%"/><td style="width:0.1%"/></tr><tr style="height:12pt"><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Location in Financial Statements</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"/><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="24" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gains (losses) recognized in current operations</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-112" decimals="-3" name="us-gaap:DerivativeGainLossOnDerivativeNet" format="ixt:num-dot-decimal" scale="3" id="f-939">1,945</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-133" decimals="-3" sign="-" name="us-gaap:DerivativeGainLossOnDerivativeNet" format="ixt:num-dot-decimal" scale="3" id="f-940">10,023</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-134" decimals="-3" name="us-gaap:DerivativeGainLossOnDerivativeNet" format="ixt:num-dot-decimal" scale="3" id="f-941">9,823</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="text-align:justify"><span><br/></span></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">51</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_157"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 14: <ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="f-942" continuedAt="f-942-1" escape="true">Revenue Recognition</ix:nonNumeric></span></div><ix:continuation id="f-942-1" continuedAt="f-942-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="f-943" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by geographic area based on the customer's country of domicile (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:61.216%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.630%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.826%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.630%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.632%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Americas</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-135" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-944">350,155</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-136" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-945">330,415</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-137" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-946">390,573</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-138" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-947">217,880</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-139" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-948">220,665</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-140" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-949">234,643</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Greater China</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-141" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-950">164,147</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-142" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-951">164,115</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-143" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-952">227,447</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-144" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-953">182,333</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-145" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-954">122,352</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-146" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-955">153,427</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-956">914,515</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-957">837,547</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-958">1,006,090</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div style="margin-top:1pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by revenue type (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:61.125%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.466%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.824%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.824%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.616%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Standard products and services</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-147" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-959">795,319</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-148" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-960">734,140</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-149" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-961">848,153</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Application-specific customer solutions</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-150" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-962">119,196</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-151" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-963">103,407</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-152" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-964">157,937</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-965">914,515</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-966">837,547</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-967">1,006,090</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Costs to Fulfill a Contract</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Costs to fulfill a contract are included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:CapitalizedContractCostGross" format="ixt:num-dot-decimal" scale="0" id="f-968">10,705,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:CapitalizedContractCostGross" format="ixt:num-dot-decimal" scale="0" id="f-969">13,265,000</ix:nonFraction> as of December 31, 2024 and 2023, respectively. The amount of amortization during 2024 related to costs deferred as of December 31, 2023 amounted to $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherAmortizationOfDeferredCharges" format="ixt:num-dot-decimal" scale="0" id="f-970">12,512,000</ix:nonFraction></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounts Receivable, Contract Assets, and Contract Liabilities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accounts receivable represent amounts billed and currently due from customers which are reported at their net estimated realizable value. The Company maintains an allowance against its accounts receivable for credit losses. Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing primarily for certain application-specific customer solutions contracts. Contract liabilities consist of deferred revenue and customer deposits which arise when amounts are billed to or collected from customers in advance of revenue recognition.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" id="f-971" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes changes in the allowance for credit losses (in thousands):</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"><tr><td style="width:1.0%"/><td style="width:79.341%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.459%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="f-972">730</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="f-973">500</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="f-974">645</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" scale="3" id="f-975">2</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="f-976">583</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="f-977">459</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="f-978">222</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" scale="3" id="f-979">7</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="f-980">827</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">52</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-942-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="f-981" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</span></div><div style="margin-top:8pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:79.398%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.402%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-982">40,787</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="f-983">21,538</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-984">20,987</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Returned customer deposit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredRevenueRefundPayments1" format="ixt:num-dot-decimal" scale="3" id="f-985">9,205</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="cgnx:ContractLiabilityForeignExchangeRateChanges" scale="3" id="f-986">608</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-987">31,525</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="f-988">21,998</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-989">28,108</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="cgnx:ContractLiabilityForeignExchangeRateChanges" scale="3" id="f-990">380</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-991">25,035</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a practical expedient, the Company has elected not to disclose the aggregate amount of the transaction price allocated to unsatisfied performance obligations for contracts that have an original expected duration of less than one year. The remaining unsatisfied performance obligations for contracts that have an original expected duration of more than one year, primarily related to extended hardware warranties, are not material.</span></div></ix:continuation><div id="i67e131bb2c504a23903df9579998c003_160"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 15:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:StockholdersEquityNoteDisclosureTextBlock" id="f-992" continuedAt="f-992-1" escape="true">Shareholders&#8217; Equity</ix:nonNumeric></span></div><ix:continuation id="f-992-1"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Preferred Stock</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has <ix:nonFraction unitRef="shares" contextRef="c-6" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-993">400,000</ix:nonFraction> shares of authorized but unissued $<ix:nonFraction unitRef="usdPerShare" contextRef="c-6" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="f-994">.01</ix:nonFraction> par value preferred stock.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Common Stock</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has <ix:nonFraction unitRef="shares" contextRef="c-153" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-995">300,000,000</ix:nonFraction> shares of authorized $<ix:nonFraction unitRef="usdPerShare" contextRef="c-6" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-996">.002</ix:nonFraction> par value common stock.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Each outstanding share of common stock entitles the record holder to <ix:nonFraction unitRef="vote" contextRef="c-6" decimals="INF" name="cgnx:VoteEntitledForEachCommonShareOutstanding" format="ixt-sec:numwordsen" scale="0" id="f-997">one</ix:nonFraction> vote on all matters submitted to a vote of the Company&#8217;s shareholders. Common shareholders are also entitled to dividends when and if declared by the Company&#8217;s Board of Directors.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Repurchases</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, the Company's Board of Directors authorized the repurchase of $<ix:nonFraction unitRef="usd" contextRef="c-154" decimals="-3" name="srt:StockRepurchaseProgramAuthorizedAmount1" format="ixt:num-dot-decimal" scale="0" id="f-998">200,000,000</ix:nonFraction> of the Company's common stock. Under this March 2020 program, in addition to repurchases made in prior years, the Company repurchased <ix:nonFraction unitRef="shares" contextRef="c-155" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="f-999">1,677,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="c-155" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="f-1000">117,000,000</ix:nonFraction> in 2022, which completed purchases under the March 2020 program. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, the Company's Board of Directors authorized the repurchase of an additional $<ix:nonFraction unitRef="usd" contextRef="c-156" decimals="INF" name="srt:StockRepurchaseProgramAuthorizedAmount1" format="ixt:num-dot-decimal" scale="0" id="f-1001">500,000,000</ix:nonFraction> of the Company's common stock. Under this March 2022 program, the Company repurchased <ix:nonFraction unitRef="shares" contextRef="c-157" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="f-1002">1,682,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="c-157" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="f-1003">87,314,000</ix:nonFraction> in 2022, <ix:nonFraction unitRef="shares" contextRef="c-158" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="f-1004">1,723,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="c-158" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="f-1005">79,794,000</ix:nonFraction> in 2023, and <ix:nonFraction unitRef="shares" contextRef="c-159" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="f-1006">1,711,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="c-159" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="f-1007">67,085,000</ix:nonFraction> in 2024, leaving a remaining balance of $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="INF" name="us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" format="ixt:num-dot-decimal" scale="0" id="f-1008">265,807,000</ix:nonFraction> as of December 31, 2024. The 2023 repurchase included $<ix:nonFraction unitRef="usd" contextRef="c-159" decimals="-3" name="cgnx:StockRepurchaseProgramBuybackExciseTax" format="ixt:num-dot-decimal" scale="0" id="f-1009">446,000</ix:nonFraction> of buyback Excise Tax in accordance with the Inflation Reduction Act of 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements. The Company is authorized to make repurchases of its common stock through open market purchases, pursuant to Rule 10b5-1 trading plans, or in privately negotiated transactions.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Dividends</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors declared and paid cash dividends of $<ix:nonFraction unitRef="usdPerShare" contextRef="c-160" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-1010">0.065</ix:nonFraction> per share in the first, second, and third quarters of 2022, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-161" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-1011">0.070</ix:nonFraction> per share in the fourth quarter of 2022 and in the first, second, and third quarters of 2023, and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-162" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-1012">0.075</ix:nonFraction> per share in the fourth quarter of 2023 and in the first, second, and third quarters of 2024. The dividend was increased to $<ix:nonFraction unitRef="usdPerShare" contextRef="c-163" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-1013">0.080</ix:nonFraction> per share in the fourth quarter of 2024. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on such factors as the Board deems relevant, including, among other things, the Company's ability to generate positive cash flow from operations.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">53</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_166"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 16:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="f-1014" continuedAt="f-1014-1" escape="true">Stock-Based Compensation</ix:nonNumeric></span></div><ix:continuation id="f-1014-1" continuedAt="f-1014-2"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Plans</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options, restricted stock units ("RSUs"), and performance restricted stock units ("PRSUs"). In May 2023, the shareholders of the Company approved the Cognex Corporation 2023 Stock Option and Incentive Plan (the &#8220;2023 Plan&#8221;). The 2023 Plan permits awards of stock options (both incentive and non-qualified options), stock appreciation rights, RSUs, and PRSUs. Up to <ix:nonFraction unitRef="shares" contextRef="c-164" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-1015">8,100,000</ix:nonFraction> shares of common stock (subject to adjustment in the event of stock splits and other similar events) may be issued pursuant to awards granted under the 2023 Plan. In connection with the approval of the 2023 Plan, no further awards will be made under the Cognex Corporation 2001 General Stock Option Plan, as amended and restated (the &#8220;2001 Plan&#8221;), and the Cognex Corporation 2007 Stock Option and Incentive Plan, as amended and restated (the &#8220;2007 Plan&#8221;). With the approval of the 2023 Plan, the <ix:nonFraction unitRef="shares" contextRef="c-165" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="0" id="f-1016">10,610,800</ix:nonFraction> shares of common stock subject to awards granted under the 2001 Plan and the 2007 Plan that were outstanding as of May 3, 2023 may become eligible for issuance under the 2023 Plan if such awards are forfeited, cancelled, or otherwise terminated (other than by exercise) (the &#8220;Carryover Shares&#8221;). As of December 31, 2024, forfeitures, cancellations, and other terminations from the 2001 Plan and the 2007 Plan have resulted in <ix:nonFraction unitRef="shares" contextRef="c-166" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-1017">1,142,995</ix:nonFraction> Carryover Shares, raising the authorized total shares that may be issued under the 2023 Plan to <ix:nonFraction unitRef="shares" contextRef="c-167" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-1018">9,242,995</ix:nonFraction>.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, the Company had <ix:nonFraction unitRef="shares" contextRef="c-168" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="0" id="f-1019">6,458,000</ix:nonFraction> shares available for issuance under its stock plans. Stock options are granted with an exercise price equal to the market value of the Company&#8217;s common stock at the grant date and generally vest over <span style="-sec-ix-hidden:f-1020">four</span> or <ix:nonNumeric contextRef="c-170" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-1021">five years</ix:nonNumeric> based on continuous employment and expire <ix:nonNumeric contextRef="c-171" name="cgnx:ExpirationPeriodOfStockOptionPlan" format="ixt-sec:durwordsen" id="f-1022">ten years</ix:nonNumeric> from the grant date. RSUs generally vest upon <span style="-sec-ix-hidden:f-1023">three</span> or <ix:nonNumeric contextRef="c-173" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-1024">four years</ix:nonNumeric> of continuous employment or incrementally over such <span style="-sec-ix-hidden:f-1025">three</span> or <span style="-sec-ix-hidden:f-1026">four</span> year periods. PRSUs generally vest upon <span style="-sec-ix-hidden:f-1027">three</span> years of continuous employment and achievement of performance criteria established by the Compensation Committee of our Board of Directors on or prior to the grant date. Participants are not entitled to dividends on stock options, RSUs, or PRSUs.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Options</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="f-1028" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s stock option activity:</span></div><div style="margin-bottom:5pt;margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:43.409%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.223%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.223%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.223%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.226%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Remaining<br/>Contractual<br/>Term<br/>(in&#160;years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Aggregate<br/>Intrinsic Value<br/>(in&#160;thousands)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-7" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-1029">9,008</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-7" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-1030">50.87</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" format="ixt:num-dot-decimal" scale="3" id="f-1031">1,641</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="f-1032">39.72</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-1033">242</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="f-1034">24.83</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" scale="3" id="f-1035">864</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" scale="0" id="f-1036">53.18</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-6" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-1037">9,543</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-6" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-1038">49.40</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear" id="f-1039">5.62</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="f-1040">6,898</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercisable as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-6" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:num-dot-decimal" scale="3" id="f-1041">5,659</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-6" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="f-1042">49.75</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-1043">3.90</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="f-1044">6,814</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options vested or expected to vest as of&#160;</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;December 31, 2024 (1)</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-6" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" format="ixt:num-dot-decimal" scale="3" id="f-1045">9,019</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-6" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="f-1046">49.62</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-1047">5.45</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="f-1048">6,875</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:5pt;padding-left:36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) In addition to the vested options, the Company expects a portion of the unvested options to vest at some point in the future. Options expected to vest are calculated by applying an estimated forfeiture rate to the unvested options.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total cash received as a result of stock option exercises was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:num-dot-decimal" scale="0" id="f-1049">6,011,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:num-dot-decimal" scale="0" id="f-1050">11,104,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:num-dot-decimal" scale="0" id="f-1051">12,267,000</ix:nonFraction> in 2022. In connection with these exercises, the tax benefit (expense) realized by the Company was $(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" format="ixt:num-dot-decimal" scale="0" id="f-1052">4,021,000</ix:nonFraction>) in 2024, $(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" format="ixt:num-dot-decimal" scale="0" id="f-1053">4,691,000</ix:nonFraction>) in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" format="ixt:num-dot-decimal" scale="0" id="f-1054">2,548,000</ix:nonFraction> in 2022.</span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">54</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1014-2" continuedAt="f-1014-3"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="f-1055" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:54.847%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.996%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.143%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.146%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Risk-free rate</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-171" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-1056">4.3</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-176" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-1057">4.0</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-177" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-1058">2.2</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-171" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-1059">0.76</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-176" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-1060">0.61</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-177" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-1061">0.44</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-171" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-1062">39</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-176" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-1063">39</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-177" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-1064">37</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected term (in years)</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-171" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-1065">4.7</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-176" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-1066">5.0</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-177" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-1067">5.5</ix:nonNumeric></span></td></tr></table></div></ix:nonNumeric><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Risk-free rate</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The risk-free rate was based on a treasury instrument whose term was consistent with the contractual term of the option.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected dividend yield</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The current dividend yield was calculated by annualizing the cash dividend declared by the Company&#8217;s Board of Directors and dividing that result by the closing stock price on the grant date.&#160;</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected volatility</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The expected volatility was based on a combination of historical volatility of&#160;the Company&#8217;s&#160;common stock over the contractual term of the option and implied volatility for traded options of the Company&#8217;s stock.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected term</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The expected term was derived from the binomial lattice model from the impact of events that trigger exercises over time.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted-average grant-date fair value of stock options granted was $<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1068">14.89</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1069">17.76</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1070">21.39</ix:nonFraction> in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total intrinsic value of stock options exercised was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="f-1071">4,626,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="f-1072">6,227,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="f-1073">8,424,000</ix:nonFraction> in 2022. The total fair value of stock options vested was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" format="ixt:num-dot-decimal" scale="0" id="f-1074">29,309,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" format="ixt:num-dot-decimal" scale="0" id="f-1075">34,751,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" format="ixt:num-dot-decimal" scale="0" id="f-1076">41,497,000</ix:nonFraction> in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Restricted Stock Units (RSUs)</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock" id="f-1077" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's RSUs activity:</span></div><div style="margin-top:10pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:62.496%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.666%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:19.808%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average<br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-178" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-1078">1,429</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-178" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1079">54.22</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-179" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-1080">844</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-179" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1081">38.90</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-179" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-1082">429</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-179" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1083">64.07</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-179" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-1084">154</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-179" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-1085">46.61</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-180" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-1086">1,690</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-180" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1087">44.75</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of RSUs was determined based on the observable market price of the Company's stock on the grant date less the present value of expected future dividends. The weighted-average grant-date fair value of RSUs granted was $<ix:nonFraction unitRef="usdPerShare" contextRef="c-179" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1088">38.90</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-181" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1089">46.14</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-182" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1090">58.06</ix:nonFraction> in 2022. There were <ix:nonFraction unitRef="shares" contextRef="c-183" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:num-dot-decimal" scale="0" id="f-1091">429,000</ix:nonFraction>, <ix:nonFraction unitRef="shares" contextRef="c-181" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:num-dot-decimal" scale="0" id="f-1092">521,000</ix:nonFraction>, and <ix:nonFraction unitRef="shares" contextRef="c-182" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:num-dot-decimal" scale="0" id="f-1093">192,000</ix:nonFraction> RSUs that vested in 2024, 2023, and 2022, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tax obligations for vested RSUs are settled by withholding a portion of the shares prior to distribution to the shareholder. The total cash used by the Company to fund the tax payments was $<ix:nonFraction unitRef="usd" contextRef="c-183" decimals="-3" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="0" id="f-1094">5,017,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-181" decimals="-3" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="0" id="f-1095">7,836,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-182" decimals="-3" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="0" id="f-1096">2,406,000</ix:nonFraction> in 2022. In connection with these vested RSUs, the tax benefit (expense) realized by the Company was $(<ix:nonFraction unitRef="usd" contextRef="c-183" decimals="-3" sign="-" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1097">7,401,000</ix:nonFraction>) in 2024, $(<ix:nonFraction unitRef="usd" contextRef="c-181" decimals="-3" sign="-" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1098">3,229,000</ix:nonFraction>) in 2023, and $(<ix:nonFraction unitRef="usd" contextRef="c-182" decimals="-3" sign="-" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1099">1,049,000</ix:nonFraction>) in 2022.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">55</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1014-3"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" id="f-1100" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Performance Restricted Stock Units (PRSUs)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's PRSUs activity:</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.420%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.838%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average <br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-184" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-1101">79</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-184" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1102">52.23</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-185" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-1103">55</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-185" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1104">39.05</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-185" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:fixed-zero" scale="3" id="f-1105">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-185" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" format="ixt:fixed-zero" scale="0" id="f-1106">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-185" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" format="ixt:fixed-zero" scale="3" id="f-1107">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-185" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" format="ixt:fixed-zero" scale="0" id="f-1108">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-186" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-1109">134</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-186" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1110">46.82</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of PRSUs was calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. The weighted average grant-date fair value of PRSUs granted was $<ix:nonFraction unitRef="usdPerShare" contextRef="c-185" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1111">39.05</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-187" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1112">44.86</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-188" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1113">62.49</ix:nonFraction> in 2022. <ix:nonFraction unitRef="shares" contextRef="c-185" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt-sec:numwordsen" id="f-1114"><ix:nonFraction unitRef="shares" contextRef="c-188" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt-sec:numwordsen" id="f-1115"><ix:nonFraction unitRef="shares" contextRef="c-187" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt-sec:numwordsen" id="f-1116">No</ix:nonFraction></ix:nonFraction></ix:nonFraction> PRSUs vested in 2024, 2023, and 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock-Based Compensation Expense</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company stratifies its employee population into <ix:nonFraction unitRef="group" contextRef="c-6" decimals="INF" name="cgnx:NumberOfGroupsWithinEmployeePopulation" format="ixt-sec:numwordsen" scale="0" id="f-1117">three</ix:nonFraction> groups: one consisting of the CEO, another consisting of senior management, and another consisting of all other employees. The Company currently applies an estimated annual forfeiture rate of <ix:nonFraction unitRef="number" contextRef="c-6" decimals="2" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForCEO" scale="-2" id="f-1118">0</ix:nonFraction>% to all stock-based awards for the CEO, <ix:nonFraction unitRef="number" contextRef="c-6" decimals="2" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" scale="-2" id="f-1119">8</ix:nonFraction>% to all stock-based awards for senior management, and <ix:nonFraction unitRef="number" contextRef="c-6" decimals="2" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" scale="-2" id="f-1120">13</ix:nonFraction>% for all other employees. Each year during the first quarter, the Company revises its forfeiture rate based on updated estimates of employee turnover. This resulted in a decrease to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" format="ixt:num-dot-decimal" scale="0" id="f-1121">1,832,000</ix:nonFraction> in 2024, a decrease to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" format="ixt:num-dot-decimal" scale="0" id="f-1122">234,000</ix:nonFraction> in 2023, and an increase to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" format="ixt:num-dot-decimal" scale="0" id="f-1123">1,536,000</ix:nonFraction> in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, total unrecognized compensation expense, net of estimated forfeitures, related to non-vested stock-based awards, including stock options, RSUs, and PRSUs, was $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" format="ixt:num-dot-decimal" scale="0" id="f-1124">51,147,000</ix:nonFraction>, which is expected to be recognized over a weighted-average period of <ix:nonNumeric contextRef="c-1" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-1125">1.5</ix:nonNumeric> years.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total stock-based compensation expense and the related income tax benefit recognized was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1126">52,443,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1127">8,387,000</ix:nonFraction>, respectively, in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1128">54,768,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1129">8,442,000</ix:nonFraction>, respectively, in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1130">54,505,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1131">9,540,000</ix:nonFraction>, respectively, in 2022. <ix:nonFraction unitRef="usd" contextRef="c-7" decimals="INF" name="cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" format="ixt-sec:numwordsen" id="f-1132"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="INF" name="cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" format="ixt-sec:numwordsen" id="f-1133"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="INF" name="cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" format="ixt-sec:numwordsen" id="f-1134">No</ix:nonFraction></ix:nonFraction></ix:nonFraction> compensation expense was capitalized in 2024, 2023, or 2022.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="f-1135" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the stock-based compensation expense by caption for each period presented on the Consolidated Statements of Operations (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:51.176%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.318%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.318%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.320%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-189" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1136">1,966</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-190" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1137">1,979</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-191" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1138">2,016</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-192" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1139">14,628</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-193" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1140">16,480</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-194" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1141">17,693</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-195" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1142">35,849</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-196" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1143">36,309</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-197" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1144">34,796</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1145">52,443</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1146">54,768</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1147">54,505</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i67e131bb2c504a23903df9579998c003_172"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 17:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock" id="f-1148" continuedAt="f-1148-1" escape="true">Employee Savings Plan</ix:nonNumeric></span></div><ix:continuation id="f-1148-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the Company's Employee Savings Plan, a defined contribution plan, all U.S. employees who have attained age <ix:nonNumeric contextRef="c-1" name="cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan" format="ixt-sec:duryear" id="f-1149">21</ix:nonNumeric> may contribute up to <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" scale="-2" id="f-1150">100</ix:nonFraction>% of their pay on a pre-tax basis under the Company's Employee Savings Plan, subject to the annual dollar limitations established by the Internal Revenue Service ("IRS"). The Company matches <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" scale="-2" id="f-1151">50</ix:nonFraction>% of the first <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent" scale="-2" id="f-1152">6</ix:nonFraction>% of pay an employee contributes. Company contributions vest <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfOneYear" scale="-2" id="f-1153">25</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfTwoYear" scale="-2" id="f-1154">50</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfThreeYears" scale="-2" id="f-1155">75</ix:nonFraction>%, and <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfFourYears" scale="-2" id="f-1156">100</ix:nonFraction>% after one, two, three, and four years of continuous employment with the Company, respectively. Company contributions totaled $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="f-1157">3,535,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="f-1158">3,392,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="f-1159">3,284,000</ix:nonFraction> in 2022. Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.</span></div></ix:continuation><div id="i67e131bb2c504a23903df9579998c003_178"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 18:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:IncomeTaxDisclosureTextBlock" id="f-1161" continuedAt="f-1161-1" escape="true">Income Taxes</ix:nonNumeric></span></div><ix:continuation id="f-1161-1" continuedAt="f-1161-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Domestic income before taxes was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="0" id="f-1162">35,253,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="0" id="f-1163">16,039,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="0" id="f-1164">48,546,000</ix:nonFraction> in 2022. Foreign income before taxes was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:num-dot-decimal" scale="0" id="f-1165">96,236,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:num-dot-decimal" scale="0" id="f-1166">119,309,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:num-dot-decimal" scale="0" id="f-1167">202,149,000</ix:nonFraction> in 2022. </span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">56</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1161-2" continuedAt="f-1161-3"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="f-1168" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Income tax expense consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:48.680%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.151%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.151%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.154%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="15" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentFederalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1169">28,009</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CurrentFederalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1170">29,084</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CurrentFederalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1171">48,355</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1172">4,524</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1173">3,544</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1174">5,689</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1175">12,795</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1176">9,207</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1177">10,243</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1178">45,328</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1179">41,835</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1180">64,287</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1181">22,273</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1182">24,731</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1183">40,772</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1184">1,324</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1185">5,877</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1186">8,354</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1187">3,587</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1188">10,887</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1189">20,009</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1190">20,010</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1191">19,721</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1192">29,117</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1193">25,318</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1194">22,114</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1195">35,170</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="f-1196" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A reconciliation of the U.S. federal statutory corporate tax rate to the Company&#8217;s income tax expense, or effective tax rate, was as follows:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:62.296%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.614%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense at U.S. federal statutory corporate tax rate</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1197">21</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1198">21</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1199">21</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State income taxes, net of federal benefit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="f-1200">2</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="f-1201">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="f-1202">2</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign tax rate differential</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1203">4</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1204">6</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1205">7</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="f-1206">3</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="f-1207">3</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="f-1208">1</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Taxation on multinational operations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" sign="-" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" scale="-2" id="f-1209">5</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" sign="-" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" scale="-2" id="f-1210">3</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" format="ixt:fixed-zero" scale="-2" id="f-1211">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax reserves</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent" scale="-2" id="f-1212">1</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent" scale="-2" id="f-1213">3</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent" scale="-2" id="f-1214">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Limitation on deduction for executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" scale="-2" id="f-1215">1</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" scale="-2" id="f-1216">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" scale="-2" id="f-1217">1</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax expense related to employee stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="f-1218">2</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="f-1219">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" format="ixt:fixed-zero" scale="-2" id="f-1220">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit for audit settlements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" scale="-2" id="f-1221">1</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" format="ixt:fixed-zero" scale="-2" id="f-1222">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" sign="-" name="cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" scale="-2" id="f-1223">1</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense for foreign earnings not indefinitely reinvested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="2" name="us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings" scale="-2" id="f-1224">1</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="2" name="us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings" format="ixt:fixed-zero" scale="-2" id="f-1225">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="2" name="us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings" format="ixt:fixed-zero" scale="-2" id="f-1226">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense related to tax return filings</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements" format="ixt:fixed-zero" scale="-2" id="f-1227">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements" scale="-2" id="f-1228">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements" scale="-2" id="f-1229">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense related to rate revaluation on state tax assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" format="ixt:fixed-zero" scale="-2" id="f-1230">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" scale="-2" id="f-1231">2</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" scale="-2" id="f-1232">2</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit related to GILTI adjustments</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent" format="ixt:fixed-zero" scale="-2" id="f-1233">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent" scale="-2" id="f-1234">2</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent" scale="-2" id="f-1235">3</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax benefit for release of valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:fixed-zero" scale="-2" id="f-1236">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="-2" id="f-1237">4</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="-2" id="f-1238">1</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="f-1239">2</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="f-1240">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="f-1241">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="f-1242">19</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="f-1243">16</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="f-1244">14</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">57</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1161-3" continuedAt="f-1161-4"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Tax Reserves</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" id="f-1245" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in gross amounts of unrecognized tax benefits, excluding interest and penalties, were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:81.158%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.642%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2021</span></div></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1246">13,812</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1247">119</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1248">2,850</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" id="f-1249">505</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" format="ixt:num-dot-decimal" scale="3" id="f-1250">2,329</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" format="ixt:num-dot-decimal" scale="3" id="f-1251">1,072</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1252">13,647</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1253">242</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1254">12,556</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1255">1,877</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" format="ixt:num-dot-decimal" scale="3" id="f-1256">1,230</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" scale="3" id="f-1257">894</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1258">25,714</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1259">39</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1260">208</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1261">1,935</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" format="ixt:num-dot-decimal" scale="3" id="f-1262">2,751</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" format="ixt:num-dot-decimal" scale="3" id="f-1263">1,331</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2024</span></div></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1264">23,736</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s reserve for income taxes, including gross interest and penalties, was $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:UnrecognizedTaxBenefitsGross" format="ixt:num-dot-decimal" scale="0" id="f-1265">28,733,000</ix:nonFraction> as of December 31, 2024, of which $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:UnrecognizedTaxBenefitsGrossNoncurrentLiability" format="ixt:num-dot-decimal" scale="0" id="f-1266">26,365,000</ix:nonFraction> was classified as a non-current liability and $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" format="ixt:num-dot-decimal" scale="0" id="f-1267">2,368,000</ix:nonFraction> was classified as an offset to deferred tax assets. The Company's reserve for income taxes, including gross interest and penalties, was $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:UnrecognizedTaxBenefitsGross" format="ixt:num-dot-decimal" scale="0" id="f-1268">29,053,000</ix:nonFraction> as of December 31, 2023, of which $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:UnrecognizedTaxBenefitsGrossNoncurrentLiability" format="ixt:num-dot-decimal" scale="0" id="f-1269">26,685,000</ix:nonFraction> was classified as a non-current liability and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" format="ixt:num-dot-decimal" scale="0" id="f-1270">2,368,000</ix:nonFraction> was classified as an offset to deferred tax assets. The amount of gross interest and penalties included in these balances was $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" format="ixt:num-dot-decimal" scale="0" id="f-1271">4,997,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" format="ixt:num-dot-decimal" scale="0" id="f-1272">3,339,000</ix:nonFraction> as of December&#160;31, 2024 and 2023, respectively. If the Company&#8217;s tax positions were sustained or the statutes of limitations related to certain positions expired, these reserves would be released and income tax expense would be reduced in a future period. As a result of the expiration of certain statutes of limitations, there is a potential that a portion of these reserves could be released, which would decrease income tax expense by approximately $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" format="ixt:num-dot-decimal" scale="0" id="f-1273">2,000,000</ix:nonFraction> to $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" format="ixt:num-dot-decimal" scale="0" id="f-1274">4,000,000</ix:nonFraction> over the next twelve months.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has defined its major tax jurisdictions as the United States, Ireland, China, Japan, and Korea and within the United States, Massachusetts. The statutory tax rate is <ix:nonFraction unitRef="number" contextRef="c-198" decimals="3" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1275">12.5</ix:nonFraction>% in Ireland, <ix:nonFraction unitRef="number" contextRef="c-199" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1276">25</ix:nonFraction>% in China, <ix:nonFraction unitRef="number" contextRef="c-200" decimals="3" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1277">34.6</ix:nonFraction>% in Japan, and <ix:nonFraction unitRef="number" contextRef="c-201" decimals="3" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1278">21</ix:nonFraction>% in Korea, compared to the U.S. federal statutory corporate tax rate of <ix:nonFraction unitRef="number" contextRef="c-202" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1279">21</ix:nonFraction>%. These differences resulted in a favorable impact to the effective tax rate of <ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1280">4</ix:nonFraction> percentage points for 2024, <ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1281">6</ix:nonFraction> percentage points for 2023, and <ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1282">7</ix:nonFraction> percentage points for 2022. Management has determined that earnings from its legal entities in China will be indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested. In 2024, the Company recorded a non-current deferred tax liability of $<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings" format="ixt:num-dot-decimal" scale="0" id="f-1283">1,400,000</ix:nonFraction> with respect to earnings that are not indefinitely reinvested. In 2023, the Company qualified for a tax holiday in China, which is renewed every three years. The tax effect of this benefit on basic and diluted earnings per share for 2024 was not material. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Within the United States, the tax years 2020 through 2023 remain open to examination by the Internal Revenue Service ("IRS") and various state taxing authorities. The tax years 2013 through 2023 remain open to examination by various taxing authorities in foreign jurisdictions in which the Company operates. Management believes the Company is adequately reserved for these audits. The final determination of tax audits could result in favorable or unfavorable changes in our estimates. Any reserves associated with this audit period will not be released until the issue is settled or the audit is concluded. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Interest and penalties included in income tax expense were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="0" id="f-1284">2,145,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="0" id="f-1285">1,032,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="0" id="f-1286">229,000</ix:nonFraction> in 2022.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">58</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1161-4" continuedAt="f-1161-5"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash paid for income taxes totaled $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxesPaidNet" format="ixt:num-dot-decimal" scale="0" id="f-1287">59,849,000</ix:nonFraction> in 2024, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeTaxesPaidNet" format="ixt:num-dot-decimal" scale="0" id="f-1288">56,618,000</ix:nonFraction> in 2023, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeTaxesPaidNet" format="ixt:num-dot-decimal" scale="0" id="f-1289">57,016,000</ix:nonFraction> in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Deferred Tax Assets and Liabilities</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="f-1290" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tax effects of temporary differences and attributes that give rise to deferred income tax assets and liabilities as of December 31, 2024 and December 31, 2023 were as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:66.495%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.735%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.737%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Intangible asset in connection with change in tax structure</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" format="ixt:num-dot-decimal" scale="3" id="f-1291">369,474</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" format="ixt:num-dot-decimal" scale="3" id="f-1292">375,360</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Capitalization of R&amp;D expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" format="ixt:num-dot-decimal" scale="3" id="f-1293">35,948</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" format="ixt:num-dot-decimal" scale="3" id="f-1294">28,521</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1295">22,428</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1296">20,916</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credit carryforwards</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" format="ixt:num-dot-decimal" scale="3" id="f-1297">10,186</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" format="ixt:num-dot-decimal" scale="3" id="f-1298">7,848</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventory and revenue related</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxAssetsInventory" format="ixt:num-dot-decimal" scale="3" id="f-1299">8,355</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsInventory" format="ixt:num-dot-decimal" scale="3" id="f-1300">10,897</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Bonuses, commissions, and other compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" format="ixt:num-dot-decimal" scale="3" id="f-1301">6,949</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" format="ixt:num-dot-decimal" scale="3" id="f-1302">6,243</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:NoncurrentDeferredTaxAssetsDeprecation" format="ixt:num-dot-decimal" scale="3" id="f-1303">2,877</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:NoncurrentDeferredTaxAssetsDeprecation" format="ixt:num-dot-decimal" scale="3" id="f-1304">1,840</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign net operating losses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" format="ixt:num-dot-decimal" scale="3" id="f-1305">1,306</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" scale="3" id="f-1306">339</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:DeferredTaxAssetsOtherNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-1307">4,624</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredTaxAssetsOtherNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-1308">5,514</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total deferred tax assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross" format="ixt:num-dot-decimal" scale="3" id="f-1309">462,147</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross" format="ixt:num-dot-decimal" scale="3" id="f-1310">457,478</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1311">2,515</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" scale="3" id="f-1312">943</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-1313">459,632</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-1314">456,535</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">GILTI tax basis differences in connection with change in tax structure</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-1315">254,213</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-1316">274,327</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:DeferredTaxLiabilitiesAmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="f-1317">29,008</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredTaxLiabilitiesAmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="f-1318">28,685</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve for unremitted foreign earnings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings" format="ixt:num-dot-decimal" scale="3" id="f-1319">1,400</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings" format="ixt:fixed-zero" scale="3" id="f-1320">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:DeferredTaxLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1321">284,621</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1322">303,012</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net deferred taxes</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="cgnx:DeferredIncomeTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-1323">175,011</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredIncomeTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-1324">153,523</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Change in Tax Structure and Global Intangible Low-Taxed Income Tax</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, the Company made changes to its international tax structure due to legislation by the European Union regarding low tax structures that resulted in an intercompany sale of intellectual property. As a result, the Company recorded an associated deferred tax asset of $<ix:nonFraction unitRef="usd" contextRef="c-203" decimals="-3" name="cgnx:DeferredTaxAssetsForeignTaxStructureChange" format="ixt:num-dot-decimal" scale="0" id="f-1325">437,500,000</ix:nonFraction> in Ireland based on the fair value of the intellectual property that is being realized over fifteen years as future tax deductions. From a United States perspective, the sale was disregarded, and any future deductions claimed in Ireland are added back to taxable income as part of Global Intangible Low-Taxed Income ("GILTI") minimum tax. The Company recorded an associated deferred tax liability of $<ix:nonFraction unitRef="usd" contextRef="c-203" decimals="-3" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" format="ixt:num-dot-decimal" scale="0" id="f-1326">350,000,000</ix:nonFraction>, representing the GILTI minimum tax related to the fair value of the intellectual property.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Other Deferred Tax Assets and Liabilities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Beginning in 2022, the Tax Cuts and Jobs Act eliminates the option to deduct research and development expenditures in the period incurred and requires taxpayers to capitalize and amortize such expenditures over five or fifteen years, as applicable, pursuant to Section 174 of the Internal Revenue Code. Accordingly, the Company recorded deferred tax assets resulting from the capitalization of research and development expenditures. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, the Company had foreign net operating loss carryforwards of $<ix:nonFraction unitRef="usd" contextRef="c-204" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" format="ixt:num-dot-decimal" scale="0" id="f-1327">1,306,000</ix:nonFraction>, state tax credit carryforwards of $<ix:nonFraction unitRef="usd" contextRef="c-205" decimals="-3" name="cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState" format="ixt:num-dot-decimal" scale="0" id="f-1328">7,619,000</ix:nonFraction> that will begin to expire for the 2031 tax return, and foreign tax credit carryforwards of $<ix:nonFraction unitRef="usd" contextRef="c-204" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign" format="ixt:num-dot-decimal" scale="0" id="f-1329">2,567,000</ix:nonFraction>.  As of December 31, 2023, the Company had foreign net operating loss carryforwards of $<ix:nonFraction unitRef="usd" contextRef="c-206" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" format="ixt:num-dot-decimal" scale="0" id="f-1330">1,720,000</ix:nonFraction>, state tax credit carryforwards of $<ix:nonFraction unitRef="usd" contextRef="c-207" decimals="-3" name="cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState" format="ixt:num-dot-decimal" scale="0" id="f-1331">8,740,000</ix:nonFraction>, and foreign tax credit carryforwards of $<ix:nonFraction unitRef="usd" contextRef="c-206" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign" format="ixt:num-dot-decimal" scale="0" id="f-1332">943,000</ix:nonFraction>.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, the Company had a valuation allowance for foreign net operation loss carryforwards of $<ix:nonFraction unitRef="usd" contextRef="c-208" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="f-1333">599,000</ix:nonFraction> and a valuation allowance for foreign tax credits of $<ix:nonFraction unitRef="usd" contextRef="c-209" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="f-1334">1,916,000</ix:nonFraction> that were not considered to be realized.  As of December 31, 2023, the Company had a valuation allowance for foreign tax credits of $<ix:nonFraction unitRef="usd" contextRef="c-210" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="f-1335">943,000</ix:nonFraction> that was not considered to be realized. Should these credits be utilized in a future period, the reserve associated with these </span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">59</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1161-5"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">credits would be reversed in the period when it is determined that the credits can be utilized to offset future income tax liabilities.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While the deferred tax assets, net of valuation allowance, are not assured of realization, management has evaluated the realizability of these deferred tax as sets and has determined that it is more likely than not that these assets will be realized. In reaching this conclusion, we have evaluated certain relevant criteria including the Company&#8217;s historical profitability, current projections of future profitability, and the lives of tax credits, net operating losses, and other carryforwards. Should the Company fail to generate sufficient pre-tax profits in future periods, we may be required to establish valuation allowances against these deferred tax assets, resulting in a charge to current operations in the period of determination.</span></div></ix:continuation><div id="i67e131bb2c504a23903df9579998c003_184"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 19:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:EarningsPerShareTextBlock" id="f-1336" continuedAt="f-1336-1" escape="true">Weighted Average Shares</ix:nonNumeric></span></div><ix:continuation id="f-1336-1"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" id="f-1337" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Weighted-average shares were calculated as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:55.058%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.976%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.976%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.124%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic weighted-average common shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-1338">171,438</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-1339">172,249</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-1340">173,407</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Effect of dilutive stock awards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:num-dot-decimal" scale="3" id="f-1341">1,173</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:num-dot-decimal" scale="3" id="f-1342">1,150</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:num-dot-decimal" scale="3" id="f-1343">1,462</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted weighted-average common and common-equivalent shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-1344">172,611</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-1345">173,399</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-1346">174,869</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock options to purchase <ix:nonFraction unitRef="shares" contextRef="c-211" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-1347">8,496,599</ix:nonFraction>, <ix:nonFraction unitRef="shares" contextRef="c-212" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-1348">6,854,092</ix:nonFraction>, and <ix:nonFraction unitRef="shares" contextRef="c-213" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-1349">4,715,104</ix:nonFraction> shares of common stock, on a weighted-average basis, were outstanding in 2024, 2023, and 2022, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling <ix:nonFraction unitRef="shares" contextRef="c-214" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="f-1350">365</ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="c-215" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-1351">26,079</ix:nonFraction> that will be settled in shares of common stock to the extent they vest, on a weighted-average basis, were outstanding in 2023 and 2022, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. <ix:nonFraction unitRef="shares" contextRef="c-216" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt-sec:numwordsen" id="f-1352">No</ix:nonFraction> restricted stock units were excluded in the calculation of dilutive net income per share in 2024. <ix:nonFraction unitRef="shares" contextRef="c-217" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt-sec:numwordsen" id="f-1353"><ix:nonFraction unitRef="shares" contextRef="c-218" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt-sec:numwordsen" id="f-1354"><ix:nonFraction unitRef="shares" contextRef="c-219" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt-sec:numwordsen" id="f-1355">No</ix:nonFraction></ix:nonFraction></ix:nonFraction> PRSUs were excluded in the calculation of dilutive net income per share in 2024, 2023, and 2022 as PRSUs were not anti-dilutive on a weighted-average basis.</span></div></ix:continuation><div id="i67e131bb2c504a23903df9579998c003_187"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 20:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:SegmentReportingDisclosureTextBlock" id="f-1356" continuedAt="f-1356-1" escape="true">Segment and Geographic Information</ix:nonNumeric></span></div><ix:continuation id="f-1356-1" continuedAt="f-1356-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company operates in <ix:nonFraction unitRef="segment" contextRef="c-1" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-1357">one</ix:nonFraction> segment, machine vision technology. The Company has a single, company-wide management team that administers operations as a whole rather than as discrete operating segments. The Company&#8217;s chief operating decision maker is the chief executive officer, who assesses performance and allocates  resources at the corporate level, as compared to the geography, product line, or end market levels. The Company offers a variety of machine vision products that have similar economic characteristics and are distributed by the same sales channels to the same types of customers.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" id="f-1358" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes information about geographic areas (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:28.665%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.389%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.389%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.243%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.389%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.393%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">United&#160;States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Greater China </span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-220" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1359">306,766</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-138" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1360">217,880</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-141" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1361">164,147</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-221" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1362">225,722</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1363">914,515</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-222" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1364">56,948</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-223" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1365">15,655</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-224" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1366">14,844</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-225" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1367">16,025</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1368">103,472</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-226" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1369">288,324</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-139" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1370">220,665</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-142" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1371">164,115</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-227" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1372">164,443</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1373">837,547</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-228" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1374">62,946</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-229" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1375">17,005</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-230" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1376">17,028</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-231" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1377">15,958</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1378">112,937</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-232" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1379">343,835</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-140" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1380">234,643</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-143" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1381">227,447</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-233" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1382">200,165</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1383">1,006,090</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-234" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1384">66,928</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-235" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1385">14,725</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-236" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1386">1,334</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-237" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1387">3,370</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1388">86,357</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue is presented geographically based on the customer&#8217;s country of domicile. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from a single customer accounted for <ix:nonFraction unitRef="number" contextRef="c-238" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1389">10</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="c-239" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1390">11</ix:nonFraction>% of total revenue in 2024 and 2022, respectively. Revenue from this customer was not greater than 10% of total revenue in 2023. Accounts receivable from this customer was <ix:nonFraction unitRef="number" contextRef="c-240" decimals="3" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1391">10</ix:nonFraction>% of total accounts receivable as of December 31, 2024 and was not greater than 10% of total accounts receivable as of December 31, 2023.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">60</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1356-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from a second customer accounted for <ix:nonFraction unitRef="number" contextRef="c-241" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1392">11</ix:nonFraction>% of total revenue in 2022. Revenue from this customer was not greater than 10% of total revenue in 2024 or 2023. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2024 or December 31, 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The measure of segment profit or loss for the Company's single segment is net income. Segment expenses were disaggregated based on the information the chief operating decision maker uses to assess performance and allocate resources considering both quantitative and qualitative factors. <ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock" id="f-1393" continuedAt="f-1393-1" escape="true">The following table summarizes significant segment expenses, which represents the difference between segment revenue and segment net income, (in thousands):</ix:nonNumeric></span></div><ix:continuation id="f-1393-1"><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:55.332%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.350%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.408%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.350%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:1.408%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.352%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1394">914,515</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1395">837,547</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1396">1,006,090</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue (1)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-1397">288,721</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-1398">236,306</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-1399">284,185</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="f-1400">625,794</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="f-1401">601,241</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="f-1402">721,905</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering expenses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and fringe benefits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-242" decimals="-3" name="us-gaap:LaborAndRelatedExpense" format="ixt:num-dot-decimal" scale="3" id="f-1403">79,544</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-243" decimals="-3" name="us-gaap:LaborAndRelatedExpense" format="ixt:num-dot-decimal" scale="3" id="f-1404">78,762</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-244" decimals="-3" name="us-gaap:LaborAndRelatedExpense" format="ixt:num-dot-decimal" scale="3" id="f-1405">76,448</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation (2)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-242" decimals="-3" name="cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions" format="ixt:num-dot-decimal" scale="3" id="f-1406">4,711</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-243" decimals="-3" name="cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions" format="ixt:num-dot-decimal" scale="3" id="f-1407">1,446</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-244" decimals="-3" name="cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions" format="ixt:num-dot-decimal" scale="3" id="f-1408">3,447</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-242" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1409">14,628</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-243" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1410">16,480</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-244" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1411">17,693</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation and amortization</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-242" decimals="-3" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="3" id="f-1412">3,229</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-243" decimals="-3" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="3" id="f-1413">3,056</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-244" decimals="-3" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="3" id="f-1414">2,649</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other segment expenses (3)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-242" decimals="-3" name="us-gaap:OtherExpenses" format="ixt:num-dot-decimal" scale="3" id="f-1415">37,703</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-243" decimals="-3" name="us-gaap:OtherExpenses" format="ixt:num-dot-decimal" scale="3" id="f-1416">39,656</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-244" decimals="-3" name="us-gaap:OtherExpenses" format="ixt:num-dot-decimal" scale="3" id="f-1417">40,896</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total research, development, and engineering expenses</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-1418">139,815</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-1419">139,400</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-1420">141,133</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and fringe benefits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-245" decimals="-3" name="us-gaap:LaborAndRelatedExpense" format="ixt:num-dot-decimal" scale="3" id="f-1421">179,898</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-246" decimals="-3" name="us-gaap:LaborAndRelatedExpense" format="ixt:num-dot-decimal" scale="3" id="f-1422">166,612</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-247" decimals="-3" name="us-gaap:LaborAndRelatedExpense" format="ixt:num-dot-decimal" scale="3" id="f-1423">150,696</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation (2)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-245" decimals="-3" name="cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions" format="ixt:num-dot-decimal" scale="3" id="f-1424">45,565</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-246" decimals="-3" name="cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions" format="ixt:num-dot-decimal" scale="3" id="f-1425">35,513</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-247" decimals="-3" name="cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions" format="ixt:num-dot-decimal" scale="3" id="f-1426">40,716</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-245" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1427">35,849</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-246" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1428">36,309</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-247" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1429">34,796</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation and amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-245" decimals="-3" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="3" id="f-1430">16,936</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-246" decimals="-3" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="3" id="f-1431">11,759</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-247" decimals="-3" name="us-gaap:DepreciationDepletionAndAmortization" format="ixt:num-dot-decimal" scale="3" id="f-1432">10,702</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other segment expenses (3)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-245" decimals="-3" name="us-gaap:OtherExpenses" format="ixt:num-dot-decimal" scale="3" id="f-1433">92,666</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-246" decimals="-3" name="us-gaap:OtherExpenses" format="ixt:num-dot-decimal" scale="3" id="f-1434">88,946</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-247" decimals="-3" name="us-gaap:OtherExpenses" format="ixt:num-dot-decimal" scale="3" id="f-1435">75,197</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total selling, general, and administrative expenses</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-1436">370,914</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-1437">339,139</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-1438">312,107</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss (recovery) from fire</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:LossGainFromCatastrophes" format="ixt:fixed-zero" scale="3" id="f-1439">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="cgnx:LossGainFromCatastrophes" format="ixt:num-dot-decimal" scale="3" id="f-1440">8,000</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:LossGainFromCatastrophes" format="ixt:num-dot-decimal" scale="3" id="f-1441">20,779</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:fixed-zero" scale="3" id="f-1442">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:fixed-zero" scale="3" id="f-1443">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-1444">1,657</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating income</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-1445">115,065</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-1446">130,702</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-1447">246,229</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-1448">1,531</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-1449">10,039</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-1450">1,837</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Investment income</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="f-1451">13,971</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="f-1452">14,093</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="f-1453">6,715</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other income (expense)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-1454">922</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-1455">592</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-1456">412</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income before income tax expense</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-1457">131,489</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-1458">135,348</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-1459">250,695</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1460">25,318</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1461">22,114</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1462">35,170</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-1463">106,171</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-1464">113,234</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-1465">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) Cost of revenue includes depreciation and amortization expense (including amortization of acquired technologies) of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization" format="ixt:num-dot-decimal" scale="0" id="f-1466">12,524,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization" format="ixt:num-dot-decimal" scale="0" id="f-1467">7,065,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization" format="ixt:num-dot-decimal" scale="0" id="f-1468">6,270,000</ix:nonFraction> for 2024, 2023, and 2022, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2)   Incentive compensation includes company bonus and sales commissions.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(3)  Other segment expenses</span><span style="color:#ee2724;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">include outside services, prototyping materials, sales demonstration equipment, travel and entertainment, marketing programs, and rent, among other less significant expenses.</span></div></ix:continuation></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">61</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_193"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 21: <ix:nonNumeric contextRef="c-1" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="f-1470" continuedAt="f-1470-1" escape="true">Business Combinations</ix:nonNumeric></span></div><ix:continuation id="f-1470-1" continuedAt="f-1470-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Moritex Corporation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 18, 2023, the Company acquired all the outstanding shares of Moritex Corporation ("Moritex"), a global provider of premium optical components based in Japan, for an enterprise value of &#165;<ix:nonFraction unitRef="jpy" contextRef="c-248" decimals="-9" name="cgnx:BusinessCombinationEnterpriseValue" format="ixt:num-dot-decimal" scale="9" id="f-1471">40</ix:nonFraction>&#160;billion Japanese Yen, or approximately $<ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-6" name="cgnx:BusinessCombinationEnterpriseValue" format="ixt:num-dot-decimal" scale="6" id="f-1472">270</ix:nonFraction>&#160;million U.S. Dollars based on the closing date foreign exchange rate. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The cash-free, debt-free enterprise value was adjusted by cash acquired, debt assumed, and final working capital balances to arrive at total consideration to be allocated to assets acquired and liabilities assumed of &#165;<ix:nonFraction unitRef="jpy" contextRef="c-249" decimals="-3" name="us-gaap:BusinessCombinationConsiderationTransferred1" format="ixt:num-dot-decimal" scale="0" id="f-1473">44,376,245,000</ix:nonFraction> ($<ix:nonFraction unitRef="usd" contextRef="c-249" decimals="-3" name="us-gaap:BusinessCombinationConsiderationTransferred1" format="ixt:num-dot-decimal" scale="0" id="f-1474">296,138,000</ix:nonFraction> based on the closing date foreign exchange rate), of which &#165;<ix:nonFraction unitRef="jpy" contextRef="c-249" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesGross" format="ixt:num-dot-decimal" scale="0" id="f-1475">44,227,414,000</ix:nonFraction> ($<ix:nonFraction unitRef="usd" contextRef="c-249" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesGross" format="ixt:num-dot-decimal" scale="0" id="f-1476">295,144,000</ix:nonFraction>) was paid in cash on the closing date and &#165;<ix:nonFraction unitRef="jpy" contextRef="c-250" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesGross" format="ixt:num-dot-decimal" scale="0" id="f-1477">148,831,000</ix:nonFraction> ($<ix:nonFraction unitRef="usd" contextRef="c-250" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesGross" format="ixt:num-dot-decimal" scale="0" id="f-1478">994,000</ix:nonFraction>) was paid during the first quarter of 2024 as a purchase price adjustment based on the closing balance sheet. The Company acquired cash balances totaling $<ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" format="ixt:num-dot-decimal" scale="0" id="f-1479">38,088,000</ix:nonFraction> as part of this transaction, to arrive at a net cash outflow of $<ix:nonFraction unitRef="usd" contextRef="c-249" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:num-dot-decimal" scale="0" id="f-1480">257,056,000</ix:nonFraction> on the closing date. There was no contingent consideration as part of this transaction. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the fourth quarter of 2024, the Company recorded measurement-period adjustments that increased goodwill by $<ix:nonFraction unitRef="usd" contextRef="c-251" decimals="-3" name="us-gaap:GoodwillPurchaseAccountingAdjustments" format="ixt:num-dot-decimal" scale="0" id="f-1481">6,478,000</ix:nonFraction> and are reflected in the final purchase price allocation below. The adjustments consisted primarily of changes to deferred income tax liabilities based on the final push-down accounting for intangible assets to legal-entity jurisdictions, a reduction in customer relationships based on a methodology refinement, and changes to provisional assets and liabilities based on new information obtained within the one-year measurement period that refined initial estimates.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The portfolio of Moritex optical components allows us to expand our served market to include high-end lenses and lighting and provide our customers with a more complete product offering by replacing third-party components with Cognex-manufactured optical components. Moritex also provides the Company with a more substantial presence in Japan, which is an important machine vision market where we believe we can increase our share through a stronger local presence.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This transaction was accounted for as a business combination. Identifiable assets acquired and liabilities assumed were recorded at their estimated fair values as of the acquisition date, which were valued using level 3 inputs for intangible assets, inventories, and property, plant and equipment. Pro-forma information, as well as revenue and earnings from the date of the acquisition, are not presented because they are not material to the Company&#8217;s consolidated financial statements. </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Transaction costs were approximately $<ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" format="ixt:num-dot-decimal" scale="0" id="f-1482">5,800,000</ix:nonFraction> and were expensed as incurred as part of SG&amp;A expenses on the Consolidated Statement of Operations.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">62</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1470-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" id="f-1483" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The purchase price was allocated as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:79.016%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.784%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-1484">38,088</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" format="ixt:num-dot-decimal" scale="3" id="f-1485">11,543</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" format="ixt:num-dot-decimal" scale="3" id="f-1486">21,882</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-1487">19,805</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-1488">151,525</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-252" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" format="ixt:num-dot-decimal" scale="3" id="f-1489">64,800</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-253" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" format="ixt:num-dot-decimal" scale="3" id="f-1490">32,300</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-254" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="f-1491">850</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" format="ixt:num-dot-decimal" scale="3" id="f-1492">4,162</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1493">3,363</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-1494">6,639</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1495">14,718</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1496">22,665</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve for income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-1497">5,864</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" format="ixt:num-dot-decimal" scale="3" id="f-1498">2,294</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;Purchase price</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" format="ixt:num-dot-decimal" scale="3" id="f-1499">296,138</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The customer relationships, completed technologies, and trademarks are included in "Intangible assets" on the Consolidated Balance </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sheet.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The customer relationships are being amortized to SG&amp;A expenses over fifteen years, the completed technologies are being amortized to cost of revenue over nine years, and the trademarks are being amortized to SG&amp;A expenses over three years. None of the acquired goodwill is deductible for tax purposes.</span></div></ix:continuation><div id="i67e131bb2c504a23903df9579998c003_199"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 22: <ix:nonNumeric contextRef="c-1" name="cgnx:CatastropheTextBlock" id="f-1500" continuedAt="f-1500-1" escape="true">Loss (Recovery) from Fire</ix:nonNumeric></span></div><ix:continuation id="f-1500-1" continuedAt="f-1500-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 7, 2022, the Company&#8217;s primary contract manufacturer experienced a fire at its plant in Indonesia, destroying a significant amount of Cognex inventories.</span></div></ix:continuation><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-1500-2">In 2022, the Company recorded a net loss related to the fire of $<ix:nonFraction unitRef="usd" contextRef="c-255" decimals="-3" name="us-gaap:LossFromCatastrophes" format="ixt:num-dot-decimal" scale="0" id="f-1501">20,779,000</ix:nonFraction>, consisting primarily of losses of inventories and other assets of $<ix:nonFraction unitRef="usd" contextRef="c-255" decimals="-3" name="cgnx:GrossLossFromCatastrophes" format="ixt:num-dot-decimal" scale="0" id="f-1502">48,339,000</ix:nonFraction>, partially offset by insurance proceeds received from the Company's insurance carrier of $<ix:nonFraction unitRef="usd" contextRef="c-255" decimals="-3" name="us-gaap:InsuranceRecoveries" format="ixt:num-dot-decimal" scale="0" id="f-1503">27,560,000</ix:nonFraction>. In 2023, the Company recorded recoveries related to the fire of $<ix:nonFraction unitRef="usd" contextRef="c-256" decimals="-3" name="us-gaap:InsuranceRecoveries" format="ixt:num-dot-decimal" scale="0" id="f-1504">8,000,000</ix:nonFraction>, consisting of $<ix:nonFraction unitRef="usd" contextRef="c-256" decimals="-3" name="cgnx:InsuranceRecoveriesBusinessInterruption" format="ixt:num-dot-decimal" scale="0" id="f-1505">2,500,000</ix:nonFraction> for proceeds received from the Company's insurance carrier in relation to a business interruption claim and $<ix:nonFraction unitRef="usd" contextRef="c-256" decimals="-3" name="cgnx:InsuranceRecoveriesLostInventoryAndOtherLosses" format="ixt:num-dot-decimal" scale="0" id="f-1506">5,500,000</ix:nonFraction> for proceeds received as part of a financial settlement for lost inventory and other losses incurred as a result of the fire.</ix:continuation> </span></div><div id="i67e131bb2c504a23903df9579998c003_205"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 23: <ix:nonNumeric contextRef="c-1" name="us-gaap:SubsequentEventsTextBlock" id="f-1507" continuedAt="f-1507-1" escape="true">Subsequent Events</ix:nonNumeric></span></div><ix:continuation id="f-1507-1"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 12, 2025, the Company's Board of Directors declared a cash dividend of $<ix:nonFraction unitRef="usdPerShare" contextRef="c-257" decimals="INF" name="us-gaap:DividendsPayableAmountPerShare" scale="0" id="f-1508">0.080</ix:nonFraction> per share. The dividend is payable March 13, 2025 to all shareholders of record as of the close of business on February 27, 2025.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">63</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_211"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; <ix:nonNumeric contextRef="c-1" name="srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" id="f-1509" continuedAt="f-1509-1" escape="true">SCHEDULE II &#8211; VALUATION AND QUALIFYING ACCOUNTS</ix:nonNumeric></span></div><ix:continuation id="f-1509-1"><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"/><td style="width:30.711%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.536%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.472%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.536%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.472%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.536%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.472%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.536%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.914%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.581%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.472%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.581%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.481%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Additions</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Description</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Balance&#160;at<br/>Beginning<br/>of Period</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Charged&#160;to<br/>Costs and<br/>Expenses</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Charged<br/>to Other<br/>Accounts</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Deductions</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Other</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Balance&#160;at<br/>End of<br/>Period</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(In thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Allowance for Credit Losses on Accounts Receivable:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-258" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1510">583</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-259" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" id="f-1511">459</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-259" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" id="f-1512">222</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-259" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" scale="3" id="f-1513">7</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-260" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1514">827</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-261" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1515">730</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-262" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" id="f-1516">500</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-262" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" id="f-1517">645</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-262" decimals="-3" sign="-" name="us-gaap:ValuationAllowancesAndReservesAdjustments" scale="3" id="f-1518">2</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-258" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1519">583</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-263" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1520">776</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-264" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" id="f-1521">191</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-264" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" id="f-1522">237</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-264" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1523">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-261" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1524">730</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve&#160;for Sales Returns:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-265" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1525">2,018</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-266" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" id="f-1526">500</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-266" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="f-1527">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-266" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="f-1528">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-266" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1529">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-267" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1530">2,518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-268" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1531">1,518</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-269" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" id="f-1532">500</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-269" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="f-1533">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-269" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="f-1534">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-269" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1535">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-265" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1536">2,018</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-270" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1537">1,518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-271" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:fixed-zero" scale="3" id="f-1538">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-271" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="f-1539">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-271" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="f-1540">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-271" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1541">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-268" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1542">1,518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred Tax Valuation Allowance:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-272" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1543">943</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-273" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:num-dot-decimal" scale="3" id="f-1544">1,572</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-273" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="f-1545">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-273" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="f-1546">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-273" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1547">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-274" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1548">2,515</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-275" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1549">7,661</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-276" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:fixed-zero" scale="3" id="f-1550">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-276" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="f-1551">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-276" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:num-dot-decimal" scale="3" id="f-1552">6,718</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-276" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1553">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-272" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1554">943</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-277" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1555">8,188</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-278" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:num-dot-decimal" scale="3" id="f-1556">2,234</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-278" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:num-dot-decimal" scale="3" id="f-1557">3,889</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-278" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:num-dot-decimal" scale="3" id="f-1558">6,650</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-278" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1559">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-275" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1560">7,661</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:4pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt">Specific write-offs</span></div><div style="padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt">Foreign currency exchange rate changes</span></div></ix:continuation><div style="padding-left:36pt"><span><br/></span></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">64</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_214"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;9: CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURE</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There were no disagreements with accountants on accounting or financial disclosure during 2024 or 2023.</span></div><div id="i67e131bb2c504a23903df9579998c003_217"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 9A: CONTROLS AND PROCEDURES</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Disclosure Controls and Procedures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As required by Rules 13a-15 and 15d-15 of the Exchange Act, the Company has evaluated, with the participation of management, including the Chief Executive Officer and the Chief Financial Officer, the effectiveness of its disclosure controls and procedures (as defined in such rules) as of the end of the period covered by this report. Based on such evaluation, the Chief Executive Officer and Chief Financial Officer concluded that such disclosure controls and procedures were effective as of that date.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Management&#8217;s Report on Internal Control over Financial Reporting</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management is responsible for establishing and maintaining adequate internal control over financial reporting. Management has evaluated the effectiveness of the Company&#8217;s internal control over financial reporting based on the framework in Internal Control &#8211; Integrated Framework issued in 2013 by the Committee of Sponsoring Organizations of the Treadway Commission (COSO).</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Based on our evaluation, management has concluded that the Company&#8217;s internal control over financial reporting was effective as of December&#160;31, 2024.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Attestation Report of the Registered Public Accounting Firm on Internal Control over Financial Reporting</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s internal control over financial reporting as of December&#160;31, 2024 has been audited by Grant Thornton LLP, an independent registered public accounting firm, as stated in their report which is included herein.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Changes in Internal Control over Financial Reporting</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There have been no changes in the Company's internal control over financial reporting that occurred during the fourth quarter of the year ended December&#160;31, 2024 that have materially affected, or are reasonably likely to materially affect, the Company&#8217;s internal control over financial reporting. The Company continues to review its disclosure controls and procedures, including its internal control over financial reporting, and may from time to time make changes aimed at enhancing their effectiveness and to ensure that the Company&#8217;s systems evolve with its business.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">65</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Board of Directors and Shareholders</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation</span></div><div style="text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Opinion on internal control over financial reporting</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have audited the internal control over financial reporting of Cognex Corporation (a Massachusetts corporation) and subsidiaries (the &#8220;Company&#8221;) as of December 31, 2024, based on criteria established in the 2013 </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Internal Control&#8212;Integrated Framework</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> issued by the Committee of Sponsoring Organizations of the Treadway Commission (&#8220;COSO&#8221;). In our opinion, the Company maintained, in all material respects, effective internal control over financial reporting as of December 31, 2024, based on criteria established in the 2013 </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Internal Control&#8212;Integrated Framework</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> issued by COSO.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (&#8220;PCAOB&#8221;), the consolidated financial statements of the Company as of and for the year ended December 31, 2024, and our report dated February 13, 2025 expressed an unqualified opinion on those financial statements.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Basis for opinion</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;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&#8217;s Report on Internal Control Over Financial Reporting ("Management's Report"). Our responsibility is to express an opinion on the Company&#8217;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. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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 included obtaining an understanding of internal control over financial reporting, assessing the risk that a material weakness exists, testing and evaluating the design and operating effectiveness of internal control based on the assessed risk, and performing such other procedures as we considered necessary in the circumstances. We believe that our audit provides a reasonable basis for our opinion.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Definition and limitations of internal control over financial reporting</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A company&#8217;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&#8217;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&#8217;s assets that could have a material effect on the financial statements.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">/s/ <ix:nonNumeric contextRef="c-1" name="dei:AuditorName" id="f-1561">GRANT THORNTON LLP</ix:nonNumeric></span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:AuditorLocation" id="f-1562">Boston, Massachusetts</ix:nonNumeric></span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">February&#160;13, 2025 </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">66</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_220"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 9B: OTHER INFORMATION</span></div><ix:nonNumeric contextRef="c-279" name="ecd:MtrlTermsOfTrdArrTextBlock" id="f-1563" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">During the quarter ended December 31, 2024, the following Section 16 officer adopted a Rule 10b5-1 trading arrangement, as defined in Item 408 of Regulation S-K, that is intended to satisfy the affirmative defense conditions of Exchange Act Rule 10b5-1(c):</span></div><div style="text-align:justify"><span><br/></span></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;padding-left:14.5pt">On <ix:nonNumeric contextRef="c-279" name="ecd:TrdArrAdoptionDate" id="f-1564">December 10, 2024</ix:nonNumeric>, <ix:nonNumeric contextRef="c-279" name="ecd:TrdArrIndName" id="f-1565">Joerg Kuechen</ix:nonNumeric>, the <ix:nonNumeric contextRef="c-279" name="ecd:TrdArrIndTitle" id="f-1566">Chief Technology Officer</ix:nonNumeric> of the Company, <ix:nonNumeric contextRef="c-279" name="ecd:Rule10b51ArrAdoptedFlag" format="ixt:fixed-true" id="f-1567">adopted</ix:nonNumeric> a trading arrangement for the sale of shares of the Company&#8217;s common stock (a &#8220;Rule 10b5-1 Trading Plan&#8221;). Mr. Kuechen&#8217;s Rule 10b5-1 Trading Plan, which has a term ending on December 10, 2025, provides for the exercise of vested stock options to acquire up to <ix:nonFraction unitRef="shares" contextRef="c-280" decimals="INF" name="ecd:TrdArrSecuritiesAggAvailAmt" format="ixt:num-dot-decimal" scale="0" id="f-1568">265,732</ix:nonFraction> shares of common stock and the sale of up to <ix:nonFraction unitRef="shares" contextRef="c-281" decimals="INF" name="ecd:TrdArrSecuritiesAggAvailAmt" format="ixt:num-dot-decimal" scale="0" id="f-1569">277,342</ix:nonFraction> shares of common stock pursuant to the terms of such Rule 10b5-1 Trading Plan. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">During the quarter ended December 31, 2024, no 10b5-1 trading arrangements were modified or terminated, and no director or officer of the Company <ix:nonNumeric contextRef="c-163" name="ecd:NonRule10b51ArrAdoptedFlag" format="ixt:fixed-false" id="f-1570">adopted</ix:nonNumeric> or <ix:nonNumeric contextRef="c-163" name="ecd:Rule10b51ArrTrmntdFlag" format="ixt:fixed-false" id="f-1571"><ix:nonNumeric contextRef="c-163" name="ecd:NonRule10b51ArrTrmntdFlag" format="ixt:fixed-false" id="f-1572">terminated</ix:nonNumeric></ix:nonNumeric> a &#8220;non-Rule 10b5-1 trading arrangement,&#8221; as defined in Item 408 of Regulation S-K.</span></div></ix:nonNumeric><div id="i67e131bb2c504a23903df9579998c003_226"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 9C: DISCLOSURE REGARDING FOREIGN JURISDICTIONS THAT PREVENT INSPECTIONS</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Not Applicable</span></div><div id="i67e131bb2c504a23903df9579998c003_229"></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART III</span></div><div id="i67e131bb2c504a23903df9579998c003_232"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;10:&#160;DIRECTORS, EXECUTIVE OFFICERS, AND CORPORATE GOVERNANCE</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information with respect to Directors and Executive Officers of the Company and the other matters required by Item&#160;10 shall be included in the Company&#8217;s definitive Proxy Statement for the Annual Meeting of Shareholders to be held on April 30, 2025 and is incorporated herein by reference.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has adopted a Code of Business Conduct and Ethics covering all employees, which is available, free of charge, on the Company&#8217;s website, </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">www.cognex.com</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> under "Company-Investor Information-Governance Documents". The Company intends to disclose on its website any amendments to or waivers of the Code of Business Conduct and Ethics on behalf of the Company&#8217;s directors and executive officers that would otherwise be required to be disclosed under the rules of the SEC or The NASDAQ Stock Market LLC.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">With respect to Item 408(b) of Regulation S-K, the Company has an insider trading policy governing the purchase, sale and other dispositions of the Company&#8217;s securities that applies to the Company's personnel, including its officers, directors, employees of the Company and its subsidiaries, and other covered persons. The Company believes that its insider trading policy is reasonably designed to promote compliance with insider trading laws, rules and regulations, and listing standards applicable to the Company. A copy of the Company&#8217;s insider trading policy is filed as Exhibit 19 to this Form 10-K.</span></div><div id="i67e131bb2c504a23903df9579998c003_235"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;11:&#160;EXECUTIVE COMPENSATION</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information with respect to executive compensation and the other matters required by Item&#160;11 shall be included in the Company&#8217;s definitive Proxy Statement for the Annual Meeting of Shareholders to be held on April&#160;30, 2025 and is incorporated herein by reference.</span></div><div id="i67e131bb2c504a23903df9579998c003_238"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;12:&#160;SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND MANAGEMENT AND RELATED STOCKHOLDER MATTERS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information with respect to security ownership and the other matters required by Item&#160;12 shall be included in the Company&#8217;s definitive Proxy Statement for the Annual Meeting of Shareholders to be held on April&#160;30, 2025 and is incorporated herein by reference.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">67</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides information as of December&#160;31, 2024 regarding shares of common stock that may be issued under the Company&#8217;s existing equity compensation plans:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:27.639%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.694%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:1.979%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:21.187%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:21.187%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:1.981%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Plan Category</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Number&#160;of&#160;securities&#160;to&#160;be<br/>issued upon exercise of<br/>outstanding&#160;options, warrants and rights, and vesting of restricted stock units</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Weighted-average&#160;exercise<br/>price&#160;of&#160;outstanding&#160;options, restricted stock units, warrants,&#160;and&#160;rights</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Number&#160;of&#160;securities<br/>remaining&#160;available&#160;for&#160;future<br/>issuance under equity<br/>compensation plans<br/>(excluding&#160;securities&#160;reflected<br/>in column (a))</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(a)</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Equity compensation plans approved by shareholders (3)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">11,366,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">49.03&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">6,458,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Equity compensation plans not approved by shareholders (3)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">11,366,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">51.22</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">6,458,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:0 1pt"/></tr></table></div><div style="margin-top:4pt;padding-left:36pt;text-indent:-27pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">(1)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:17.24pt">Includes shares to be issued upon exercise of outstanding options under the Company&#8217;s 2023 Stock Option and Incentive Plan, the 2007 Stock Option and Incentive Plan, and subsequent to shareholder approval, the 2001 General Stock Option Plan, as amended and restated.</span></div><div style="padding-left:36pt;text-indent:-27pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">(2)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:17.24pt">Includes shares remaining available for future issuance under the Company&#8217;s 2023 Stock Option and Incentive Plan.  This amount is subject to adjustment from "Carryover Shares" as defined in Note 16: Stock-Based Compensation.</span></div><div style="padding-left:36pt;text-indent:-27pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">(3)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:17.24pt">All references made to share or per share amounts have been adjusted to reflect the two-for-one stock split which occurred in the fourth quarter of 2017.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The 2001 General Stock Option Plan was originally adopted by the Board of Directors in December 2001 without shareholder approval. In December 2011, this plan received shareholder approval for an amendment and restatement of the plan. This plan provided for the granting of nonqualified stock options and incentive stock options to any employee who was actively employed by the Company and was not an officer or director of the Company. The maximum number of shares of common stock that were available for grant under this plan was 38,440,000 shares. All option grants had an exercise price per share that was no less than the fair market value per share of the Company&#8217;s common stock on the grant date and had a term that was no longer than ten years from the grant date. 32,544,411 stock options were granted under the 2001 General Stock Option Plan. With shareholder approval of the 2023 Stock Option and Incentive Plan in May 2023, no further shares may be granted from the 2001 General Stock Option Plan.</span></div><div id="i67e131bb2c504a23903df9579998c003_241"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;13:&#160;CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS, AND DIRECTOR INDEPENDENCE</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information with respect to certain relationships and related transactions and the other matters required by Item&#160;13 shall be included in the Company&#8217;s definitive Proxy Statement for the Annual Meeting of Shareholders to be held on April&#160;30, 2025 and is incorporated herein by reference.</span></div><div id="i67e131bb2c504a23903df9579998c003_244"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;14:&#160;PRINCIPAL ACCOUNTING FEES AND SERVICES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information with respect to principal accounting fees and services and the other matters required by Item&#160;14 shall be included in the Company&#8217;s definitive Proxy Statement for the Annual Meeting of Shareholders to be held on April&#160;30, 2025 and is incorporated herein by reference.</span></div><div id="i67e131bb2c504a23903df9579998c003_247"></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART IV</span></div><div id="i67e131bb2c504a23903df9579998c003_250"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;15:&#160;EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</span></div><div style="margin-top:5pt;padding-left:54pt;text-indent:-54pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:41.78pt">Financial Statements</span></div><div style="margin-top:5pt;padding-left:90pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements are included in Part II &#8211; Item&#160;8 of this Annual Report on Form 10-K.</span></div><div style="margin-top:5pt;padding-left:54pt;text-indent:-54pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:41.78pt">Financial Statement Schedule</span></div><div style="margin-top:5pt;padding-left:90pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial Statement Schedule II is included in Part II &#8211; Item&#160;8 of this Annual Report on Form 10-K.</span></div><div style="margin-top:5pt;padding-left:90pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other schedules are omitted because of the absence of conditions under which they are required or because the required information is provided in the consolidated financial statements or notes thereto.</span></div><div style="margin-top:5pt;padding-left:54pt;text-indent:-54pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(3)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:41.78pt">Exhibits</span></div><div style="margin-top:5pt;padding-left:90pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Exhibits filed as part of this Annual Report on Form 10-K are listed in the Exhibit Index, immediately preceding the signature page hereto.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">68</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_253"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;16:&#160;FORM 10-K SUMMARY</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">69</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_256"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="-sec-extract:summary"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div></div><div style="-sec-extract:summary;margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT INDEX</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:14.149%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:82.918%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">EXHIBIT&#160;NUMBER</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3A</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120516000035/exhibit31.htm">Restated Articles of Organization of Cognex Corporation effective June&#160;27, 1989, as amended through May 5, 2016 (incorporated by reference to Exhibit 3.1 of Cognex's Quarterly Report on Form 10-Q for the quarter ended July 3, 2016 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3B</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120516000035/exhibit32.htm">Articles of Amendment to the Articles of Organization of Cognex Corporation establishing Series E Junior Participating Preferred Stock (incorporated by reference to Exhibit 3.2 to Cognex's Quarterly Report on Form 10-Q for the quarter ended July 3, 2016 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3C</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312518154489/d581899dex42.htm">Articles of Amendment to Restated Articles of Organization of Cognex Corporation, effective May 2, 2018 (incorporated by reference to Exhibit 4.2 of Cognex's Registration Statement on Form S-8 [Registration No. 333-224716])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3D</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120519000006/cgnxarticlesofamendment.htm">Articles of Amendment to Restated Articles of Organization of Cognex Corporation, effective April 26, 2019 (incorporated by reference to Exhibit 3.4 of Cognex's Quarterly Report on Form 10-Q for the quarter ended March 31, 2019 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3E</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000115752323001236/a53505543_ex31.htm">Amended and Restated By-laws of Cognex Corporation, effective August 2, 2023 (incorporated by reference to Exhibit 3.1 of Cognex's Current Report on Form 8-K, as filed with the SEC on August 3, 2023 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4A</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Specimen Certificate for Shares of Common Stock (incorporated by reference to Exhibit 4 to Cognex's Registration Statement on Form S-1 [Registration No. 33-29020])</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4B</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120520000002/cgnxexhibit4bdescription.htm">Description of Capital Stock (incorporated by reference to Exhibit 4B of Cognex's Annual Report on Form 10-K for the year ended December 31, 2019 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10A *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312518154489/d581899dex991.htm">Cognex Corporation 2001 General Stock Option Plan, as amended and restated (incorporated by reference to Exhibit 99.1 to Cognex's Registration Statement on Form S-8 [Registration No. 333-224716])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10B *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120518000004/cgnx-20171231xexhibit10h.htm">Cognex Corporation 2007 Stock Option and Incentive Plan, as amended and restated (incorporated by reference to Exhibit 10H of Cognex's Annual Report on Form 10-K for the year ended December 31, 2017 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10C *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312513048665/d434050dex10k.htm">Form of Letter Agreement between Cognex Corporation and Anthony Sun (incorporated by reference to Exhibit 10K of Cognex's Annual Report on Form 10-K for the year ended December 31, 2012 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10D *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10r.htm">Form of Indemnification Agreement with each of the Directors of Cognex Corporation (incorporated by reference to Exhibit 10R of Cognex's Annual Report on Form 10-K for the year ended December 31, 2013 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10E *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10s.htm">Employment Agreement, dated June 17, 2008, by and between Cognex Corporation and Robert Willett (incorporated by reference to Exhibit 10S of Cognex's Annual Report on Form 10-K for the year ended December 31, 2013 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10F *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10t.htm">Amendment to Employment Agreement with Robert Willett, dated November 14, 2008 (incorporated by reference to Exhibit 10T of Cognex's Annual Report on Form 10-K for the year ended December 31, 2013 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10G *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10u.htm">Form of Stock Option Agreement (Non-Qualified) under 2007 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10U of Cognex's Annual Report on Form 10-K for the year ended December 31, 2013 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10H *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120518000004/cgnx-20171231xexhibit10o.htm">Form of Stock Option Agreement under 2001 General Stock Option Plan (incorporated by reference to Exhibit 10O of Cognex's Annual Report on Form 10-K for the year ended December 31, 2017 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10J *<br/></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120518000004/cgnx-20171231xexhibit10q.htm">Summary of Cognex Annual Bonus Program (incorporated by reference to Exhibit 10Q of Cognex's Annual Report on Form 10-K for the year ended December 31, 2017 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10K *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120520000002/cgnxformofrsuagreement.htm">Form of Restricted Stock Unit Agreement under the 2007 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10U of Cognex's Annual Report on Form 10-K for the year ended December 31, 2019 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10L *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120522000008/cgnx-20211231xexhibit10l.htm">Form of Performance Restricted Stock Unit Agreement under the 2007 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10L of Cognex&#8217;s Annual Report on Form 10-K for the year ended December 31, 2021 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10M *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312523135029/d255047dex101.htm">Cognex Corporation 2023 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10.1 of Cognex's Current Report on Form 8-K, as filed with the SEC on May 4, 2023 [File No. 1-34218)</a></span></div></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">70</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="-sec-extract:summary"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:14.149%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:82.918%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10N *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312523135029/d255047dex102.htm">Form of Non-Qualified Stock Option Agreement under the Cognex Corporation 2023 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10.2 of Cognex's Current Report on Form 8-K, as filed with the SEC on May 4, 2023 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10O *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312523135029/d255047dex103.htm">Form of Restricted Stock Unit Award Agreement under the Cognex Corporation 2023 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10.3 of Cognex's Current Report on Form 8-K, as filed with the SEC on May 4, 2023 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10P *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312523135029/d255047dex104.htm">Form of Performance Restricted Stock Unit Award Agreement under the Cognex Corporation 2023 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10.1 of Cognex's Current Report on Form 8-K, as filed with the SEC on May 4, 2023 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10Q *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120524000051/exhibit101-ptagreement.htm">Letter Agreement, dated January 3, 2024 between Cognex Corporation and Paul D. Todgham (incorporated by reference to Exhibit 10.1 Of Cognex's Quarterly Report on Form 10-Q for the quarter ended March 31, 2024 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10R *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120524000071/dennisfehr-relocationx10.htm">Relocation Letter Agreement, effective as of April 22, 2024, by and between Cognex Corporation and Dennis Fehr (incorporated by reference to Exhibit 10.1 of Cognex's Quarterly Report on Form 10-Q for the quarter ended June 30, 2024 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="a2024insidertradingpolic.htm">Cognex Corporation Insider Trading Policy (filed herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20241231xexhibit21.htm">Subsidiaries of the registrant (filed herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23.1</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20241231xexhibit231.htm">Consent of Grant Thornton LLP (filed herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31.1</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20241231xexhibit311.htm">Certification pursuant to Section 302 of the Sarbanes-Oxley Act of 2002 (CEO) (filed herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31.2</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20241231xexhibit312.htm">Certification pursuant to Section 302 of the Sarbanes-Oxley Act of 2002 (CFO) (filed herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32.1</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20241231xexhibit321.htm">Certification pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (CEO) (furnished herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32.2</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20241231xexhibit322.htm">Certification pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (CFO) (furnished herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">97</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/ix?doc=/Archives/edgar/data/0000851205/000085120524000051/cgnx-20240331.htm">Policy Relating to Recovery of Erroneously Awarded Compensation (as required by applicable listing standards adopted pursuant to 17 CFR 240.10D-1) (incorporated by reference to Exhibit 97 of Cognex's Annual Report on Form 10-K for the year ended December 31, 2023 [File No. 1-34281])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.SCH</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Schema Document (filed herewith)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.CAL</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Calculation Linkbase Document (filed herewith)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.LAB</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Label Linkbase Document (filed herewith)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.PRE</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Presentation Linkbase Document (filed herewith)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.DEF</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Schema Document (filed herewith)<br/></span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">104</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cover Page Interactive Data File (formatted as Inline XBRL with applicable taxonomy extension information contained in Exhibits 101*.) (filed herewith)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">* Indicated management contract or compensatory plan or arrangement</span></td></tr></table></div><div><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">71</span></div></div></div><div id="i67e131bb2c504a23903df9579998c003_259"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i67e131bb2c504a23903df9579998c003_7">Table of Contents</a></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SIGNATURES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the requirements of Section&#160;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 on the 13th day of February 2025.</span></div><div style="margin-top:10pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:511.50pt"><tr><td style="width:1.0pt"/><td style="width:40.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:463.75pt"/><td style="width:1.0pt"/></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">COGNEX CORPORATION</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:14pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By:</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">/s/&#160;&#160;&#160;&#160;Robert J. Willett</span></td></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Robert J. Willett</span></td></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President and Chief Executive Officer</span></td></tr></table></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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.</span></div><div style="margin-top:10pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:28.078%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:49.926%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.230%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Signature</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Title</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Date</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Robert J. Willett</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President, Chief Executive Officer, and Director (principal executive officer)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Robert J. Willett</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Dennis Fehr</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Senior Vice President of Finance and Chief Financial Officer (principal financial&#160;officer)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dennis Fehr</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Laura MacDonald</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vice President of Finance and Principal Accounting Officer (principal&#160;accounting&#160;officer)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Laura MacDonald</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Sachin Lawande</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sachin Lawande</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;John Lee</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">John Lee</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Angelos Papadimitriou</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Angelos Papadimitriou</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Dianne Parrotte</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dianne Parrotte</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Marjorie Sennett</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Marjorie Sennett</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Anthony Sun</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Anthony Sun</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">72</span></div></div></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-19
<SEQUENCE>2
<FILENAME>a2024insidertradingpolic.htm
<DESCRIPTION>EX-19
<TEXT>
<HTML>
<HEAD><!-- Document generated by Workiva Inc -->
<TITLE>a2024insidertradingpolic</TITLE>
</HEAD>
<BODY bgcolor="white">
<DIV align="center">
<DIV style="margin-left:1em;width:1055;"><!-- a2024insidertradingpolic001.jpg -->
<DIV style="padding-top:2em;">
<IMG src="a2024insidertradingpolic001.jpg" title="slide1" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">Insider Trading Policy  Version: 3.0    Cognex Corporation   Insider Trading Policy  1.0 POLICY OBJECTIVE, PURPOSE, SCOPE, REFERENCES  1.1 Objective  The objective of this Policy is to help non-employee members of Cognex Corporation&#8217;s board of directors (&#8220;Directors&#8221;),  officers of Cognex Corporation or an affiliate of Cognex Corporation (&#8220;Officers&#8221;), and employees of Cognex Corporation  or an affiliate of Cognex Corporation (&#8220;Employees,&#8221; and together with Officers, &#8220;Cognoids&#8221;) comply with insider trading  laws and to help prevent even the appearance of improper insider trading. &#8220;Cognex&#8221; means Cognex Corporation and  affiliates of Cognex Corporation.   1.2 Purpose  This Policy describes Cognex's global policy to promote compliance with securities laws with respect to purchases and  sales of Cognex Corporation securities.   1.3 Scope  This Policy applies to all Directors and Cognoids and their Affiliated Persons (&#8220;Insiders&#8221;). This Policy continues to apply to  Insiders following the termination of such person&#8217;s service to or employment with Cognex until any Material Non-Public  Information possessed by such person has been Widely Disseminated or is no longer material, whichever is earlier.  1.4 References  This Policy should be read in conjunction with other relevant Cognex policies and procedures that can be found on  Cognex&#8217;s 1 Vision Intranet site including Cognex&#8217;s Code of Business Conduct and Ethics. This Policy does not address  disclosure of Cognex information generally, which is covered in the Employee Handbook and non-disclosure agreements,  as applicable.  2.0 DEFINITIONS  2.1  &#8220;Affiliated Persons&#8221; means a person&#8217;s spouse, children, parents, siblings and any other members of their household;  and any investment fund, trust, retirement plan, partnership, corporation or other entity over which such person has  the ability to influence or direct investment decisions concerning securities.   2.2  &#8220;Known Insiders&#8221; means Directors, Officers, non-executive vice presidents and any Cognoid that by the nature of his  or her job responsibilities has access to Material Non-Public Information (including certain financial information)  regarding Cognex on a regular basis, and their respective Affiliated Persons. These positions include: the Corporate  Controller, the heads of Tax and Investor Relations, and other specifically identified members of the Chief Financial  Officer and/or Chief Executive Officer&#8217;s staff. The current list of Known Insiders is set forth on Appendix A.   2.3  &#8220;Material Non-Public Information&#8221; means information that is not yet generally known to the investing public and that  could reasonably be expected to affect, whether positively or negatively, the investment or voting decisions of a  shareholder or investor, significantly alter the total mix of information in the marketplace about Cognex, or could  reasonably be expected to affect the market price of Cognex Corporation securities. While it is not possible to identify  all information that would be deemed &#8220;material,&#8221; examples of material information include the following items:     </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- a2024insidertradingpolic002.jpg -->
<DIV style="padding-top:2em;">
<IMG src="a2024insidertradingpolic002.jpg" title="slide2" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">Insider Trading Policy  Version: 3.0    &#8226; Quarterly and annual bookings or financial  results;  &#8226; Financial guidance or outlooks;   &#8226; Changes in previously disclosed financial results,  guidance or outlooks;   &#8226; The declaration of cash dividends, stock  dividends, or stock splits, or any policy change  thereto;   &#8226; Joint ventures, mergers, acquisitions,  dispositions or tender offers;   &#8226; Changes in top management or the Board of  Directors;   &#8226; Major borrowings or the sale of additional  securities;   &#8226; Significant repurchases of stock, or intentions to  do so;   &#8226; Major legal actions filed by or against Cognex;   &#8226; Significant new product launches or inventions;   &#8226; A decision to take a material write-off;   &#8226; A major change in the accounting treatment of  financial statements;   &#8226; The closing of a significant plant or other  facility; and   &#8226; The discontinuation or sale of a significant  product line or business.     2.5 &#8220;Open Order&#8221; an order to buy or sell Cognex securities that remains in effect until it is either cancelled or executed. If  subject to quiet periods, all Open Orders must be either cancelled or executed prior to entering a Quiet Period. If an  Open Order exists when you obtain Material Non-Public Information, the Open Order must be cancelled immediately  and not executed. If placing an Open Order with a broker, you should inform the broker that you are subject to this  Policy, the pre-clearance procedures and quiet periods, as applicable, to help assure that all Open Orders are cancelled  prior to any quiet periods. Exercise caution when placing Open Orders, such as limit orders, particularly where the  order is likely to remain outstanding for an extended period of time, except in accordance with an Approved 10b5-1  Plan (as discussed below). Open Orders may result in the execution of a trade at a time when you are aware of Material  Non-Public Information or are otherwise not permitted to trade in Cognex securities, which may result in inadvertent  insider trading violations, Section 16 violations (for Reporting Insiders) and violations of this Policy.  2.6  &#8220;Widely Disseminated&#8221; with respect to Material Non-Public Information, means, once the information has been  disclosed broadly to the marketplace, such as after a press release is widely distributed on the Cognex website or by  a news or wire service such as PRNewswire, a Form 8-K or other report is filed with the U.S. Securities and Exchange  Commission (&#8220;SEC&#8221;), or an announcement is made at a conference for which the public had adequate notice and to  which the public was granted access.   3.0 PROHIBITED ACTIVITIES OF INSIDERS   Insiders are prohibited from engaging in the following activities:  3.1  Trading, having others trade for the Insider, or recommending that another person trade (&#8220;tipping&#8221;), in (a) Cognex  Corporation securities or (b) the securities of another publicly traded company (such as Cognex customers, vendors  and suppliers) based upon Material Non-Public Information until the information has been Widely Disseminated.  3.2  Disclosing (including by posting on social media, an Internet chat room, message board, or similar Internet-based  forum) Material Non-Public Information about (a) Cognex or (b) another publicly traded company (such as Cognex  customers, vendors and suppliers) obtained through the Insider&#8217;s employment or association with Cognex to anyone  except Cognoids or third-party agents (such as outside legal counsel) whose positions require them to know such  information, until such information has been Widely Disseminated. This includes disclosure to a person&#8217;s family  members, the media, investment analysts or others in the financial community, and other persons, regardless of  whether they learn the information directly from the Insider or indirectly by overhearing the Insider discuss the  information in a public place, such as on an elevator, airplane, or at social or business gatherings.   </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- a2024insidertradingpolic003.jpg -->
<DIV style="padding-top:2em;">
<IMG src="a2024insidertradingpolic003.jpg" title="slide3" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">Insider Trading Policy  Version: 3.0                 Page: 3 of 6  3.3 Short selling (the sale of shares of Cognex Corporation stock that the seller does not own but instead borrows to sell)  of Cognex Corporation stock. Such sales are made in anticipation of a decline in the price of Cognex Corporation  stock to enable the seller to cover the sale with a purchase at a later date, at a lower price, and thus at a profit. Any  Cognoid engaged in short sales of Cognex stock is subject to disciplinary action including immediate termination.   3.5 Entering into any hedging or monetization transactions or similar arrangements with respect to Cognex Corporation  securities. Hedging means to purchase or sell financial instruments (including prepaid variable forward contracts,  equity swaps, collars, and exchange funds), or otherwise engage in transactions, that hedge or offset, or are designed  to hedge or offset, any decrease in the market value of Cognex Corporation securities.  3.6 Trading, either directly or indirectly, in exchange-traded options for Cognex Corporation stock or any similar type of  instrument or contract for which the underlying basis is the future price of Cognex Corporation stock (&#8220;Derivatives&#8221;).  An exchange-traded option is the right either to buy or to sell Cognex stock at a fixed price before the option&#8217;s  expiration date. An exchange-traded option that gives right to buy Cognex stock is a call option, and an exchange- traded option that gives a right to sell Cognex stock is a put option. Any Cognoid found to be trading in Derivatives for  Cognex stock is subject to disciplinary action including immediate termination.   4.0 PROHIBITED ACTIVITIES OF KNOWN INSIDERS   In addition to the prohibited activities detailed above for Insiders, Known Insiders are prohibited from engaging in the  following activities:   4.1  Pledging any Cognex Corporation securities as collateral for a loan unless the pledge has been approved by the  Compensation Committee of the Cognex Corporation Board of Directors.  4.2 Giving or making any other transfer of Cognex Corporation securities without consideration (e.g., a gift) during a  period when the Known Insider is not permitted to transact in Cognex Corporation securities.  4.3 Selling any Cognex Corporation securities of the same class during the six months following the purchase, or purchasing  any Cognex Corporation securities of the same class during the six months following the sale.  5.0 PRE-CLEARANCE AND REPORTING OF TRANSACTIONS  5.1  All Known Insiders must receive pre-clearance from Cognex&#8217;s Chief Legal Officer or his or her designee (or if our Chief  Legal Officer is the requestor, Cognex&#8217;s Chief Financial Officer or his or her designee) prior to engaging in any  transaction(s) in Cognex Corporation securities (even when Cognex is not in a quiet period). A request for preclearance  to engage in transactions involving Cognex Corporation securities should be submitted to our Chief Legal Officer via  email no more than two business days in advance of the proposed transaction or Open Order. Clearance of a  transaction does not constitute a recommendation by Cognex or any Cognoid that you engage in the proposed  transaction. When a request for preclearance is made, the Known Insider should summarize the details of the  proposed transaction and confirm in the request that he or she (i) has reviewed this Policy; and (ii) is not aware of any  Material Non-Public Information. If our Chief Legal Officer grants preclearance, the Known Insider may make the trade  or enter into an Open Order at any time within, but not after, two trading days of receipt of preclearance. If the Known  Insider becomes aware of Material Non-Public Information before the transaction is completed (whether through an  Open Order or otherwise), the preclearance shall be void and the transaction must not be completed. If permission  to engage in the transaction is denied, the Known Insider must refrain from initiating any transaction in Cognex  Corporation securities and may not inform any other person of the denial.  5.2 Directors and those Cognoids designated by the Cognex Board of Directors as &#8220;executive officers&#8221; for SEC reporting  purposes (&#8220;Reporting Insiders&#8221;) are obligated to file certain reports with the SEC when they engage in transactions  involving Cognex Corporation securities. Reporting Insiders are required to report to the Chief Legal Officer or  </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- a2024insidertradingpolic004.jpg -->
<DIV style="padding-top:2em;">
<IMG src="a2024insidertradingpolic004.jpg" title="slide4" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">Insider Trading Policy  Version: 3.0                 Page: 4 of 6  Cognex&#8217;s Equity Manager any transaction (including any transactions pursuant to a Rule 10b5-1 Plan) in Cognex  Corporation securities by them within one business day of the day in which the transaction occurs. The Reporting  Insider retains responsibility for these reports regardless of who assists in their preparation and filing.   6.0  QUIET PERIODS; RULE 10B5-1 TRADING PLANS  6.1 From time-to-time, the Chief Legal Officer or his designee, at his or her discretion, may notify Insiders that they are  subject to a Cognex-designated &#8220;quiet period.&#8221;  Such Insiders and all Known Insiders are prohibited from transacting  in Cognex Corporation securities during quiet periods, including under Open Orders (other than under an Approved  Rule 10b5-1 Trading Plan). The current quiet period schedule is detailed in Appendix B.   6.2 The prohibition set forth in Section 6.1 does not apply to the exercise of stock options with no associated sale of the  underlying stock. It does apply, however, to the use of outstanding Cognex Corporation securities to constitute part  or all of the exercise price of a stock option, any same day sale of an option, or any other market sale. For purposes of  this Section 6.2, &#8220;same day sale&#8221; of a stock option means the exercise of a stock option simultaneously with the sale  of the underlying Cognex Corporation stock. As a result, the person does not use his or her cash to exercise a stock  option, and instead receives the net proceeds from the transaction.   6.3 Cognex Corporation securities may be purchased or sold by Known Insiders without complying with the procedures  set forth in Sections 6.1 and 6.2 under a pre-existing written plan, contract or instruction that satisfies the  requirements of Rule 10b5-1 under the Securities Exchange Act of 1934, as amended (an &#8220;Approved Rule 10b5-1  Plan&#8221;) that:  &#8226; has been pre-approved by Cognex&#8217;s Chief Legal Officer or his or her designee, before adopted (and, if  modified, such modifications have been reviewed and approved by our Chief Legal Officer or his or her  designee);   &#8226; was adopted (and amended, if applicable) outside of a quiet period;  &#8226; provides that no trades may occur thereunder until expiration of the applicable cooling-off period  specified in Rule 10b5-1(c)(ii)(B), and no trades occur until after such cooling-off period;  &#8226; was entered into in good faith by the Known Insider, and not as part of a plan or scheme to evade the  prohibitions of Rule 10b5-1, at a time when the Known Insider is not in possession of Material Non- Public Information; and, if the Known Insider is a Director or Officer, includes representations certifying  to that effect;  &#8226; gives a third party the discretionary authority to execute purchases and sales, outside of the Known  Insider&#8217;s control, so long as such third party does not possess any Material Non-Public Information; or  explicitly specifies the securities to be purchased or sold, the number of shares, the prices and/or dates  of transactions, or other formula(s) describing such transactions;  &#8226; allows for only one Rule 10b5-1 Plan designed to effect the open-market purchase or sale of the total  amount of securities as a single transaction (a single-trade plan) to be maintained by the Known Insider  with a 12-month period; and  &#8226; is the only outstanding Rule 10b5-1 Plan entered into by the Known Insider (subject to the exceptions  set out in Rule 10b5-1(c)(ii)(D)).    6.4 The Known Insider should instruct the third party effecting such transactions on its behalf under an Approved 10b5- 1 Plan to send duplicate confirmations of all transactions to Cognex&#8217;s Equity Manager.  7.0 INDIVIDUAL RESPONSIBILITY   Insiders are responsible for complying with this Policy and all applicable securities laws. Insiders are expected to exercise  judgment prior to any transaction in Cognex Corporation securities. Each Director and Cognoid is responsible for ensuring  </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- a2024insidertradingpolic005.jpg -->
<DIV style="padding-top:2em;">
<IMG src="a2024insidertradingpolic005.jpg" title="slide5" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">Insider Trading Policy  Version: 3.0                 Page: 5 of 6  compliance with this Policy by his or her Affiliated Persons. In all cases, the responsibility for determining whether an  Insider is in possession of Material Non-Public Information rests with that individual, and any action on the part of Cognex  or any Cognoid pursuant to this Policy does not in any way constitute legal advice or insulate an individual from liability  under applicable securities laws. Insiders may have to delay a proposed transaction in Cognex Corporation securities even  if they planned to make the transaction before learning of Material Non-Public Information and even though they believe  they may suffer an economic loss or miss a profit by waiting.  8.0 COMPLIANCE; REPORTING VIOLATIONS  8.1 Any Cognoid, regardless of position or title, who violates any provision of this Policy may be subject to disciplinary  action, up to and including termination of employment.  8.2 A person who violates insider trading laws by engaging in transactions in a company&#8217;s securities when he or she has  Material Non-Public Information can be sentenced to a substantial jail term and required to pay a criminal penalty of  several times the amount of profit gained or loss avoided. In addition, a person who recommends that another person  trade based on Material Non-Public Information may also be liable for transactions by the person to whom he or she  has disclosed Material Non-Public Information. The SEC can also seek substantial civil penalties from any person who,  at the time of an insider trading violation, &#8220;directly or indirectly controlled the person who committed such violation.&#8221;  8.3 If any Director or Cognoid violates this Policy or any federal or state laws governing insider trading, or know of any  such violation by any Insider, such person must report the violation immediately to the Chief Legal Officer or his or  her designee (508-650-3000), or by submitting a complaint via Cognex&#8217;s third-party &#8220;Integrity Hotline,&#8221; which provides  both phone-based and online anonymous reporting options (www.cognex.com/hotline). Such person may also raise  the matter with the Chairman of the Audit Committee of our Board of Directors by U.S. mail to Audit Committee  Chairman, Cognex Corporation, One Vision Drive, Natick, MA 01760.  9.0 ADMINISTRATION  9.1 Cognex reserves the right to change, modify, or delete the provisions of this Policy without notice.   9.2 The Legal Department is responsible for the administration of this Policy. All Cognoids are responsible for consulting  and complying with the most current version of this Policy. If you have any questions about this Policy, please contact  the Legal Department.  APPENDIX A: LIST OF KNOWN INSIDERS   This list is separately posted on the Investor Relations section of Cognex&#8217;s 1 Vision Intranet. Any change to the list of  Known Insiders will be communicated via posting on the Investor Relations section of Cognex&#8217;s 1 Vision Intranet.  APPENDIX B: QUIET PERIOD SCHEDULE  This schedule is separately posted on the Investor Relations section of Cognex&#8217;s 1 Vision Intranet. Any change to the quiet  period schedule will be communicated via posting on the Investor Relations section of Cognex&#8217;s 1 Vision Intranet.          </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- a2024insidertradingpolic006.jpg -->
<DIV style="padding-top:2em;">
<IMG src="a2024insidertradingpolic006.jpg" title="slide6" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">Insider Trading Policy  Version: 3.0                 Page: 6 of 6  DOCUMENT TRACKING  Policy Name Insider Trading Policy  Policy Version V3.0 2024_December  Policy Scope All Cognoids and Directors  Policy Applicability All Cognex entities worldwide  Policy Owner Legal Department  Policy Review Frequency Every Three Years  Policy Original Effective Date  June 12, 2012  Policy Latest Revision Date  December 16, 2024  Revision History  Date M/D/Y Ver. Author Nature of Change  06/12/2012 V1.0 Investor Relations New Policy  10/27/2020 V2.0 Mark Fennell Updated Policy to align with Cognex practices  12/16/2024 V3.0 Mark Fennell Updated Policy to modernize and reflect  current regulations              </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
</DIV>
</DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-21
<SEQUENCE>3
<FILENAME>cgnx-20241231xexhibit21.htm
<DESCRIPTION>EX-21
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i572a8ef70ec04a43bce6512f7db0dd40_1"></div><div style="min-height:72pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 21</font></div><div><font><br></font></div></div><div style="text-align:right"><font><br></font></div><div style="margin-bottom:4pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION</font></div><div style="margin-bottom:4pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%">SUBSIDIARIES OF THE REGISTRANT</font></div><div style="margin-bottom:4pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">As of December 31, 2024, the registrant had the following direct and indirect subsidiaries, the financial statements of which are all included in the consolidated financial statements of the registrant&#58;</font><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.878%"><tr><td style="width:1.0%"></td><td style="width:51.898%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:29.045%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.757%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-bottom:4pt;padding-left:36pt;padding-right:36pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">NAME OF SUBSIDIARY</font></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-bottom:4pt;padding-left:16.87pt;padding-right:16.87pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">STATE&#47;COUNTRY OF INCORPORATION</font></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-bottom:4pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">PERCENT OWNERSHIP</font></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Canada, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Canada Technology, Inc.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">California</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex EnShape GmbH</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Germany</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Europe B.V.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Netherlands</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Europe, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Foreign Sales Corporation</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Barbados</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Germany, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Massachusetts</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Germany Aachen GmbH</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Germany</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Goruntu Sistemleri Satis ve Ticaret Limited Sirketi</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Turkey</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Hungary Kft.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Hungary</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex International, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Ireland Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Ireland</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex K.K.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Japan</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Korea Co., Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">South Korea</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex, Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Ireland</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Malaysia Sdn. Bhd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Malaysia</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Mexico S. de R.L. de C.V. </font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Mexico</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Poland sp. z.o.o.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Poland</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Representacao Comercial E Participacoes Ltda.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Brazil</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Sensors India Private Limited</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">India</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Services, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Service Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Ireland</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Singapore, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Switzerland GmbH</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Switzerland</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Taiwan, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt;text-indent:-9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Technology and Investment LLC</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">California</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex UK, Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">United Kingdom</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Vietnam Company Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Vietnam</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Vision Inspection System (Shanghai) Co., Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">China</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Vision Spain, S.L.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Spain</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Vision (Thailand) Limited</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Thailand</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Vision Drive, Inc.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">One Vision Drive LLC </font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Massachusetts</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">SAC Sirius Advanced Cybernetics GmbH</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Germany</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Singapore Manufacturing PTE. Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Singapore</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">MV Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Hong Kong</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">MV Japan Co., Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Japan</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Moritex Corporation</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Japan</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">MORITEX North America Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">California</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Moritex Asia Co., Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Hong Kong</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Moritex Technologies (Shenzhen) Co., Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">China</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Moritex Asia Pacific PTE., Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Singapore</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Moritex Vietnam Co., Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Vietnam</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr></table></div><div style="padding-left:9pt"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>4
<FILENAME>cgnx-20241231xexhibit231.htm
<DESCRIPTION>EX-23.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i5ac4b11be0304d2db245289e43d9649d_1"></div><div style="min-height:72pt;width:100%"><div style="margin-bottom:10pt;text-align:right"><font><br></font></div><div style="margin-bottom:10pt;text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:138%">EXHIBIT 23.1</font></div><div><font><br></font></div></div><div style="margin-bottom:2pt;padding-left:9pt;text-align:justify"><font><br></font></div><div style="margin-bottom:10pt;text-align:right"><font><br></font></div><div style="margin-bottom:4pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><font><br></font></div><div style="margin-bottom:4pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</font></div><div style="margin-bottom:4pt;padding-left:9pt;text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:127%">We have issued our reports dated February 13, 2025, with respect to the consolidated financial statements and internal control over financial reporting included in the Annual Report of Cognex Corporation on Form 10-K for the year ended December 31, 2024. We consent to the incorporation by reference of said reports in the Registration Statements of Cognex Corporation on Forms S-8, including post-effective amendments (File No. 333-271685, 333-150315&#59; 333-206081, 333-224716, and 333-100709). </font></div><div><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:127%">&#47;s&#47; GRANT THORNTON LLP</font></div><div><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:127%">Boston, Massachusetts</font></div><div style="margin-bottom:4pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">February&#160;13, 2025 </font></div><div style="padding-left:9pt"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>5
<FILENAME>cgnx-20241231xexhibit311.htm
<DESCRIPTION>EX-31.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i7c0aa5010f104618838f4141854bfc6b_1"></div><div style="min-height:72pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 31.1</font></div><div><font><br></font></div></div><div style="text-align:right"><font><br></font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">CERTIFICATION</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">I, Robert J. Willett, certify that&#58;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:2.858%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.152%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.152%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:86.438%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">I have reviewed this Annual Report on Form 10-K of Cognex Corporation&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">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&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">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&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have&#58;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">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&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">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&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The registrant&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or persons performing the equivalent functions)&#58;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">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&#8217;s ability to record, process, summarize and report financial information&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</font></td></tr></table></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.807%"><tr><td style="width:1.0%"></td><td style="width:4.879%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:29.841%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.042%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.085%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.708%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.533%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.547%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:38.365%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47; Robert J. Willett</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Robert J. Willett</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President and Chief Executive Officer<br>(Principal Executive Officer)</font></td></tr></table></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>6
<FILENAME>cgnx-20241231xexhibit312.htm
<DESCRIPTION>EX-31.2
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i2b50942d5b1a439983e97087fdc43292_1"></div><div style="min-height:72pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 31.2</font></div><div style="text-align:right"><font><br></font></div><div><font><br></font></div></div><div style="text-align:right"><font><br></font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">CERTIFICATION</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">I, Dennis Fehr, certify that&#58;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:2.858%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.152%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.152%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:86.438%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">I have reviewed this Annual Report on Form 10-K of Cognex Corporation&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">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&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">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&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have&#58;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">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&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">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&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The registrant&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or persons performing the equivalent functions)&#58;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">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&#8217;s ability to record, process, summarize and report financial information&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</font></td></tr></table></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"></td><td style="width:4.791%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:29.386%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.009%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.023%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.170%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.536%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:39.551%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47; Dennis Fehr</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dennis Fehr</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Senior Vice President of Finance and Chief Financial Officer<br>(Principal Financial Officer)</font></td></tr></table></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>7
<FILENAME>cgnx-20241231xexhibit321.htm
<DESCRIPTION>EX-32.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i6ca152a9922b452b9d8e73fa877c172f_1"></div><div style="min-height:72pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 32.1*</font></div><div><font><br></font></div></div><div style="text-align:right"><font><br></font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CERTIFICATION PURSUANT TO</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">18 U.S.C. 1350,</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">AS ADOPTED PURSUANT TO</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The undersigned officer of Cognex Corporation (the &#8220;Company&#8221;) hereby certifies to his knowledge that the Company&#8217;s Annual Report on Form 10-K for the year ended December&#160;31, 2024 (the &#8220;Report&#8221;), as filed with the Securities and Exchange Commission on the date hereof, fully complies with the requirements of Section&#160;13(a) or 15(d), as applicable, of the Securities Exchange Act of 1934, as amended, and that the information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.929%"><tr><td style="width:1.0%"></td><td style="width:4.933%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:30.121%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.062%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.123%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.815%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:4.329%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.554%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:37.063%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47; Robert J. Willett</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Robert J. Willett</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President and Chief Executive Officer         (Principal Executive Officer)</font></td></tr></table></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:0.1%"></td><td style="width:2.142%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:96.558%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This certification shall not be deemed &#8220;filed&#8221; for purposes of Section&#160;18 of the Securities Exchange Act of 1934, or otherwise subject to the liability of that section, nor shall it be deemed to be incorporated by reference into any filing under the Securities Act of 1933 or the Securities Exchange Act of 1934.</font></td></tr></table></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>8
<FILENAME>cgnx-20241231xexhibit322.htm
<DESCRIPTION>EX-32.2
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2025 Workiva -->
<title>Document</title></head><body><div id="i1db3e249f9094990b4750438408a4fa9_1"></div><div style="min-height:72pt;width:100%"><div><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 32.2*</font></div><div><font><br></font></div></div><div style="text-align:right"><font><br></font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CERTIFICATION PURSUANT TO</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">18 U.S.C. 1350,</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">AS ADOPTED PURSUANT TO</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The undersigned officer of Cognex Corporation (the &#8220;Company&#8221;) hereby certifies to his knowledge that the Company&#8217;s Annual Report on Form 10-K for the year ended December&#160;31, 2024 (the &#8220;Report&#8221;), as filed with the Securities and Exchange Commission on the date hereof, fully complies with the requirements of Section&#160;13(a) or 15(d), as applicable, of the Securities Exchange Act of 1934, as amended, and that the information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:5.195%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:29.207%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.996%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.999%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.466%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.145%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:39.460%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 13, 2025</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47; Dennis Fehr</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dennis Fehr</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Senior Vice President of Finance and Chief Financial Officer (Principal Financial Officer)</font></td></tr></table></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:0.1%"></td><td style="width:2.142%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:96.558%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This certification shall not be deemed &#8220;filed&#8221; for purposes of Section&#160;18 of the Securities Exchange Act of 1934, or otherwise subject to the liability of that section, nor shall it be deemed to be incorporated by reference into any filing under the Securities Act of 1933 or the Securities Exchange Act of 1934.</font></td></tr></table></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>9
<FILENAME>cgnx-20241231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:6abacc18-a2b7-49fc-a7c2-9a55de473aa7,g:b2bf2ad7-589f-41d7-85c1-902f84842ef8-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:cgnx="http://cognex.com/20241231" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dtr-types1="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://cognex.com/20241231">
  <xs:import namespace="http://fasb.org/srt/2024" schemaLocation="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd"/>
  <xs:import namespace="http://fasb.org/us-gaap/2024" schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd"/>
  <xs:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/country/2024" schemaLocation="https://xbrl.sec.gov/country/2024/country-2024.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/currency/2024" schemaLocation="https://xbrl.sec.gov/currency/2024/currency-2024.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/cyd-af-sub/2024" schemaLocation="https://xbrl.sec.gov/cyd/2024/cyd-af-sub-2024.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/dei/2024" schemaLocation="https://xbrl.sec.gov/dei/2024/dei-2024.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/ecd/2024" schemaLocation="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd"/>
  <xs:annotation>
    <xs:appinfo>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20241231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20241231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20241231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20241231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="CoverPage" roleURI="http://cognex.com/role/CoverPage">
        <link:definition>0000001 - Document - Cover Page</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AuditInformation" roleURI="http://cognex.com/role/AuditInformation">
        <link:definition>0000002 - Document - Audit Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CONSOLIDATEDSTATEMENTSOFOPERATIONS" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS">
        <link:definition>9952151 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME">
        <link:definition>9952152 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical">
        <link:definition>9952153 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CONSOLIDATEDBALANCESHEETS" roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS">
        <link:definition>9952154 - Statement - CONSOLIDATED BALANCE SHEETS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CONSOLIDATEDBALANCESHEETSParenthetical" roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical">
        <link:definition>9952155 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CONSOLIDATEDSTATEMENTSOFCASHFLOWS" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS">
        <link:definition>9952156 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY">
        <link:definition>9952157 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical">
        <link:definition>9952158 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPolicies" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPolicies">
        <link:definition>9952159 - Disclosure - Summary of Significant Accounting Policies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="NewPronouncements" roleURI="http://cognex.com/role/NewPronouncements">
        <link:definition>9952160 - Disclosure - New Pronouncements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurements" roleURI="http://cognex.com/role/FairValueMeasurements">
        <link:definition>9952161 - Disclosure - Fair Value Measurements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestments" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestments">
        <link:definition>9952162 - Disclosure - Cash, Cash Equivalents, and Investments</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Inventories" roleURI="http://cognex.com/role/Inventories">
        <link:definition>9952163 - Disclosure - Inventories</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyPlantandEquipment" roleURI="http://cognex.com/role/PropertyPlantandEquipment">
        <link:definition>9952164 - Disclosure - Property, Plant, and Equipment</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesLeases" roleURI="http://cognex.com/role/LeasesLeases">
        <link:definition>9952165 - Disclosure - Leases Leases</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Goodwill" roleURI="http://cognex.com/role/Goodwill">
        <link:definition>9952166 - Disclosure - Goodwill</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleAssets" roleURI="http://cognex.com/role/IntangibleAssets">
        <link:definition>9952167 - Disclosure - Intangible Assets</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AccruedExpenses" roleURI="http://cognex.com/role/AccruedExpenses">
        <link:definition>9952168 - Disclosure - Accrued Expenses</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingencies" roleURI="http://cognex.com/role/CommitmentsandContingencies">
        <link:definition>9952169 - Disclosure - Commitments and Contingencies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IndemnificationProvisions" roleURI="http://cognex.com/role/IndemnificationProvisions">
        <link:definition>9952170 - Disclosure - Indemnification Provisions</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DerivativeInstruments" roleURI="http://cognex.com/role/DerivativeInstruments">
        <link:definition>9952171 - Disclosure - Derivative Instruments</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognition" roleURI="http://cognex.com/role/RevenueRecognition">
        <link:definition>9952172 - Disclosure - Revenue Recognition</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ShareholdersEquity" roleURI="http://cognex.com/role/ShareholdersEquity">
        <link:definition>9952173 - Disclosure - Shareholders' Equity</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensation" roleURI="http://cognex.com/role/StockBasedCompensation">
        <link:definition>9952174 - Disclosure - Stock-Based Compensation</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="EmployeeSavingsPlan" roleURI="http://cognex.com/role/EmployeeSavingsPlan">
        <link:definition>9952175 - Disclosure - Employee Savings Plan</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxes" roleURI="http://cognex.com/role/IncomeTaxes">
        <link:definition>9952176 - Disclosure - Income Taxes</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="WeightedAverageShares" roleURI="http://cognex.com/role/WeightedAverageShares">
        <link:definition>9952177 - Disclosure - Weighted Average Shares</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentandGeographicInformation" roleURI="http://cognex.com/role/SegmentandGeographicInformation">
        <link:definition>9952178 - Disclosure - Segment and Geographic Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BusinessAcquisitions" roleURI="http://cognex.com/role/BusinessAcquisitions">
        <link:definition>9952179 - Disclosure - Business Acquisitions</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LossfromFire" roleURI="http://cognex.com/role/LossfromFire">
        <link:definition>9952180 - Disclosure - Loss from Fire</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SubsequentEvents" roleURI="http://cognex.com/role/SubsequentEvents">
        <link:definition>9952181 - Disclosure - Subsequent Events</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ScheduleIIValuationandQualifyingAccounts" roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts">
        <link:definition>9952182 - Disclosure - Schedule II - Valuation and Qualifying Accounts</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesPolicies" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies">
        <link:definition>9955511 - Disclosure - Summary of Significant Accounting Policies (Policies)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurementsTables" roleURI="http://cognex.com/role/FairValueMeasurementsTables">
        <link:definition>9955512 - Disclosure - Fair Value Measurements (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsTables" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsTables">
        <link:definition>9955513 - Disclosure - Cash, Cash Equivalents, and Investments (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InventoriesTables" roleURI="http://cognex.com/role/InventoriesTables">
        <link:definition>9955514 - Disclosure - Inventories (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyPlantandEquipmentTables" roleURI="http://cognex.com/role/PropertyPlantandEquipmentTables">
        <link:definition>9955515 - Disclosure - Property, Plant, and Equipment (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesTables" roleURI="http://cognex.com/role/LeasesTables">
        <link:definition>9955516 - Disclosure - Leases (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="GoodwillTables" roleURI="http://cognex.com/role/GoodwillTables">
        <link:definition>9955517 - Disclosure - Goodwill (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleAssetsTables" roleURI="http://cognex.com/role/IntangibleAssetsTables">
        <link:definition>9955518 - Disclosure - Intangible Assets (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AccruedExpensesTables" roleURI="http://cognex.com/role/AccruedExpensesTables">
        <link:definition>9955519 - Disclosure - Accrued Expenses (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DerivativeInstrumentsTables" roleURI="http://cognex.com/role/DerivativeInstrumentsTables">
        <link:definition>9955520 - Disclosure - Derivative Instruments (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionTables" roleURI="http://cognex.com/role/RevenueRecognitionTables">
        <link:definition>9955521 - Disclosure - Revenue Recognition (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationTables" roleURI="http://cognex.com/role/StockBasedCompensationTables">
        <link:definition>9955522 - Disclosure - Stock-Based Compensation (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesTables" roleURI="http://cognex.com/role/IncomeTaxesTables">
        <link:definition>9955523 - Disclosure - Income Taxes (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="WeightedAverageSharesTables" roleURI="http://cognex.com/role/WeightedAverageSharesTables">
        <link:definition>9955524 - Disclosure - Weighted Average Shares (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentandGeographicInformationTables" roleURI="http://cognex.com/role/SegmentandGeographicInformationTables">
        <link:definition>9955525 - Disclosure - Segment and Geographic Information (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BusinessAcquisitionsTables" roleURI="http://cognex.com/role/BusinessAcquisitionsTables">
        <link:definition>9955526 - Disclosure - Business Acquisitions - (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail">
        <link:definition>9955527 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails">
        <link:definition>9955528 - Disclosure - Summary of Significant Accounting Policies - Intangible Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesWarrantyDetails" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails">
        <link:definition>9955529 - Disclosure - Summary of Significant Accounting Policies - Warranty (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails">
        <link:definition>9955530 - Disclosure - Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails">
        <link:definition>9955531 - Disclosure - Summary of Significant Accounting Policies - Advertising Costs (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails">
        <link:definition>9955532 - Disclosure - Summary of Significant Accounting Policies - Comprehensive Income (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" roleURI="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail">
        <link:definition>9955533 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail">
        <link:definition>9955534 - Disclosure - Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsAdditionalInformationDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail">
        <link:definition>9955535 - Disclosure - Cash, Cash Equivalents and Investments - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail">
        <link:definition>9955536 - Disclosure - Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail">
        <link:definition>9955537 - Disclosure - Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails">
        <link:definition>9955538 - Disclosure - Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail">
        <link:definition>9955539 - Disclosure - Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InventoriesInventoriesDetail" roleURI="http://cognex.com/role/InventoriesInventoriesDetail">
        <link:definition>9955540 - Disclosure - Inventories - Inventories (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail">
        <link:definition>9955541 - Disclosure - Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyPlantandEquipmentAdditionalInformationDetails" roleURI="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails">
        <link:definition>9955542 - Disclosure - Property, Plant and Equipment - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesDetails" roleURI="http://cognex.com/role/LeasesDetails">
        <link:definition>9955543 - Disclosure - Leases (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LeasesScheduleofPaymentsDetails" roleURI="http://cognex.com/role/LeasesScheduleofPaymentsDetails">
        <link:definition>9955544 - Disclosure - Leases - Schedule of Payments (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="GoodwillChangesintheCarryingValueofGoodwillDetail" roleURI="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail">
        <link:definition>9955545 - Disclosure - Goodwill - Changes in the Carrying Value of Goodwill (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleAssetsAmortizedIntangibleAssetsDetail" roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail">
        <link:definition>9955546 - Disclosure - Intangible Assets - Amortized Intangible Assets (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleAssetsNarrativeDetails" roleURI="http://cognex.com/role/IntangibleAssetsNarrativeDetails">
        <link:definition>9955547 - Disclosure - Intangible Assets - Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail">
        <link:definition>9955548 - Disclosure - Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AccruedExpensesConstituentsofAccruedExpensesDetail" roleURI="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail">
        <link:definition>9955549 - Disclosure - Accrued Expenses - Constituents of Accrued Expenses (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AccruedExpensesChangesinWarrantyObligationsDetail" roleURI="http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail">
        <link:definition>9955550 - Disclosure - Accrued Expenses - Changes in Warranty Obligations (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingenciesAdditionalInformationDetail" roleURI="http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail">
        <link:definition>9955551 - Disclosure - Commitments and Contingencies - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DerivativeInstrumentsAdditionalDetailsDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails">
        <link:definition>9955552 - Disclosure - Derivative Instruments - Additional Details (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DerivativeInstrumentsOutstandingForwardContractsDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails">
        <link:definition>9955553 - Disclosure - Derivative Instruments - Outstanding Forward Contracts (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DerivativeInstrumentsBalanceSheetLocationDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails">
        <link:definition>9955554 - Disclosure - Derivative Instruments - Balance Sheet Location (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails">
        <link:definition>9955555 - Disclosure - Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails">
        <link:definition>9955556 - Disclosure - Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionNarrativesDetails" roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails">
        <link:definition>9955557 - Disclosure - Revenue Recognition - Narratives (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionDisaggregationbyGeographyandTypeDetails" roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails">
        <link:definition>9955558 - Disclosure - Revenue Recognition - Disaggregation by Geography and Type (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionAllowanceforCreditLossDetails" roleURI="http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails">
        <link:definition>9955559 - Disclosure - Revenue Recognition - Allowance for Credit Loss (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails" roleURI="http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails">
        <link:definition>9955560 - Disclosure - Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ShareholdersEquityAdditionalInformationDetail" roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail">
        <link:definition>9955561 - Disclosure - Shareholders' Equity - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseAdditionalInformationDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail">
        <link:definition>9955562 - Disclosure - Stock-Based Compensation Expense - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseSummaryofStockOptionActivityDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail">
        <link:definition>9955563 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail">
        <link:definition>9955564 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail">
        <link:definition>9955565 - Disclosure - Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail">
        <link:definition>9955566 - Disclosure - Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" roleURI="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails">
        <link:definition>9955567 - Disclosure - Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="EmployeeSavingsPlanAdditionalInformationDetail" roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail">
        <link:definition>9955568 - Disclosure - Employee Savings Plan - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesAdditionalInformationDetails" roleURI="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails">
        <link:definition>9955569 - Disclosure - Income Taxes - Additional Information (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" roleURI="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails">
        <link:definition>9955570 - Disclosure - Income Taxes - Constituents of Provision for Income Taxes (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" roleURI="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails">
        <link:definition>9955571 - Disclosure - Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails" roleURI="http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails">
        <link:definition>9955572 - Disclosure - Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesConstituentsofDeferredTaxAssetsDetails" roleURI="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails">
        <link:definition>9955573 - Disclosure - Income Taxes - Constituents of Deferred Tax Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="WeightedAverageSharesCalculationofWeightedAverageSharesDetail" roleURI="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail">
        <link:definition>9955574 - Disclosure - Weighted Average Shares - Calculation of Weighted Average Shares (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="WeightedAverageSharesAdditionalInformationDetail" roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail">
        <link:definition>9955575 - Disclosure - Weighted Average Shares - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentandGeographicInformationAdditionalInformationDetail" roleURI="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail">
        <link:definition>9955576 - Disclosure - Segment and Geographic Information - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" roleURI="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail">
        <link:definition>9955577 - Disclosure - Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails" roleURI="http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails">
        <link:definition>9955578 - Disclosure - Segment and Geographic Information - Disaggregation of Segment Expenses (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BusinessAcquisitionsMoritexNarrativeDetails" roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails">
        <link:definition>9955579 - Disclosure - Business Acquisitions - Moritex Narrative (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails">
        <link:definition>9955580 - Disclosure - Business Acquisitions - Moritex Purchase Price Allocation (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="LossfromFireDetails" roleURI="http://cognex.com/role/LossfromFireDetails">
        <link:definition>9955581 - Disclosure - Loss from Fire (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SubsequentEventsDetails" roleURI="http://cognex.com/role/SubsequentEventsDetails">
        <link:definition>9955582 - Disclosure - Subsequent Events - (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ScheduleIIValuationandQualifyingAccountsDetail" roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail">
        <link:definition>9955583 - Disclosure - Schedule II -Valuation and Qualifying Accounts (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xs:appinfo>
  </xs:annotation>
  <xs:element id="cgnx_AuditInformationAbstract" abstract="true" name="AuditInformationAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_LossGainFromCatastrophes" abstract="false" name="LossGainFromCatastrophes" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CurrencytranslationadjustmentAbstract" abstract="true" name="CurrencytranslationadjustmentAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_NonCashLossFromCatastrophes" abstract="false" name="NonCashLossFromCatastrophes" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_ExcessAndObsoleteInventoryCharges" abstract="false" name="ExcessAndObsoleteInventoryCharges" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_FairValueAdjustmentOnAcquiredInventories" abstract="false" name="FairValueAdjustmentOnAcquiredInventories" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_IndemnificationProvisionsTextBlock" abstract="false" name="IndemnificationProvisionsTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cgnx_CatastropheTextBlock" abstract="false" name="CatastropheTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cgnx_NatureOfOperationsPolicyTextBlock" abstract="false" name="NatureOfOperationsPolicyTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" abstract="false" name="ConcentrationsOfRiskPolicyPolicyTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" abstract="false" name="ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cgnx_ComputerHardwareAndSoftwareMember" abstract="true" name="ComputerHardwareAndSoftwareMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" abstract="false" name="AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_MaximumInvestmentOfCompanyInPartnership" abstract="false" name="MaximumInvestmentOfCompanyInPartnership" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" abstract="true" name="CompletedTechnologiesAndOtherIntangibleAssetsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_CustomerContractsAndRelationshipsMember" abstract="true" name="CustomerContractsAndRelationshipsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_ProductWarrantyPeriod" abstract="false" name="ProductWarrantyPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_RevenuePaymentTerms" abstract="false" name="RevenuePaymentTerms" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_MoneyMarketInstrumentsFairValueDisclosure" abstract="false" name="MoneyMarketInstrumentsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CorporateBondsFairValueDisclosure" abstract="false" name="CorporateBondsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_TreasuryBillsFairValueDisclosure" abstract="false" name="TreasuryBillsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_AssetBackedSecuritiesFairValueDisclosure" abstract="false" name="AssetBackedSecuritiesFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_SovereignBondsFairValueDisclosure" abstract="false" name="SovereignBondsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_AgencyBondsMember" abstract="true" name="AgencyBondsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" abstract="false" name="CashCashEquivalentsShortTermAndLongTermInvestments" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DueFromForeignBanks" abstract="false" name="DueFromForeignBanks" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_InvestmentDurationAxis" abstract="true" name="InvestmentDurationAxis" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrldt:dimensionItem" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_InvestmentDurationDomain" abstract="true" name="InvestmentDurationDomain" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_LongTermInvestmentsMember" abstract="true" name="LongTermInvestmentsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_MoritexCorporationMember" abstract="true" name="MoritexCorporationMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_HardwareAndSoftwareMember" abstract="true" name="HardwareAndSoftwareMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_BacNinhVietnamMember" abstract="true" name="BacNinhVietnamMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_AachenGermanyMember" abstract="true" name="AachenGermanyMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_A88000SquareFootPremisesMember" abstract="true" name="A88000SquareFootPremisesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_A27000SquareFootPremisesMember" abstract="true" name="A27000SquareFootPremisesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" abstract="false" name="OperatingLeaseExpenseNoLiabilityOrAssetRecognized" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_OperatingLeaseLiabilityDiscountedPresentValue" abstract="false" name="OperatingLeaseLiabilityDiscountedPresentValue" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" abstract="false" name="LesseeOperatingLeaseOptionToRenewTermOfContract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_LesseeOperatingLeaseComponents" abstract="false" name="LesseeOperatingLeaseComponents" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm" abstract="false" name="UnrecordedUncontditionalPurchaseObligationRenewalTerm" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_SACSiriusAdvancedCyberneticsGmbHMember" abstract="true" name="SACSiriusAdvancedCyberneticsGmbHMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_DistributionNetworksAndCustomerRelationshipsMember" abstract="true" name="DistributionNetworksAndCustomerRelationshipsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_CompletedTechnologyMember" abstract="true" name="CompletedTechnologyMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_RetirementAllowance" abstract="false" name="RetirementAllowance" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_GreaterChinaMember" abstract="true" name="GreaterChinaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_OtherAsiaMember" abstract="true" name="OtherAsiaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_StandardProductandServicesMember" abstract="true" name="StandardProductandServicesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_ApplicationofCustomerSpecificSolutionsMember" abstract="true" name="ApplicationofCustomerSpecificSolutionsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" abstract="false" name="AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CustomerContractsLiabilityCurrentRollForward" abstract="true" name="CustomerContractsLiabilityCurrentRollForward" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" abstract="false" name="ContractWithCustomerLiabilityPeriodIncreaseDecrease" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" abstract="false" name="ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_ContractLiabilityForeignExchangeRateChanges" abstract="false" name="ContractLiabilityForeignExchangeRateChanges" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_RepurchaseProgramMarch2020Member" abstract="true" name="RepurchaseProgramMarch2020Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_RepurchaseProgramMarch2022Member" abstract="true" name="RepurchaseProgramMarch2022Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_VoteEntitledForEachCommonShareOutstanding" abstract="false" name="VoteEntitledForEachCommonShareOutstanding" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cgnx_StockRepurchaseProgramBuybackExciseTax" abstract="false" name="StockRepurchaseProgramBuybackExciseTax" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" abstract="true" name="CognexCorporation2023StockOptionAndIncentivePlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" abstract="true" name="CognexCorporation2021And2007StockOptionAndIncentivePlansMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_ExpirationPeriodOfStockOptionPlan" abstract="false" name="ExpirationPeriodOfStockOptionPlan" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_NumberOfGroupsWithinEmployeePopulation" abstract="false" name="NumberOfGroupsWithinEmployeePopulation" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" abstract="false" name="EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" abstract="false" name="EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" abstract="false" name="IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" abstract="false" name="SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" abstract="false" name="EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" abstract="false" name="EstimatedForfeitureRateForUnvestedOptionsForCEO" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_ProductCostOfRevenueMember" abstract="true" name="ProductCostOfRevenueMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_SellingGeneralAndAdministrativeMember" abstract="true" name="SellingGeneralAndAdministrativeMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" abstract="false" name="MinimumAgeToBeEligibleToDefinedContributionPlan" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfOneYear" abstract="false" name="CompanyContributionsVestAtEndOfOneYear" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfTwoYear" abstract="false" name="CompanyContributionsVestAtEndOfTwoYear" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfThreeYears" abstract="false" name="CompanyContributionsVestAtEndOfThreeYears" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfFourYears" abstract="false" name="CompanyContributionsVestAtEndOfFourYears" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_OperatingLossCarryforwardMember" abstract="true" name="OperatingLossCarryforwardMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_TaxCreditCarryforwardMember" abstract="true" name="TaxCreditCarryforwardMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_UnrecognizedTaxBenefitsGross" abstract="false" name="UnrecognizedTaxBenefitsGross" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" abstract="false" name="UnrecognizedTaxBenefitsGrossNoncurrentLiability" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" abstract="false" name="UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" abstract="false" name="MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" abstract="false" name="MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" abstract="false" name="DeferredTaxAssetsTaxCreditCarryforwardsState" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsForeignTaxStructureChange" abstract="false" name="DeferredTaxAssetsForeignTaxStructureChange" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" abstract="false" name="DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationTaxReservesPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" abstract="false" name="DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_NoncurrentDeferredTaxAssetsDeprecation" abstract="false" name="NoncurrentDeferredTaxAssetsDeprecation" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" abstract="false" name="DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsOtherNoncurrent" abstract="false" name="DeferredTaxAssetsOtherNoncurrent" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" abstract="false" name="DeferredTaxAssetsWithJurisdictionalNettingGross" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets" abstract="false" name="DeferredTaxLiabilitiesAmortizationOfIntangibleAssets" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" abstract="false" name="DeferredIncomeTaxAssetsLiabilitiesNet" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_Customer2Member" abstract="true" name="Customer2Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_Customer1Member" abstract="true" name="Customer1Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_OtherGeographicAreaMember" abstract="true" name="OtherGeographicAreaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_ResearchDevelopmentAndEngineeringExpensesMember" abstract="true" name="ResearchDevelopmentAndEngineeringExpensesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_SegmentGeneralAndEngineeringExpenseMember" abstract="true" name="SegmentGeneralAndEngineeringExpenseMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions" abstract="false" name="IncentiveCompensationExpenseBonusAndSalesCommissions" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_BusinessCombinationEnterpriseValue" abstract="false" name="BusinessCombinationEnterpriseValue" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" abstract="false" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_GrossLossFromCatastrophes" abstract="false" name="GrossLossFromCatastrophes" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_InsuranceRecoveriesBusinessInterruption" abstract="false" name="InsuranceRecoveriesBusinessInterruption" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" abstract="false" name="InsuranceRecoveriesLostInventoryAndOtherLosses" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_JoergKuechenMember" abstract="true" name="JoergKuechenMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" abstract="true" name="JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" abstract="true" name="JoergKuechenRuleTradingArrangementCommonStockSaleMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>10
<FILENAME>cgnx-20241231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:6abacc18-a2b7-49fc-a7c2-9a55de473aa7,g:b2bf2ad7-589f-41d7-85c1-902f84842ef8-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDSTATEMENTSOFOPERATIONS"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_9367f708-2fc0-44ea-ad17-c1534bd6b786" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_30fa3685-5221-4460-b956-94ffa92e951a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_9367f708-2fc0-44ea-ad17-c1534bd6b786" xlink:to="loc_us-gaap_OperatingIncomeLoss_30fa3685-5221-4460-b956-94ffa92e951a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_454566b7-cacc-4c56-b7fd-27a114f1ae26" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_9367f708-2fc0-44ea-ad17-c1534bd6b786" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_454566b7-cacc-4c56-b7fd-27a114f1ae26" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_2158bd1a-c169-49ec-afa2-6662e7fe36ff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_9367f708-2fc0-44ea-ad17-c1534bd6b786" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_2158bd1a-c169-49ec-afa2-6662e7fe36ff" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_0b1f20b7-c021-4fa6-8a14-f8147668cbbb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_9367f708-2fc0-44ea-ad17-c1534bd6b786" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_0b1f20b7-c021-4fa6-8a14-f8147668cbbb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_70847ed1-e38d-4449-9ef5-522dba6b0399" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_8cc42ecd-a71f-462f-918c-29796cbae689" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_70847ed1-e38d-4449-9ef5-522dba6b0399" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_8cc42ecd-a71f-462f-918c-29796cbae689" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_1fbb6d9e-1f8f-47de-b3f7-5c1031439f08" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_70847ed1-e38d-4449-9ef5-522dba6b0399" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_1fbb6d9e-1f8f-47de-b3f7-5c1031439f08" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_238e380b-b259-4629-9fd2-ca8bbc84fdfa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LossGainFromCatastrophes_2367830d-f759-4de3-9890-76978525202b" xlink:href="cgnx-20241231.xsd#cgnx_LossGainFromCatastrophes"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_238e380b-b259-4629-9fd2-ca8bbc84fdfa" xlink:to="loc_cgnx_LossGainFromCatastrophes_2367830d-f759-4de3-9890-76978525202b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_c1888f62-fc12-47a2-955e-5d070aab367a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_238e380b-b259-4629-9fd2-ca8bbc84fdfa" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_c1888f62-fc12-47a2-955e-5d070aab367a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_9da93dda-bd02-4a14-98aa-08d0450e4b5a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_238e380b-b259-4629-9fd2-ca8bbc84fdfa" xlink:to="loc_us-gaap_GrossProfit_9da93dda-bd02-4a14-98aa-08d0450e4b5a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_4d6ac32c-c6ae-4b32-8beb-e0bbe9a2461f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_238e380b-b259-4629-9fd2-ca8bbc84fdfa" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_4d6ac32c-c6ae-4b32-8beb-e0bbe9a2461f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_ead8b164-dfb2-4f3a-8eb5-ce49b28149bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_238e380b-b259-4629-9fd2-ca8bbc84fdfa" xlink:to="loc_us-gaap_RestructuringCharges_ead8b164-dfb2-4f3a-8eb5-ce49b28149bd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_4d7e4fd6-fb76-4e1c-a953-7afe420bc494" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_db36dc89-ba56-4778-8fa2-cce4ee5d74d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_GrossProfit_4d7e4fd6-fb76-4e1c-a953-7afe420bc494" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_db36dc89-ba56-4778-8fa2-cce4ee5d74d6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_58d924ff-77d2-460c-8b61-d14b3c393f5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_GrossProfit_4d7e4fd6-fb76-4e1c-a953-7afe420bc494" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_58d924ff-77d2-460c-8b61-d14b3c393f5e" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_37db7b6f-9de8-4976-abda-e395dace5a51" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_0a5e39a2-b9d6-4a73-9f56-44d075316b3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_37db7b6f-9de8-4976-abda-e395dace5a51" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_0a5e39a2-b9d6-4a73-9f56-44d075316b3b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_f6ca03e6-ddba-42d4-abc2-e0eb762b39ff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_3614ca4b-ab6e-46ca-97f7-9421fccc766f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_f6ca03e6-ddba-42d4-abc2-e0eb762b39ff" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_3614ca4b-ab6e-46ca-97f7-9421fccc766f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_7ea72663-e416-439f-9774-12450786415b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_f6ca03e6-ddba-42d4-abc2-e0eb762b39ff" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_7ea72663-e416-439f-9774-12450786415b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_08787f5d-ae38-4278-82ab-8a14ced77352" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_6268ca8d-c2d4-4b4f-922c-8152f66067a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_08787f5d-ae38-4278-82ab-8a14ced77352" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_6268ca8d-c2d4-4b4f-922c-8152f66067a1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_9c0a9c53-a148-4d59-9f2f-22fc562ae74f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_08787f5d-ae38-4278-82ab-8a14ced77352" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_9c0a9c53-a148-4d59-9f2f-22fc562ae74f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_5140ba11-009b-4079-80ac-8be4324cf9ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_136847d8-ea77-44a7-ad3b-cb4a73c9bcd5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax_5140ba11-009b-4079-80ac-8be4324cf9ae" xlink:to="loc_us-gaap_NetIncomeLoss_136847d8-ea77-44a7-ad3b-cb4a73c9bcd5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_e5588039-8dc7-450f-ad60-6e39e88d42fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax_5140ba11-009b-4079-80ac-8be4324cf9ae" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_e5588039-8dc7-450f-ad60-6e39e88d42fd" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDBALANCESHEETS"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_e62dddb6-d927-48df-aa60-5e93b0648647" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_f9d14877-bb24-4fc9-95a1-1c54d3189372" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_e62dddb6-d927-48df-aa60-5e93b0648647" xlink:to="loc_us-gaap_Liabilities_f9d14877-bb24-4fc9-95a1-1c54d3189372" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_cecd962a-63a9-4d27-a623-2cae06efb655" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_e62dddb6-d927-48df-aa60-5e93b0648647" xlink:to="loc_us-gaap_CommitmentsAndContingencies_cecd962a-63a9-4d27-a623-2cae06efb655" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_0fc6ca63-cbf6-4926-b5b2-1bcae5b0839f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_e62dddb6-d927-48df-aa60-5e93b0648647" xlink:to="loc_us-gaap_StockholdersEquity_0fc6ca63-cbf6-4926-b5b2-1bcae5b0839f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_65f1592b-8f3f-44c5-9a4a-f68a9131e2d8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValueOutstanding_0f6cb294-16e1-41ee-ae36-24150be86437" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValueOutstanding"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_65f1592b-8f3f-44c5-9a4a-f68a9131e2d8" xlink:to="loc_us-gaap_CommonStockValueOutstanding_0f6cb294-16e1-41ee-ae36-24150be86437" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_296ae020-f053-4315-a0b4-59035f35c10b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalCommonStock"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_65f1592b-8f3f-44c5-9a4a-f68a9131e2d8" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_296ae020-f053-4315-a0b4-59035f35c10b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_b22a7417-c8a2-41cf-9555-2ab82c701bfd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_65f1592b-8f3f-44c5-9a4a-f68a9131e2d8" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_b22a7417-c8a2-41cf-9555-2ab82c701bfd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_c2445c33-d86c-4954-b345-bbf19ac9a12e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_65f1592b-8f3f-44c5-9a4a-f68a9131e2d8" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_c2445c33-d86c-4954-b345-bbf19ac9a12e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValueOutstanding_f9f7f939-42eb-4362-91dd-697fbe354e59" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValueOutstanding"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_65f1592b-8f3f-44c5-9a4a-f68a9131e2d8" xlink:to="loc_us-gaap_PreferredStockValueOutstanding_f9f7f939-42eb-4362-91dd-697fbe354e59" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_2fa5e1dd-a6ae-4593-80ea-9ff57b70f07c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_a97a6cc8-e4bf-493c-bfb8-a3f9e223b50b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_2fa5e1dd-a6ae-4593-80ea-9ff57b70f07c" xlink:to="loc_us-gaap_LiabilitiesCurrent_a97a6cc8-e4bf-493c-bfb8-a3f9e223b50b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_eff34006-6eda-4f01-83db-4ce3266cb767" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_2fa5e1dd-a6ae-4593-80ea-9ff57b70f07c" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_eff34006-6eda-4f01-83db-4ce3266cb767" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_765450c5-5218-4918-97d2-51c02e5f646a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_2fa5e1dd-a6ae-4593-80ea-9ff57b70f07c" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_765450c5-5218-4918-97d2-51c02e5f646a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent_834fc595-6996-4752-8ce7-0666ba65a2eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedIncomeTaxesNoncurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_2fa5e1dd-a6ae-4593-80ea-9ff57b70f07c" xlink:to="loc_us-gaap_AccruedIncomeTaxesNoncurrent_834fc595-6996-4752-8ce7-0666ba65a2eb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_a90b9548-cfc9-4ac0-887f-6bed11229d73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_2fa5e1dd-a6ae-4593-80ea-9ff57b70f07c" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_a90b9548-cfc9-4ac0-887f-6bed11229d73" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_f9079592-8299-4c58-a991-e3695e79b1b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_2fa5e1dd-a6ae-4593-80ea-9ff57b70f07c" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_f9079592-8299-4c58-a991-e3695e79b1b6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_b720b092-93da-4760-996b-d93c296e1b2b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_b3eadbea-416b-4f44-b4b8-bb193ccf47c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b720b092-93da-4760-996b-d93c296e1b2b" xlink:to="loc_us-gaap_AssetsCurrent_b3eadbea-416b-4f44-b4b8-bb193ccf47c5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_9a7dcdcf-36ae-4e57-a2cd-0c321df0fe98" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermInvestments"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b720b092-93da-4760-996b-d93c296e1b2b" xlink:to="loc_us-gaap_LongTermInvestments_9a7dcdcf-36ae-4e57-a2cd-0c321df0fe98" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_e18bfc69-fa4f-4184-a692-d24952b215e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b720b092-93da-4760-996b-d93c296e1b2b" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_e18bfc69-fa4f-4184-a692-d24952b215e5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxAssetsNet_8e9cca49-ce2e-4cf0-ad29-6a4595d01b5f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxAssetsNet"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b720b092-93da-4760-996b-d93c296e1b2b" xlink:to="loc_us-gaap_DeferredIncomeTaxAssetsNet_8e9cca49-ce2e-4cf0-ad29-6a4595d01b5f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_ceb5622e-4cd7-4c62-8ef6-80e117643774" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b720b092-93da-4760-996b-d93c296e1b2b" xlink:to="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_ceb5622e-4cd7-4c62-8ef6-80e117643774" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_f5a875a3-bdcc-4e83-acc5-0dc836d242aa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b720b092-93da-4760-996b-d93c296e1b2b" xlink:to="loc_us-gaap_Goodwill_f5a875a3-bdcc-4e83-acc5-0dc836d242aa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_a44a09c1-5961-40b9-ad0c-f900b81fd7f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b720b092-93da-4760-996b-d93c296e1b2b" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_a44a09c1-5961-40b9-ad0c-f900b81fd7f8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_b12842f5-0ae5-4df2-9f0b-95070417f5a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_b720b092-93da-4760-996b-d93c296e1b2b" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_b12842f5-0ae5-4df2-9f0b-95070417f5a2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_1bafb6e5-5fe4-4c25-b33f-a33f8ac6e412" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_08344dcc-321b-4130-a32e-a847250ba2ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_1bafb6e5-5fe4-4c25-b33f-a33f8ac6e412" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_08344dcc-321b-4130-a32e-a847250ba2ce" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4daee834-9eda-48aa-9ff7-a4ced1e9bab3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_1bafb6e5-5fe4-4c25-b33f-a33f8ac6e412" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_4daee834-9eda-48aa-9ff7-a4ced1e9bab3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_8f843f63-a70d-4c20-a017-707bf2694d57" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_1bafb6e5-5fe4-4c25-b33f-a33f8ac6e412" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_8f843f63-a70d-4c20-a017-707bf2694d57" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_bbb75fac-c78c-4e2c-bb75-4d368b99e9df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_1bafb6e5-5fe4-4c25-b33f-a33f8ac6e412" xlink:to="loc_us-gaap_InventoryNet_bbb75fac-c78c-4e2c-bb75-4d368b99e9df" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_67388bc6-185d-491f-979b-8124a2524f77" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_1bafb6e5-5fe4-4c25-b33f-a33f8ac6e412" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_67388bc6-185d-491f-979b-8124a2524f77" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_71cdb0b8-3f80-4b8d-a0c0-8790b002dabb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_1bafb6e5-5fe4-4c25-b33f-a33f8ac6e412" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_71cdb0b8-3f80-4b8d-a0c0-8790b002dabb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_75aa8b65-13a1-42f2-bfe1-e0f518de40dd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_920c5694-4c71-41c9-b158-97059c60e39e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_75aa8b65-13a1-42f2-bfe1-e0f518de40dd" xlink:to="loc_us-gaap_AccountsPayableCurrent_920c5694-4c71-41c9-b158-97059c60e39e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_3fe3d1d3-4102-4e88-a073-d31581ff122e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_75aa8b65-13a1-42f2-bfe1-e0f518de40dd" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_3fe3d1d3-4102-4e88-a073-d31581ff122e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_dcf76632-f20b-4146-b2cc-b39b225750d2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedIncomeTaxesCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_75aa8b65-13a1-42f2-bfe1-e0f518de40dd" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_dcf76632-f20b-4146-b2cc-b39b225750d2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_f166b8ce-b5fb-478d-8042-68a53f684027" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_75aa8b65-13a1-42f2-bfe1-e0f518de40dd" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_f166b8ce-b5fb-478d-8042-68a53f684027" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_7b2dc136-aaff-4476-98ec-d0feffb1b931" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_75aa8b65-13a1-42f2-bfe1-e0f518de40dd" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_7b2dc136-aaff-4476-98ec-d0feffb1b931" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDSTATEMENTSOFCASHFLOWS"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_bc2b94cd-f46a-42c1-b327-0348af9a7771" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_1bfcd1dc-28bf-4ea3-9075-f092509196bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_bc2b94cd-f46a-42c1-b327-0348af9a7771" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_1bfcd1dc-28bf-4ea3-9075-f092509196bc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_21e9882e-0810-4a72-9383-01f21bf39567" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_bc2b94cd-f46a-42c1-b327-0348af9a7771" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_21e9882e-0810-4a72-9383-01f21bf39567" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_4bc15f60-2397-4522-95b5-4d9014aa5c79" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDividendsCommonStock"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_bc2b94cd-f46a-42c1-b327-0348af9a7771" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_4bc15f60-2397-4522-95b5-4d9014aa5c79" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_518e1ebf-4f8e-44a9-9572-56ade5603840" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_a40c5cad-5653-4cc2-ac66-b19bd9e3f599" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_518e1ebf-4f8e-44a9-9572-56ade5603840" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_a40c5cad-5653-4cc2-ac66-b19bd9e3f599" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_c8dc84ba-df52-47d3-9606-ed7bd4ff8889" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_518e1ebf-4f8e-44a9-9572-56ade5603840" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_c8dc84ba-df52-47d3-9606-ed7bd4ff8889" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_9b708a1d-4a6c-4244-a61c-8d21a6d3dcfa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_518e1ebf-4f8e-44a9-9572-56ade5603840" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_9b708a1d-4a6c-4244-a61c-8d21a6d3dcfa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_bd460ee3-7f0e-4ff3-8300-3699d614dd72" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_518e1ebf-4f8e-44a9-9572-56ade5603840" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_bd460ee3-7f0e-4ff3-8300-3699d614dd72" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_9555a309-873b-424d-833f-8d2268d059b4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_9555a309-873b-424d-833f-8d2268d059b4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_28bb5170-ea55-4139-ab02-c7cb12a16f15" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_28bb5170-ea55-4139-ab02-c7cb12a16f15" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_ee71e65d-ccbc-4fc9-9060-c9469a7e3ec9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnSaleOfInvestments"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_ee71e65d-ccbc-4fc9-9060-c9469a7e3ec9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_91761d4d-485e-46b7-9305-32fcc5e44bd6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_91761d4d-485e-46b7-9305-32fcc5e44bd6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_05c46729-aa62-4ef5-a45e-d6b0b218e3d4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_05c46729-aa62-4ef5-a45e-d6b0b218e3d4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_5768553b-e7fc-4315-87fa-3e12bc4a1c9f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_NetIncomeLoss_5768553b-e7fc-4315-87fa-3e12bc4a1c9f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_2ddc3081-29ee-44b8-ab5d-53b262ef3ac3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_2ddc3081-29ee-44b8-ab5d-53b262ef3ac3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_3b24cd3b-4978-44e8-b091-d8b3770b311a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:calculationArc order="8" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_3b24cd3b-4978-44e8-b091-d8b3770b311a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_5a0e9374-41a1-4743-aa5b-91b4128b2a34" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_5a0e9374-41a1-4743-aa5b-91b4128b2a34" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_c2bea0f7-2c72-4bd9-bf02-92908c872495" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet"/>
    <link:calculationArc order="10" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_c2bea0f7-2c72-4bd9-bf02-92908c872495" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockOptionPlanExpense_e64fd956-36f7-44f1-bb94-34f00387ee4c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockOptionPlanExpense"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_StockOptionPlanExpense_e64fd956-36f7-44f1-bb94-34f00387ee4c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges_1e288afb-1aff-4f45-a155-c075aa1107b1" xlink:href="cgnx-20241231.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_cgnx_ExcessAndObsoleteInventoryCharges_1e288afb-1aff-4f45-a155-c075aa1107b1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_3d1ee312-d71e-4b72-a99f-625269d62b6b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
    <link:calculationArc order="13" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_3d1ee312-d71e-4b72-a99f-625269d62b6b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_79ef352a-fb3d-4f96-97bc-0fa5405b8334" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation"/>
    <link:calculationArc order="14" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_Depreciation_79ef352a-fb3d-4f96-97bc-0fa5405b8334" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_309ff6fc-7ed3-42c4-8692-9525aeb8879f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes"/>
    <link:calculationArc order="15" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_309ff6fc-7ed3-42c4-8692-9525aeb8879f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_b06fe714-f8d6-4002-8879-f6f0d1e0e557" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset"/>
    <link:calculationArc order="16" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_b06fe714-f8d6-4002-8879-f6f0d1e0e557" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NonCashLossFromCatastrophes_e48aaf97-e299-4e21-8b80-18f829d00d3f" xlink:href="cgnx-20241231.xsd#cgnx_NonCashLossFromCatastrophes"/>
    <link:calculationArc order="17" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_cgnx_NonCashLossFromCatastrophes_e48aaf97-e299-4e21-8b80-18f829d00d3f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_f9bfe566-269b-4cb9-931d-af5f488276e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:calculationArc order="18" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_f9bfe566-269b-4cb9-931d-af5f488276e0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_ab599f7c-30a8-4795-bdb9-d64ff19564fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
    <link:calculationArc order="19" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_ab599f7c-30a8-4795-bdb9-d64ff19564fc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_FairValueAdjustmentOnAcquiredInventories_2e6457e2-5daf-4029-b9a3-4434de28184f" xlink:href="cgnx-20241231.xsd#cgnx_FairValueAdjustmentOnAcquiredInventories"/>
    <link:calculationArc order="20" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_56c540e5-a8b9-4e26-bef4-78a75afe052a" xlink:to="loc_cgnx_FairValueAdjustmentOnAcquiredInventories_2e6457e2-5daf-4029-b9a3-4434de28184f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e3c9b17f-f08d-492b-abaa-8853ea6312e4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_5861a802-1b6a-4875-9ff1-73884fdd1386" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireInvestments"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e3c9b17f-f08d-492b-abaa-8853ea6312e4" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_5861a802-1b6a-4875-9ff1-73884fdd1386" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_ef0acbdf-e03b-42f9-9ae7-fca9a3a008c1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e3c9b17f-f08d-492b-abaa-8853ea6312e4" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_ef0acbdf-e03b-42f9-9ae7-fca9a3a008c1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_54e29e3b-fb40-4951-a362-c7266ed2c431" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e3c9b17f-f08d-492b-abaa-8853ea6312e4" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_54e29e3b-fb40-4951-a362-c7266ed2c431" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_edc9de74-dccc-4305-8625-2791652ec397" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e3c9b17f-f08d-492b-abaa-8853ea6312e4" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_edc9de74-dccc-4305-8625-2791652ec397" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_020e17ba-d6c2-47df-aa97-5ddf6f9c95a8" xlink:href="cgnx-20241231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_0b916b42-8786-4003-a076-b1fbc16b7215" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_020e17ba-d6c2-47df-aa97-5ddf6f9c95a8" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_0b916b42-8786-4003-a076-b1fbc16b7215" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_16467e53-1fe1-447c-82dc-2504b16e5130" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_020e17ba-d6c2-47df-aa97-5ddf6f9c95a8" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_16467e53-1fe1-447c-82dc-2504b16e5130" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_644a9206-4aa2-42f0-9555-aa6fb8c69ed7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermInvestments"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_020e17ba-d6c2-47df-aa97-5ddf6f9c95a8" xlink:to="loc_us-gaap_LongTermInvestments_644a9206-4aa2-42f0-9555-aa6fb8c69ed7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_b5cd8a22-8922-4c86-ba09-fedb00baf094" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_a55cafb3-655b-4606-ae7e-68d0bf63c890" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Cash"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_b5cd8a22-8922-4c86-ba09-fedb00baf094" xlink:to="loc_us-gaap_Cash_a55cafb3-655b-4606-ae7e-68d0bf63c890" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_00bc7ba4-1cc5-4f62-acf8-5e1c7ddf94a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_b5cd8a22-8922-4c86-ba09-fedb00baf094" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_00bc7ba4-1cc5-4f62-acf8-5e1c7ddf94a7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_d4f9a021-ff72-4b90-a4b7-0c27f4604d41" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermInvestments"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_87074bdc-9b8b-4340-be3a-61f35a830eea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermInvestments_d4f9a021-ff72-4b90-a4b7-0c27f4604d41" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_87074bdc-9b8b-4340-be3a-61f35a830eea" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_54183238-e71a-4eaf-88ae-2cd798339cc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_4d878ea3-654c-431d-8dcf-401eb9f05af7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_54183238-e71a-4eaf-88ae-2cd798339cc7" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_4d878ea3-654c-431d-8dcf-401eb9f05af7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_dd35cd1a-e75e-4c50-b1b1-00a9ad275562" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_54183238-e71a-4eaf-88ae-2cd798339cc7" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_dd35cd1a-e75e-4c50-b1b1-00a9ad275562" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_8aff4e04-252a-4004-a4f7-f9492bb5b71c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_54183238-e71a-4eaf-88ae-2cd798339cc7" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_8aff4e04-252a-4004-a4f7-f9492bb5b71c" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_f1bc5d02-b1e8-4c91-b3ed-35b061e47de7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_e73f5c56-c1bf-4b96-b745-46eba71d2c6d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_f1bc5d02-b1e8-4c91-b3ed-35b061e47de7" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_e73f5c56-c1bf-4b96-b745-46eba71d2c6d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_7df36620-df8a-46d5-a333-8eb2f664909a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_f1bc5d02-b1e8-4c91-b3ed-35b061e47de7" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_7df36620-df8a-46d5-a333-8eb2f664909a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_3106bb2e-9570-48be-88aa-200377d631a0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_1415fb82-ee35-4312-b1c4-44a9eeee6d61" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_3106bb2e-9570-48be-88aa-200377d631a0" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_1415fb82-ee35-4312-b1c4-44a9eeee6d61" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_c9474587-8769-46d8-8de8-865f14a5d443" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_3106bb2e-9570-48be-88aa-200377d631a0" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_c9474587-8769-46d8-8de8-865f14a5d443" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_77c90274-2f45-4fe0-aad5-4687d7db8892" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_22fad909-41d0-447b-ada3-d8a273a473f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_77c90274-2f45-4fe0-aad5-4687d7db8892" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_22fad909-41d0-447b-ada3-d8a273a473f1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_a01397c0-c8f3-412d-8325-fa5f85d928a3" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_77c90274-2f45-4fe0-aad5-4687d7db8892" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_a01397c0-c8f3-412d-8325-fa5f85d928a3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_777a49d0-39e2-4301-99d9-b6cf6b9cfcaa" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_77c90274-2f45-4fe0-aad5-4687d7db8892" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_777a49d0-39e2-4301-99d9-b6cf6b9cfcaa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_0dc8667f-331f-4339-a6c7-c82f4d3f3b66" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_77c90274-2f45-4fe0-aad5-4687d7db8892" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_0dc8667f-331f-4339-a6c7-c82f4d3f3b66" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_38f6d5c1-7607-45ef-afd1-1af4cd2ac05f" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_77c90274-2f45-4fe0-aad5-4687d7db8892" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_38f6d5c1-7607-45ef-afd1-1af4cd2ac05f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_b83b97c1-6463-4ce6-8ea3-0b7329fcb7d7" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_77c90274-2f45-4fe0-aad5-4687d7db8892" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_b83b97c1-6463-4ce6-8ea3-0b7329fcb7d7" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#InventoriesInventoriesDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_ffe3d2f8-e62a-4872-8c0c-0ebadf6867d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_1510954b-bb25-44be-989d-7d2d1331d1dc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_ffe3d2f8-e62a-4872-8c0c-0ebadf6867d7" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_1510954b-bb25-44be-989d-7d2d1331d1dc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_fbac5fdf-6a58-41a6-8893-0fdf9b930c3e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_ffe3d2f8-e62a-4872-8c0c-0ebadf6867d7" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_fbac5fdf-6a58-41a6-8893-0fdf9b930c3e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_a75989a7-1058-461e-ac03-f5c8ad9b8857" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_ffe3d2f8-e62a-4872-8c0c-0ebadf6867d7" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_a75989a7-1058-461e-ac03-f5c8ad9b8857" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_efa97c96-82da-4e40-93e7-64fcce2d71f6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_b5676c4a-e1c6-4c04-8064-9aae4aecd835" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_efa97c96-82da-4e40-93e7-64fcce2d71f6" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_b5676c4a-e1c6-4c04-8064-9aae4aecd835" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_126d8c37-c5a2-4550-9a94-67ce90b71d60" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_efa97c96-82da-4e40-93e7-64fcce2d71f6" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_126d8c37-c5a2-4550-9a94-67ce90b71d60" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleofPaymentsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#LeasesScheduleofPaymentsDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/LeasesScheduleofPaymentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5d9f1c95-a230-4f58-86dd-bad71ad65519" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_d6888172-4cc5-4872-8362-b83d2cc99e21" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5d9f1c95-a230-4f58-86dd-bad71ad65519" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_d6888172-4cc5-4872-8362-b83d2cc99e21" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_b847743d-35cf-473e-86b4-e72a2258ad81" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5d9f1c95-a230-4f58-86dd-bad71ad65519" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_b847743d-35cf-473e-86b4-e72a2258ad81" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_c770421f-6b66-4746-a49f-097420fc59c2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5d9f1c95-a230-4f58-86dd-bad71ad65519" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_c770421f-6b66-4746-a49f-097420fc59c2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_ccc87b9a-3c57-4266-a122-5f67644bac3d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5d9f1c95-a230-4f58-86dd-bad71ad65519" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_ccc87b9a-3c57-4266-a122-5f67644bac3d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_98f97005-1f2d-4ed0-a400-7442a789b5bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5d9f1c95-a230-4f58-86dd-bad71ad65519" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_98f97005-1f2d-4ed0-a400-7442a789b5bf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_fea77ed1-6911-4245-b852-cf97aa578d28" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_5d9f1c95-a230-4f58-86dd-bad71ad65519" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_fea77ed1-6911-4245-b852-cf97aa578d28" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_4ff23bcd-c7c6-4f2e-b0ae-43471cfc9398" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_33b84a8c-b858-4bd4-bebe-3f772681c321" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_4ff23bcd-c7c6-4f2e-b0ae-43471cfc9398" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_33b84a8c-b858-4bd4-bebe-3f772681c321" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_8adc16ef-681b-4678-b9fe-ab4b6087154c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_4ff23bcd-c7c6-4f2e-b0ae-43471cfc9398" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_8adc16ef-681b-4678-b9fe-ab4b6087154c" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_a7a6e70b-273c-4c22-8748-4aa8c22fb000" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_b85923a4-054d-4924-802e-cbf9e19b65ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_a7a6e70b-273c-4c22-8748-4aa8c22fb000" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_b85923a4-054d-4924-802e-cbf9e19b65ac" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_d2c0dd1e-018e-4610-92fe-b838c6e543ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_a7a6e70b-273c-4c22-8748-4aa8c22fb000" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_d2c0dd1e-018e-4610-92fe-b838c6e543ed" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_b9ef393b-dcfb-49f4-9543-88a0b077d898" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_a7a6e70b-273c-4c22-8748-4aa8c22fb000" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_b9ef393b-dcfb-49f4-9543-88a0b077d898" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_ebfcf167-1a75-4443-87eb-0cda8af32de8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_a7a6e70b-273c-4c22-8748-4aa8c22fb000" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_ebfcf167-1a75-4443-87eb-0cda8af32de8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_5308befc-19d5-41f6-bc55-bff0704eb091" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_a7a6e70b-273c-4c22-8748-4aa8c22fb000" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_5308befc-19d5-41f6-bc55-bff0704eb091" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_dac9d7f9-c874-4d36-8758-fd08aa7a1590" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_a7a6e70b-273c-4c22-8748-4aa8c22fb000" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_dac9d7f9-c874-4d36-8758-fd08aa7a1590" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#AccruedExpensesConstituentsofAccruedExpensesDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_673fc9bb-9073-40a3-9ad9-828310aa4e0c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedSalariesCurrent_0f88086d-5df9-4ea2-9fcb-17575b9a5a11" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedSalariesCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_673fc9bb-9073-40a3-9ad9-828310aa4e0c" xlink:to="loc_us-gaap_AccruedSalariesCurrent_0f88086d-5df9-4ea2-9fcb-17575b9a5a11" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RetirementAllowance_2da569f1-5636-4af0-8ad6-e8621181760b" xlink:href="cgnx-20241231.xsd#cgnx_RetirementAllowance"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_673fc9bb-9073-40a3-9ad9-828310aa4e0c" xlink:to="loc_cgnx_RetirementAllowance_2da569f1-5636-4af0-8ad6-e8621181760b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_e4a7ace5-140f-4f92-b389-b674dfdacfbe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_673fc9bb-9073-40a3-9ad9-828310aa4e0c" xlink:to="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_e4a7ace5-140f-4f92-b389-b674dfdacfbe" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedVacationCurrent_fb5abea6-6f1e-4690-9ceb-523037ee0a7d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedVacationCurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_673fc9bb-9073-40a3-9ad9-828310aa4e0c" xlink:to="loc_us-gaap_AccruedVacationCurrent_fb5abea6-6f1e-4690-9ceb-523037ee0a7d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedBonusesCurrent_2e96c02f-6e95-4e74-8385-b7927e27fbb9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedBonusesCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_673fc9bb-9073-40a3-9ad9-828310aa4e0c" xlink:to="loc_us-gaap_AccruedBonusesCurrent_2e96c02f-6e95-4e74-8385-b7927e27fbb9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent_cadcab26-f16b-40c7-8fe6-354e64b5f6c8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAccruedLiabilitiesCurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_673fc9bb-9073-40a3-9ad9-828310aa4e0c" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrent_cadcab26-f16b-40c7-8fe6-354e64b5f6c8" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_678be17d-020c-4b5c-891c-b4938bd2df88" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_235c5965-c76d-4d75-b0b8-2610ac5ab955" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeLiabilities_678be17d-020c-4b5c-891c-b4938bd2df88" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_235c5965-c76d-4d75-b0b8-2610ac5ab955" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_2fc94a4f-7eb0-4518-b58c-d9b9637bdaf2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeLiabilities_678be17d-020c-4b5c-891c-b4938bd2df88" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_2fc94a4f-7eb0-4518-b58c-d9b9637bdaf2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_b8f71bee-4644-4f3e-83c0-df684aabc2a3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_dea184ab-c86a-4fdf-9bcb-d583a0fc2504" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeAssets_b8f71bee-4644-4f3e-83c0-df684aabc2a3" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_dea184ab-c86a-4fdf-9bcb-d583a0fc2504" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_add2a9da-834e-4523-b578-3e29167e63d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeAssets_b8f71bee-4644-4f3e-83c0-df684aabc2a3" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_add2a9da-834e-4523-b578-3e29167e63d9" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_e78b583f-4fac-41e2-a655-e9c20889aced" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_8c7631fd-742e-4a1b-99db-26afc5632eaf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_e78b583f-4fac-41e2-a655-e9c20889aced" xlink:to="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_8c7631fd-742e-4a1b-99db-26afc5632eaf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_3a983dcf-2e8b-4a83-8a2a-e61f3a4c2097" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_e78b583f-4fac-41e2-a655-e9c20889aced" xlink:to="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_3a983dcf-2e8b-4a83-8a2a-e61f3a4c2097" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_2ac3ad54-407a-4065-a943-2c34168782e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_e78b583f-4fac-41e2-a655-e9c20889aced" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_2ac3ad54-407a-4065-a943-2c34168782e0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_7de65591-b8f6-4503-a66d-b8ec0a8d1122" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_ea71adee-9e69-46a2-a0d3-4646a75ab6be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_7de65591-b8f6-4503-a66d-b8ec0a8d1122" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_ea71adee-9e69-46a2-a0d3-4646a75ab6be" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_f2822195-1fbe-4845-9054-fb3764aa6e32" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_7de65591-b8f6-4503-a66d-b8ec0a8d1122" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_f2822195-1fbe-4845-9054-fb3764aa6e32" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_77c41165-004d-47aa-bfe2-e656b791b41a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit_20739a68-9bca-4fc4-8e19-a0adec87f6ea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentFederalTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_77c41165-004d-47aa-bfe2-e656b791b41a" xlink:to="loc_us-gaap_CurrentFederalTaxExpenseBenefit_20739a68-9bca-4fc4-8e19-a0adec87f6ea" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_e162f0c2-1b6f-489f-bdba-89ae7c19c554" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_77c41165-004d-47aa-bfe2-e656b791b41a" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_e162f0c2-1b6f-489f-bdba-89ae7c19c554" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_4e955317-54dc-4272-8029-e3f4b1aa52c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_77c41165-004d-47aa-bfe2-e656b791b41a" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_4e955317-54dc-4272-8029-e3f4b1aa52c5" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_8332ff3f-a64c-4adf-b16a-b57138532e39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_8332ff3f-a64c-4adf-b16a-b57138532e39" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_da4ed83c-d1e3-46eb-a26e-e23162905666" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_da4ed83c-d1e3-46eb-a26e-e23162905666" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_8a8663ca-5c39-493f-8a0a-2925a97d29e1" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_8a8663ca-5c39-493f-8a0a-2925a97d29e1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_62d979b4-5f6e-4b86-bb8f-10d829be4765" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_62d979b4-5f6e-4b86-bb8f-10d829be4765" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_94c912fe-c8e0-419a-9a37-692ce2ee0e47" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_94c912fe-c8e0-419a-9a37-692ce2ee0e47" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_ae2ecfef-af57-46cc-9b60-c41159911324" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_ae2ecfef-af57-46cc-9b60-c41159911324" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_045d0663-b7b6-4800-bc63-d97ea0367174" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_045d0663-b7b6-4800-bc63-d97ea0367174" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_bc212dfd-7b0c-4051-a0e9-55919b592cd8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_bc212dfd-7b0c-4051-a0e9-55919b592cd8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_75f2b18e-19b0-4fc4-9a40-0b9526a19571" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_75f2b18e-19b0-4fc4-9a40-0b9526a19571" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_e7b9664c-5943-403f-8a70-53ebe3e1cea0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_e7b9664c-5943-403f-8a70-53ebe3e1cea0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_a82c96f8-069f-43dd-8066-43d340c454f8" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_a82c96f8-069f-43dd-8066-43d340c454f8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_04e9a097-0134-482f-bb00-3bea5bc239f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_04e9a097-0134-482f-bb00-3bea5bc239f0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_b48dbd25-1d50-4c2c-818b-bdf7cd6632e1" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent"/>
    <link:calculationArc order="13" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_b48dbd25-1d50-4c2c-818b-bdf7cd6632e1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_905c888a-8c3d-4a8d-b42f-baf556160218" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes"/>
    <link:calculationArc order="14" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_d74018b2-f18a-41b8-8e2d-c53a52a16d5d" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_905c888a-8c3d-4a8d-b42f-baf556160218" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxesConstituentsofDeferredTaxAssetsDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_17e45e79-34be-4e23-92b5-3667c61bd08f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_e844dfa0-d47a-4b90-95d5-578bf3b1a76e" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_17e45e79-34be-4e23-92b5-3667c61bd08f" xlink:to="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_e844dfa0-d47a-4b90-95d5-578bf3b1a76e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_3d9e514b-e388-4f0d-b949-7dda65147c23" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_17e45e79-34be-4e23-92b5-3667c61bd08f" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_3d9e514b-e388-4f0d-b949-7dda65147c23" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_88cb680c-7922-4472-bdb1-2fb761a26b91" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_9ccfb80c-8893-4338-b06c-6195b5f1cbae" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_88cb680c-7922-4472-bdb1-2fb761a26b91" xlink:to="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_9ccfb80c-8893-4338-b06c-6195b5f1cbae" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_92617e85-cee4-43fb-a73b-0cfa8f869db3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInventory"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_88cb680c-7922-4472-bdb1-2fb761a26b91" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_92617e85-cee4-43fb-a73b-0cfa8f869db3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_74192aae-be3b-4a84-bd57-9170a5ac6225" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_88cb680c-7922-4472-bdb1-2fb761a26b91" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_74192aae-be3b-4a84-bd57-9170a5ac6225" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_0a2fbbc7-a294-40ad-9142-f4fc2496718c" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_88cb680c-7922-4472-bdb1-2fb761a26b91" xlink:to="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_0a2fbbc7-a294-40ad-9142-f4fc2496718c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_794a25ae-f843-4f35-a758-e364006907ac" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_88cb680c-7922-4472-bdb1-2fb761a26b91" xlink:to="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_794a25ae-f843-4f35-a758-e364006907ac" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_59851269-1160-4965-9e96-63a3759cefca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_88cb680c-7922-4472-bdb1-2fb761a26b91" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_59851269-1160-4965-9e96-63a3759cefca" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_43659e61-c21f-419a-8548-0138102cc96f" xlink:href="cgnx-20241231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_88cb680c-7922-4472-bdb1-2fb761a26b91" xlink:to="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_43659e61-c21f-419a-8548-0138102cc96f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_745e4828-fec7-4eda-bfca-13310b646e50" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_88cb680c-7922-4472-bdb1-2fb761a26b91" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_745e4828-fec7-4eda-bfca-13310b646e50" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_176a4283-f9bb-4c60-89d1-05542298eb4b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_88cb680c-7922-4472-bdb1-2fb761a26b91" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_176a4283-f9bb-4c60-89d1-05542298eb4b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_aa641e18-67a2-4bcf-8d26-75dbdb5f1f5a" xlink:href="cgnx-20241231.xsd#cgnx_DeferredIncomeTaxAssetsLiabilitiesNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_0baee4aa-3582-427f-8a3f-b042737bc6c3" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_aa641e18-67a2-4bcf-8d26-75dbdb5f1f5a" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_0baee4aa-3582-427f-8a3f-b042737bc6c3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_3b0a5204-96ea-4b78-bb58-decce5ea26ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_aa641e18-67a2-4bcf-8d26-75dbdb5f1f5a" xlink:to="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_3b0a5204-96ea-4b78-bb58-decce5ea26ad" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities_dc4e57a6-4721-4938-9821-51de22ad80ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_6b4b235a-48e3-4545-b95e-9b085bf38e8c" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_dc4e57a6-4721-4938-9821-51de22ad80ce" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_6b4b235a-48e3-4545-b95e-9b085bf38e8c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_afe3c642-eaa1-488b-b759-b33f07db77b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_dc4e57a6-4721-4938-9821-51de22ad80ce" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_afe3c642-eaa1-488b-b759-b33f07db77b1" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#WeightedAverageSharesCalculationofWeightedAverageSharesDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_87d73fe7-e131-46c3-bf5f-d97736ff70bb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_05822241-6393-4df5-adb2-22e8a0879386" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_87d73fe7-e131-46c3-bf5f-d97736ff70bb" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_05822241-6393-4df5-adb2-22e8a0879386" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_0ff46274-ab66-4e9c-a5d2-e9204088f618" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_87d73fe7-e131-46c3-bf5f-d97736ff70bb" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_0ff46274-ab66-4e9c-a5d2-e9204088f618" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_f9e6f7da-e19f-4a9f-ae03-6fab18934ada" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LaborAndRelatedExpense_4631f445-4fee-44cc-b6ca-436b37a6f284" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LaborAndRelatedExpense"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense_f9e6f7da-e19f-4a9f-ae03-6fab18934ada" xlink:to="loc_us-gaap_LaborAndRelatedExpense_4631f445-4fee-44cc-b6ca-436b37a6f284" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherExpenses_5f925e68-76f4-419c-a967-385d809982e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherExpenses"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense_f9e6f7da-e19f-4a9f-ae03-6fab18934ada" xlink:to="loc_us-gaap_OtherExpenses_5f925e68-76f4-419c-a967-385d809982e2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_bca77eb3-fee0-464e-8187-1f35c2862ccb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense_f9e6f7da-e19f-4a9f-ae03-6fab18934ada" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_bca77eb3-fee0-464e-8187-1f35c2862ccb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_36529741-734a-42d6-950e-5fd7bfddc61f" xlink:href="cgnx-20241231.xsd#cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense_f9e6f7da-e19f-4a9f-ae03-6fab18934ada" xlink:to="loc_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_36529741-734a-42d6-950e-5fd7bfddc61f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization_2cad9696-0d91-47aa-8580-9dbd5bcecf91" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense_f9e6f7da-e19f-4a9f-ae03-6fab18934ada" xlink:to="loc_us-gaap_DepreciationDepletionAndAmortization_2cad9696-0d91-47aa-8580-9dbd5bcecf91" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_644b99fb-3c22-4cba-8c1d-d9a5436d0e5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherExpenses_7253944e-05ad-4b83-8373-7ddd19831938" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherExpenses"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense_644b99fb-3c22-4cba-8c1d-d9a5436d0e5d" xlink:to="loc_us-gaap_OtherExpenses_7253944e-05ad-4b83-8373-7ddd19831938" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_f82fb6e9-975a-4d74-82f6-70d94d3d974c" xlink:href="cgnx-20241231.xsd#cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense_644b99fb-3c22-4cba-8c1d-d9a5436d0e5d" xlink:to="loc_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_f82fb6e9-975a-4d74-82f6-70d94d3d974c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_767eb377-878d-49ee-aad5-4bf0b627aac2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense_644b99fb-3c22-4cba-8c1d-d9a5436d0e5d" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_767eb377-878d-49ee-aad5-4bf0b627aac2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LaborAndRelatedExpense_6476ab91-eacb-4794-9e43-cbff47daa9fa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LaborAndRelatedExpense"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense_644b99fb-3c22-4cba-8c1d-d9a5436d0e5d" xlink:to="loc_us-gaap_LaborAndRelatedExpense_6476ab91-eacb-4794-9e43-cbff47daa9fa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization_6b4f8e69-c1ec-4e2b-9a13-ff354042ec3e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense_644b99fb-3c22-4cba-8c1d-d9a5436d0e5d" xlink:to="loc_us-gaap_DepreciationDepletionAndAmortization_6b4f8e69-c1ec-4e2b-9a13-ff354042ec3e" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_a4ffa1e0-00fb-4553-a0a0-7ada813f6721" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_a4ffa1e0-00fb-4553-a0a0-7ada813f6721" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_9905ccd4-fbb6-40b3-9e4b-7674ec06da3f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_9905ccd4-fbb6-40b3-9e4b-7674ec06da3f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_91d37540-29bc-44a5-b313-3d940ae20a97" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_91d37540-29bc-44a5-b313-3d940ae20a97" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_31ab28dc-92ce-4a14-ba32-df6830940d28" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_31ab28dc-92ce-4a14-ba32-df6830940d28" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_b59eed2f-2dcc-4d70-8c26-64aeb9d3f9f5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_Goodwill_b59eed2f-2dcc-4d70-8c26-64aeb9d3f9f5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_d2301325-1f34-4b38-b2f4-2811ea0c9549" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_d2301325-1f34-4b38-b2f4-2811ea0c9549" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_c51b0152-3895-4ed6-afa3-7dc2d5a7dee2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_c51b0152-3895-4ed6-afa3-7dc2d5a7dee2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_270b5c05-fe9a-4df2-97b4-139ec265dcb9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_270b5c05-fe9a-4df2-97b4-139ec265dcb9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_a2dc7279-ebcc-471b-876c-a30696486ee7" xlink:href="cgnx-20241231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes"/>
    <link:calculationArc order="9" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_a2dc7279-ebcc-471b-876c-a30696486ee7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_1a662cfb-ebc5-46ca-999c-215c48c60fc1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
    <link:calculationArc order="10" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_1a662cfb-ebc5-46ca-999c-215c48c60fc1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_36ba5e0d-bf23-42c2-9fb0-54fa4a383174" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_36ba5e0d-bf23-42c2-9fb0-54fa4a383174" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_2997708e-9710-4ce6-a9fa-ac420d024900" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_2997708e-9710-4ce6-a9fa-ac420d024900" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_1386e40e-4091-4456-ab62-a962c0b3167b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
    <link:calculationArc order="13" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_35168a65-5399-4e36-b0f2-61b1188a002e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_1386e40e-4091-4456-ab62-a962c0b3167b" xlink:type="arc"/>
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>11
<FILENAME>cgnx-20241231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:6abacc18-a2b7-49fc-a7c2-9a55de473aa7,g:b2bf2ad7-589f-41d7-85c1-902f84842ef8-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/all" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#all"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#hypercube-dimension"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-default"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member"/>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_1925c074-67aa-4e36-be99-2f1cf7d11c3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_0218d78a-d159-4398-97a3-c77d822157b2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_1925c074-67aa-4e36-be99-2f1cf7d11c3b" xlink:to="loc_us-gaap_StatementTable_0218d78a-d159-4398-97a3-c77d822157b2" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_f9436399-28d7-4f3f-a105-10a55a34e891" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_0218d78a-d159-4398-97a3-c77d822157b2" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_f9436399-28d7-4f3f-a105-10a55a34e891" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_f9436399-28d7-4f3f-a105-10a55a34e891_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_f9436399-28d7-4f3f-a105-10a55a34e891" xlink:to="loc_us-gaap_EquityComponentDomain_f9436399-28d7-4f3f-a105-10a55a34e891_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_f9436399-28d7-4f3f-a105-10a55a34e891" xlink:to="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_79555d99-94b1-4f66-aa6b-747615d47fed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:to="loc_us-gaap_CommonStockMember_79555d99-94b1-4f66-aa6b-747615d47fed" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_4a867b13-7d29-4cc3-8590-01d7f9fa4153" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_4a867b13-7d29-4cc3-8590-01d7f9fa4153" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_2f9dad80-923d-4bca-8c92-c8c418e149bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:to="loc_us-gaap_RetainedEarningsMember_2f9dad80-923d-4bca-8c92-c8c418e149bd" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_81c525b8-2b48-4af9-aa26-4f46022875bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_81c525b8-2b48-4af9-aa26-4f46022875bc" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_1925c074-67aa-4e36-be99-2f1cf7d11c3b" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_4573c4a2-228d-437e-b0b3-a117891378fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockholdersEquity_4573c4a2-228d-437e-b0b3-a117891378fd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_8dad052c-f5d5-474e-ac9c-af34af5b1b0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_CommonStockSharesIssued_8dad052c-f5d5-474e-ac9c-af34af5b1b0d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_79eb311f-8d4d-4784-9081-45f79e77223f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_79eb311f-8d4d-4784-9081-45f79e77223f" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_b7a5108e-db18-42b5-b374-24d29926b11f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_b7a5108e-db18-42b5-b374-24d29926b11f" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_9fa9170f-b551-42c9-a13d-9dbf304535a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_9fa9170f-b551-42c9-a13d-9dbf304535a6" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_f864b4ed-1845-4207-b87b-0696662d3de3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_f864b4ed-1845-4207-b87b-0696662d3de3" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_5a12e630-a1a9-4a2f-83fd-5be07aaccf9c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_5a12e630-a1a9-4a2f-83fd-5be07aaccf9c" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCommonStockCash_9b717e70-ede0-4541-8556-ab6fd6147b9a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsCommonStockCash"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_DividendsCommonStockCash_9b717e70-ede0-4541-8556-ab6fd6147b9a" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_e36c8541-22f0-4fd7-a91d-2920cb2f9eb7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_NetIncomeLoss_e36c8541-22f0-4fd7-a91d-2920cb2f9eb7" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_7fbcacd4-38d4-4aae-883f-052c8938a44d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_7fbcacd4-38d4-4aae-883f-052c8938a44d" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_7921ede6-e03e-442b-bc43-7e9ed9a8cf21" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_7921ede6-e03e-442b-bc43-7e9ed9a8cf21" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_cb5777ab-523a-4ff7-b295-329e70223d71" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_cb5777ab-523a-4ff7-b295-329e70223d71" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_48ae6db2-0607-459d-80f5-fb88b52b7bd3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_48ae6db2-0607-459d-80f5-fb88b52b7bd3" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_67ac9c9a-0d7d-4cfd-8139-c41664e1dd65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_9104ed09-9bf8-4635-bec0-adabc9982e86" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_93186613-1eac-4cf7-ae08-e821c1974ca1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_91d65202-7f89-4b8e-b4cd-7ef672125a11" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_93186613-1eac-4cf7-ae08-e821c1974ca1" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_91d65202-7f89-4b8e-b4cd-7ef672125a11" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_1dab646b-f894-400a-af80-f6ac826a2905" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_91d65202-7f89-4b8e-b4cd-7ef672125a11" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_1dab646b-f894-400a-af80-f6ac826a2905" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_1dab646b-f894-400a-af80-f6ac826a2905_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_1dab646b-f894-400a-af80-f6ac826a2905" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_1dab646b-f894-400a-af80-f6ac826a2905_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_1dab646b-f894-400a-af80-f6ac826a2905" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_6d7f4807-c97e-4712-9f10-45a504ce978f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BuildingMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:to="loc_us-gaap_BuildingMember_6d7f4807-c97e-4712-9f10-45a504ce978f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_930bf513-054c-49ed-a8ec-1b17e5c25bcb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:to="loc_us-gaap_BuildingImprovementsMember_930bf513-054c-49ed-a8ec-1b17e5c25bcb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_a3e4879b-71de-42ca-a576-c3c753b6054c" xlink:href="cgnx-20241231.xsd#cgnx_ComputerHardwareAndSoftwareMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:to="loc_cgnx_ComputerHardwareAndSoftwareMember_a3e4879b-71de-42ca-a576-c3c753b6054c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_716f64fd-a4f8-43ce-b28f-396f070bb6e6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:to="loc_us-gaap_EquipmentMember_716f64fd-a4f8-43ce-b28f-396f070bb6e6" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_8ab3a381-256b-4c99-a796-85da0185528d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_8ab3a381-256b-4c99-a796-85da0185528d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_fca64edc-af72-4ed4-bf6d-118674c6821f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_91d65202-7f89-4b8e-b4cd-7ef672125a11" xlink:to="loc_srt_RangeAxis_fca64edc-af72-4ed4-bf6d-118674c6821f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_fca64edc-af72-4ed4-bf6d-118674c6821f_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_fca64edc-af72-4ed4-bf6d-118674c6821f" xlink:to="loc_srt_RangeMember_fca64edc-af72-4ed4-bf6d-118674c6821f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_fc691fdc-55ed-40c8-ab19-788fd291c2f7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_fca64edc-af72-4ed4-bf6d-118674c6821f" xlink:to="loc_srt_RangeMember_fc691fdc-55ed-40c8-ab19-788fd291c2f7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_a19ad6df-8099-448e-9411-5ec6beb61cac" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_fc691fdc-55ed-40c8-ab19-788fd291c2f7" xlink:to="loc_srt_MinimumMember_a19ad6df-8099-448e-9411-5ec6beb61cac" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_d723a36f-5384-4c39-9b7d-306a50b316f1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_fc691fdc-55ed-40c8-ab19-788fd291c2f7" xlink:to="loc_srt_MaximumMember_d723a36f-5384-4c39-9b7d-306a50b316f1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_8c4110e0-a625-46f8-bf01-eda3eb113f41" xlink:href="cgnx-20241231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_93186613-1eac-4cf7-ae08-e821c1974ca1" xlink:to="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_8c4110e0-a625-46f8-bf01-eda3eb113f41" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_9dfaded0-0068-4b2d-a473-8ecdad04c130" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_93186613-1eac-4cf7-ae08-e821c1974ca1" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_9dfaded0-0068-4b2d-a473-8ecdad04c130" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_3aa0d517-4ed7-4804-82c1-54cd93a84f05" xlink:href="cgnx-20241231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_93186613-1eac-4cf7-ae08-e821c1974ca1" xlink:to="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_3aa0d517-4ed7-4804-82c1-54cd93a84f05" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_6038f6e0-1671-4b68-ab22-791023237ead" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_b5c96652-0f77-41fc-8c4b-af1d6794568b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_6038f6e0-1671-4b68-ab22-791023237ead" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_b5c96652-0f77-41fc-8c4b-af1d6794568b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d8f1b8fb-29ca-48fd-ad4e-8350951991cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_b5c96652-0f77-41fc-8c4b-af1d6794568b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d8f1b8fb-29ca-48fd-ad4e-8350951991cf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d8f1b8fb-29ca-48fd-ad4e-8350951991cf_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d8f1b8fb-29ca-48fd-ad4e-8350951991cf" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_d8f1b8fb-29ca-48fd-ad4e-8350951991cf_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d8f1b8fb-29ca-48fd-ad4e-8350951991cf" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_71fd8c0c-d1c4-402d-959b-ae58878845e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DistributionRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:to="loc_us-gaap_DistributionRightsMember_71fd8c0c-d1c4-402d-959b-ae58878845e0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_21d934a2-6dc0-4356-86b8-2b9a6bf91b67" xlink:href="cgnx-20241231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:to="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_21d934a2-6dc0-4356-86b8-2b9a6bf91b67" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_264d4989-d60e-4aeb-9102-ede6f6c54a54" xlink:href="cgnx-20241231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_264d4989-d60e-4aeb-9102-ede6f6c54a54" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_463e55de-f4ad-4307-be87-d6aa17f93294" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_463e55de-f4ad-4307-be87-d6aa17f93294" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_c6d305e1-b01a-4ec2-ba1d-b16b5e02a027" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:to="loc_us-gaap_TrademarksMember_c6d305e1-b01a-4ec2-ba1d-b16b5e02a027" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_55daa286-252b-4656-9280-f285b8c22f74" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_b5c96652-0f77-41fc-8c4b-af1d6794568b" xlink:to="loc_srt_RangeAxis_55daa286-252b-4656-9280-f285b8c22f74" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_55daa286-252b-4656-9280-f285b8c22f74_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_55daa286-252b-4656-9280-f285b8c22f74" xlink:to="loc_srt_RangeMember_55daa286-252b-4656-9280-f285b8c22f74_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_4789a9f9-f4ec-4976-8a38-ba175511eef9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_55daa286-252b-4656-9280-f285b8c22f74" xlink:to="loc_srt_RangeMember_4789a9f9-f4ec-4976-8a38-ba175511eef9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_a372b70b-4db9-49c3-ae6e-8c132b7e8896" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_4789a9f9-f4ec-4976-8a38-ba175511eef9" xlink:to="loc_srt_MinimumMember_a372b70b-4db9-49c3-ae6e-8c132b7e8896" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_a4ec8527-a0ac-48e3-9777-3d282cd5600e" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_4789a9f9-f4ec-4976-8a38-ba175511eef9" xlink:to="loc_srt_MaximumMember_a4ec8527-a0ac-48e3-9777-3d282cd5600e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_26ead3dd-91f2-4332-883f-c9fda79e5ffb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_6038f6e0-1671-4b68-ab22-791023237ead" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_26ead3dd-91f2-4332-883f-c9fda79e5ffb" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesWarrantyDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems_5935c455-1b13-4c65-a6b0-926041c930a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductLiabilityContingencyLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable_9f66bd45-6cbf-49a3-86eb-58ad1324f8f4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductLiabilityContingencyTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_5935c455-1b13-4c65-a6b0-926041c930a1" xlink:to="loc_us-gaap_ProductLiabilityContingencyTable_9f66bd45-6cbf-49a3-86eb-58ad1324f8f4" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_056bb563-51a9-4c43-9e83-7fd63abcf9dd" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_9f66bd45-6cbf-49a3-86eb-58ad1324f8f4" xlink:to="loc_srt_RangeAxis_056bb563-51a9-4c43-9e83-7fd63abcf9dd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_056bb563-51a9-4c43-9e83-7fd63abcf9dd_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_056bb563-51a9-4c43-9e83-7fd63abcf9dd" xlink:to="loc_srt_RangeMember_056bb563-51a9-4c43-9e83-7fd63abcf9dd_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_c1382e38-7ac4-4f4b-abac-8757058f27e6" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_056bb563-51a9-4c43-9e83-7fd63abcf9dd" xlink:to="loc_srt_RangeMember_c1382e38-7ac4-4f4b-abac-8757058f27e6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_f0426c8f-acd0-447d-b584-2f1170b09c14" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_c1382e38-7ac4-4f4b-abac-8757058f27e6" xlink:to="loc_srt_MinimumMember_f0426c8f-acd0-447d-b584-2f1170b09c14" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_81e3f194-a12e-4a58-ae99-fcbaf727eda1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_c1382e38-7ac4-4f4b-abac-8757058f27e6" xlink:to="loc_srt_MaximumMember_81e3f194-a12e-4a58-ae99-fcbaf727eda1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductWarrantyPeriod_ec8af5a2-51b9-48c0-bf26-5667a332cec0" xlink:href="cgnx-20241231.xsd#cgnx_ProductWarrantyPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_5935c455-1b13-4c65-a6b0-926041c930a1" xlink:to="loc_cgnx_ProductWarrantyPeriod_ec8af5a2-51b9-48c0-bf26-5667a332cec0" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_8c61846f-5756-43b7-9051-b9f3ed572af6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_01e4726f-977d-4e52-8ce0-af7789f0912f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_8c61846f-5756-43b7-9051-b9f3ed572af6" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_01e4726f-977d-4e52-8ce0-af7789f0912f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_1cff2b3d-4574-438a-ae66-03eb5240444f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_01e4726f-977d-4e52-8ce0-af7789f0912f" xlink:to="loc_srt_RangeAxis_1cff2b3d-4574-438a-ae66-03eb5240444f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_1cff2b3d-4574-438a-ae66-03eb5240444f_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_1cff2b3d-4574-438a-ae66-03eb5240444f" xlink:to="loc_srt_RangeMember_1cff2b3d-4574-438a-ae66-03eb5240444f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_7231c15f-da96-4d89-9f1d-5e8d4c4b82ad" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_1cff2b3d-4574-438a-ae66-03eb5240444f" xlink:to="loc_srt_RangeMember_7231c15f-da96-4d89-9f1d-5e8d4c4b82ad" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_1b75bb1c-ca54-41bd-9656-f9f9c66eb6c6" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_7231c15f-da96-4d89-9f1d-5e8d4c4b82ad" xlink:to="loc_srt_MinimumMember_1b75bb1c-ca54-41bd-9656-f9f9c66eb6c6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_cf43c119-d2b5-4dad-a7df-1f2ed3c3ef3b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_7231c15f-da96-4d89-9f1d-5e8d4c4b82ad" xlink:to="loc_srt_MaximumMember_cf43c119-d2b5-4dad-a7df-1f2ed3c3ef3b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RevenuePaymentTerms_11d01878-b292-4a86-a2dd-35d1f01c27b4" xlink:href="cgnx-20241231.xsd#cgnx_RevenuePaymentTerms"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_8c61846f-5756-43b7-9051-b9f3ed572af6" xlink:to="loc_cgnx_RevenuePaymentTerms_11d01878-b292-4a86-a2dd-35d1f01c27b4" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_790940c3-91fb-438c-86cc-d53aa9a8a82d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_790940c3-91fb-438c-86cc-d53aa9a8a82d" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_a67641e7-6306-459c-b829-e94d0c3dc3e8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_790940c3-91fb-438c-86cc-d53aa9a8a82d" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_a67641e7-6306-459c-b829-e94d0c3dc3e8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_a67641e7-6306-459c-b829-e94d0c3dc3e8_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_a67641e7-6306-459c-b829-e94d0c3dc3e8" xlink:to="loc_us-gaap_EquityComponentDomain_a67641e7-6306-459c-b829-e94d0c3dc3e8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_d9aee105-4b56-4944-b4ff-8eb72a6e44c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_a67641e7-6306-459c-b829-e94d0c3dc3e8" xlink:to="loc_us-gaap_EquityComponentDomain_d9aee105-4b56-4944-b4ff-8eb72a6e44c4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_d920404f-e3eb-487c-b5a5-2dae0b1a4278" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_d9aee105-4b56-4944-b4ff-8eb72a6e44c4" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_d920404f-e3eb-487c-b5a5-2dae0b1a4278" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_7cf64376-71bf-4e0f-9fc4-43489042846e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_7cf64376-71bf-4e0f-9fc4-43489042846e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_c692beaf-1cf1-4b21-8f09-5c09845300cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_c692beaf-1cf1-4b21-8f09-5c09845300cf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_844e7da4-312f-4d77-955d-cda2971c9182" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:to="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_844e7da4-312f-4d77-955d-cda2971c9182" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_725b8741-cbac-4c8d-804a-c2d5a2dbd069" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_725b8741-cbac-4c8d-804a-c2d5a2dbd069" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_3aab292f-683c-4229-86a2-8f7cff7d136b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_62903fd0-d478-4585-9d8e-68a0999430eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_3aab292f-683c-4229-86a2-8f7cff7d136b" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_62903fd0-d478-4585-9d8e-68a0999430eb" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f87ae5a6-e846-40a6-9228-2b9bf271faac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_62903fd0-d478-4585-9d8e-68a0999430eb" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f87ae5a6-e846-40a6-9228-2b9bf271faac" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f87ae5a6-e846-40a6-9228-2b9bf271faac_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f87ae5a6-e846-40a6-9228-2b9bf271faac" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_f87ae5a6-e846-40a6-9228-2b9bf271faac_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_daaff908-4a81-42c6-a581-bc6554d176c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f87ae5a6-e846-40a6-9228-2b9bf271faac" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_daaff908-4a81-42c6-a581-bc6554d176c5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_5a5a7b6b-b69f-4114-b226-9b04eb5c8f1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_daaff908-4a81-42c6-a581-bc6554d176c5" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_5a5a7b6b-b69f-4114-b226-9b04eb5c8f1f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_8e582c31-23dc-41e3-a72e-d52fb9412e54" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_daaff908-4a81-42c6-a581-bc6554d176c5" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_8e582c31-23dc-41e3-a72e-d52fb9412e54" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_e64da089-b2b5-45e0-b636-877e03818cf4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_daaff908-4a81-42c6-a581-bc6554d176c5" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_e64da089-b2b5-45e0-b636-877e03818cf4" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_4e6c5556-2964-4e9c-98ba-38f6c9686ce2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_62903fd0-d478-4585-9d8e-68a0999430eb" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_4e6c5556-2964-4e9c-98ba-38f6c9686ce2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_4e6c5556-2964-4e9c-98ba-38f6c9686ce2_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_4e6c5556-2964-4e9c-98ba-38f6c9686ce2" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_4e6c5556-2964-4e9c-98ba-38f6c9686ce2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_829a9c68-12ca-44c1-bd68-28132425020e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_4e6c5556-2964-4e9c-98ba-38f6c9686ce2" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_829a9c68-12ca-44c1-bd68-28132425020e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_0d6b03a9-d8aa-4756-a71d-6aee74409937" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_829a9c68-12ca-44c1-bd68-28132425020e" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_0d6b03a9-d8aa-4756-a71d-6aee74409937" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsFairValueDisclosureAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_3aab292f-683c-4229-86a2-8f7cff7d136b" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_4ba790ee-a998-4c03-a4a4-fa5d29443a1d" xlink:href="cgnx-20241231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_4ba790ee-a998-4c03-a4a4-fa5d29443a1d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_ad79583a-4192-4f48-95f9-d43c9145c769" xlink:href="cgnx-20241231.xsd#cgnx_CorporateBondsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_cgnx_CorporateBondsFairValueDisclosure_ad79583a-4192-4f48-95f9-d43c9145c769" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_acd297c6-fefc-412b-856f-682929c6f151" xlink:href="cgnx-20241231.xsd#cgnx_TreasuryBillsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_cgnx_TreasuryBillsFairValueDisclosure_acd297c6-fefc-412b-856f-682929c6f151" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_26b4a1be-8d9b-4a6c-9e5b-b09de7b06d43" xlink:href="cgnx-20241231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_26b4a1be-8d9b-4a6c-9e5b-b09de7b06d43" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_0898543c-0ced-4b56-af22-0280d6d83c71" xlink:href="cgnx-20241231.xsd#cgnx_SovereignBondsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_cgnx_SovereignBondsFairValueDisclosure_0898543c-0ced-4b56-af22-0280d6d83c71" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_ef5d2108-a3ab-4e3e-b4ed-26d86027832c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_ef5d2108-a3ab-4e3e-b4ed-26d86027832c" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_6733a9f9-e4bf-4eb4-818f-d59fdeaf32de" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_3aab292f-683c-4229-86a2-8f7cff7d136b" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_6733a9f9-e4bf-4eb4-818f-d59fdeaf32de" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_99adac27-821e-4c23-ad96-819b6cc55c86" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_6733a9f9-e4bf-4eb4-818f-d59fdeaf32de" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_99adac27-821e-4c23-ad96-819b6cc55c86" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ff5e124e-30af-4625-b3e6-f8357af505ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ff5e124e-30af-4625-b3e6-f8357af505ee" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_fc96b64b-ac34-425f-a997-6a0f9767b691" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ff5e124e-30af-4625-b3e6-f8357af505ee" xlink:to="loc_us-gaap_FinancialInstrumentAxis_fc96b64b-ac34-425f-a997-6a0f9767b691" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_fc96b64b-ac34-425f-a997-6a0f9767b691_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_fc96b64b-ac34-425f-a997-6a0f9767b691" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_fc96b64b-ac34-425f-a997-6a0f9767b691_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_fc96b64b-ac34-425f-a997-6a0f9767b691" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember_4b2fdbe3-e92b-4d01-a0e4-dcde1fe2d84c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasuryBillSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_us-gaap_USTreasuryBillSecuritiesMember_4b2fdbe3-e92b-4d01-a0e4-dcde1fe2d84c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_85c38d7d-18a7-4501-ac6b-d761b54135ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_85c38d7d-18a7-4501-ac6b-d761b54135ac" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_fcf4adac-354c-4331-8344-79e2a1c515e7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_fcf4adac-354c-4331-8344-79e2a1c515e7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_d15a7959-fcbe-4d38-911e-a0fbff242e88" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_d15a7959-fcbe-4d38-911e-a0fbff242e88" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_790d64fe-9a8f-4f27-a3b9-ab0d9fb19670" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_us-gaap_MunicipalBondsMember_790d64fe-9a8f-4f27-a3b9-ab0d9fb19670" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_1836915e-0640-4316-a1c8-adf8ce224a07" xlink:href="cgnx-20241231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_cgnx_AgencyBondsMember_1836915e-0640-4316-a1c8-adf8ce224a07" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_cfbe8d2b-7d21-497c-9ead-561f903616cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Cash"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_Cash_cfbe8d2b-7d21-497c-9ead-561f903616cf" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_06ac4278-997f-470b-9070-74395ade1e0c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_06ac4278-997f-470b-9070-74395ade1e0c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_dc261470-52e2-49cd-8881-0332816be30d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_dc261470-52e2-49cd-8881-0332816be30d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_8d45dfa4-720a-4527-8d4b-bd9c4cd77a43" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_8d45dfa4-720a-4527-8d4b-bd9c4cd77a43" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_83e23f2b-3506-4d23-b808-40446e1f4ae6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_83e23f2b-3506-4d23-b808-40446e1f4ae6" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_331082bb-14f6-4133-b6f8-5576c948c834" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_LongTermInvestments_331082bb-14f6-4133-b6f8-5576c948c834" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_a54ef6a0-a84d-425b-8327-1eed263a486a" xlink:href="cgnx-20241231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_a54ef6a0-a84d-425b-8327-1eed263a486a" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_066fbeda-6975-4aea-85d8-28c0c7c0befe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:to="loc_us-gaap_FinancialInstrumentAxis_066fbeda-6975-4aea-85d8-28c0c7c0befe" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_066fbeda-6975-4aea-85d8-28c0c7c0befe_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_066fbeda-6975-4aea-85d8-28c0c7c0befe" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_066fbeda-6975-4aea-85d8-28c0c7c0befe_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_066fbeda-6975-4aea-85d8-28c0c7c0befe" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_bec01071-6ecc-463a-9dbf-ba54686c0c18" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_bec01071-6ecc-463a-9dbf-ba54686c0c18" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_bb01eea9-0251-45a5-b518-30ec848400ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_bb01eea9-0251-45a5-b518-30ec848400ba" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_df3e379b-b552-45aa-814e-85aae66d165b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_df3e379b-b552-45aa-814e-85aae66d165b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_e71f1c6c-1c29-4d34-921b-2407e67bb66a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_e71f1c6c-1c29-4d34-921b-2407e67bb66a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_86e06518-6d17-4f5c-a482-67d6c78cd77d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_us-gaap_MunicipalBondsMember_86e06518-6d17-4f5c-a482-67d6c78cd77d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_31111b24-26e6-4902-9753-82bd390d8600" xlink:href="cgnx-20241231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_cgnx_AgencyBondsMember_31111b24-26e6-4902-9753-82bd390d8600" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationAxis_12f87c8b-4ab5-410b-9a30-43f1039069e2" xlink:href="cgnx-20241231.xsd#cgnx_InvestmentDurationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:to="loc_cgnx_InvestmentDurationAxis_12f87c8b-4ab5-410b-9a30-43f1039069e2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain_12f87c8b-4ab5-410b-9a30-43f1039069e2_default" xlink:href="cgnx-20241231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_cgnx_InvestmentDurationAxis_12f87c8b-4ab5-410b-9a30-43f1039069e2" xlink:to="loc_cgnx_InvestmentDurationDomain_12f87c8b-4ab5-410b-9a30-43f1039069e2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain_d89fca71-4fdf-4d55-b8cb-6c6d21b44013" xlink:href="cgnx-20241231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_cgnx_InvestmentDurationAxis_12f87c8b-4ab5-410b-9a30-43f1039069e2" xlink:to="loc_cgnx_InvestmentDurationDomain_d89fca71-4fdf-4d55-b8cb-6c6d21b44013" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember_3902d282-919a-46a9-bfcd-0e15c69c9e79" xlink:href="cgnx-20241231.xsd#cgnx_LongTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_InvestmentDurationDomain_d89fca71-4fdf-4d55-b8cb-6c6d21b44013" xlink:to="loc_cgnx_LongTermInvestmentsMember_3902d282-919a-46a9-bfcd-0e15c69c9e79" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_114f5478-a854-4a48-b13e-93db643fc8ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_InvestmentDurationDomain_d89fca71-4fdf-4d55-b8cb-6c6d21b44013" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_114f5478-a854-4a48-b13e-93db643fc8ce" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeAxis_91622ae0-159c-41e8-9863-b1b0041c7fb8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:to="loc_us-gaap_InvestmentTypeAxis_91622ae0-159c-41e8-9863-b1b0041c7fb8" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_91622ae0-159c-41e8-9863-b1b0041c7fb8_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_InvestmentTypeAxis_91622ae0-159c-41e8-9863-b1b0041c7fb8" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_91622ae0-159c-41e8-9863-b1b0041c7fb8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_427f6d01-219c-4b9a-95e0-cf2e64ea8e3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_InvestmentTypeAxis_91622ae0-159c-41e8-9863-b1b0041c7fb8" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_427f6d01-219c-4b9a-95e0-cf2e64ea8e3c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_77006f97-6dea-48c9-8569-a831faa71eea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_427f6d01-219c-4b9a-95e0-cf2e64ea8e3c" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_77006f97-6dea-48c9-8569-a831faa71eea" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_8124b07c-ff98-4c43-9760-c554847dd3cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_8124b07c-ff98-4c43-9760-c554847dd3cc" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_d263a528-ac5d-4ebb-92ae-ad7aeac434f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_d263a528-ac5d-4ebb-92ae-ad7aeac434f8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_01c28d63-6183-49cb-8979-76ba2c1fff44" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_01c28d63-6183-49cb-8979-76ba2c1fff44" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_a2d80907-907e-4089-bc0a-8aac21e90267" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_a2d80907-907e-4089-bc0a-8aac21e90267" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_923b77ef-d8ca-4043-9333-a5ff3d4ec210" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_923b77ef-d8ca-4043-9333-a5ff3d4ec210" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_259ceaae-06db-4a0f-8dca-9554ad7fded9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_923b77ef-d8ca-4043-9333-a5ff3d4ec210" xlink:to="loc_us-gaap_FinancialInstrumentAxis_259ceaae-06db-4a0f-8dca-9554ad7fded9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_259ceaae-06db-4a0f-8dca-9554ad7fded9_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_259ceaae-06db-4a0f-8dca-9554ad7fded9" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_259ceaae-06db-4a0f-8dca-9554ad7fded9_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_259ceaae-06db-4a0f-8dca-9554ad7fded9" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_42ee0536-811e-4ddc-b556-a21c823919ec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_42ee0536-811e-4ddc-b556-a21c823919ec" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_e88f11fa-8175-4cf1-a3fc-67b1c52062a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_e88f11fa-8175-4cf1-a3fc-67b1c52062a2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_7bc1f846-665d-4d9b-b0fc-153c400c7616" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_7bc1f846-665d-4d9b-b0fc-153c400c7616" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_838dd2af-b720-450c-b41c-3d520475721b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_838dd2af-b720-450c-b41c-3d520475721b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_0b2c7289-af29-4f4b-bce3-9990235bb3df" xlink:href="cgnx-20241231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_cgnx_AgencyBondsMember_0b2c7289-af29-4f4b-bce3-9990235bb3df" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_ec7a2468-8eea-4d2d-9fc2-27245e40d2d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_us-gaap_MunicipalBondsMember_ec7a2468-8eea-4d2d-9fc2-27245e40d2d6" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_cbf3567f-ec82-437f-9f40-699d1a014a5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_cbf3567f-ec82-437f-9f40-699d1a014a5e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_ea552259-0965-4a34-81d5-f4ab24e8c2bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_ea552259-0965-4a34-81d5-f4ab24e8c2bf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_d5d57ec1-3883-42b6-86c4-e604c3467ee2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_d5d57ec1-3883-42b6-86c4-e604c3467ee2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_d091dbf0-1133-456e-a48e-a7d9d4c5019e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_d091dbf0-1133-456e-a48e-a7d9d4c5019e" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_fab1a3da-dbf4-49e7-94da-4e3864d45f3d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_fab1a3da-dbf4-49e7-94da-4e3864d45f3d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_57015c42-6701-4935-92d7-003f0bea3399" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_57015c42-6701-4935-92d7-003f0bea3399" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_65161891-24b8-4927-9ce4-b222ebab4799" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_65161891-24b8-4927-9ce4-b222ebab4799" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_994c6640-828e-4dc9-8179-209567c5962f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_65161891-24b8-4927-9ce4-b222ebab4799" xlink:to="loc_us-gaap_FinancialInstrumentAxis_994c6640-828e-4dc9-8179-209567c5962f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_994c6640-828e-4dc9-8179-209567c5962f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_994c6640-828e-4dc9-8179-209567c5962f" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_994c6640-828e-4dc9-8179-209567c5962f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_994c6640-828e-4dc9-8179-209567c5962f" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_d7dd00d9-3840-4593-a7b8-ec2f251575cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_d7dd00d9-3840-4593-a7b8-ec2f251575cc" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_26bd78e3-0419-40f2-9004-8196789e1655" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_26bd78e3-0419-40f2-9004-8196789e1655" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_4a6cdff3-9da0-439d-b7d9-4487556dbe0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_4a6cdff3-9da0-439d-b7d9-4487556dbe0d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_55055ed0-9d82-4017-a23b-2d2be984bbea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_55055ed0-9d82-4017-a23b-2d2be984bbea" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_bd718ea5-ebd5-4ff3-9381-cd222cf23bf0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_us-gaap_MunicipalBondsMember_bd718ea5-ebd5-4ff3-9381-cd222cf23bf0" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_c9b7b391-4df4-4d3b-904b-d39db6799ff7" xlink:href="cgnx-20241231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_cgnx_AgencyBondsMember_c9b7b391-4df4-4d3b-904b-d39db6799ff7" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_c2d292b4-2329-45e9-9f13-f411e6f2eb96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_c2d292b4-2329-45e9-9f13-f411e6f2eb96" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_56f9be1d-22cf-4c60-b87f-4859650c33c0" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_56f9be1d-22cf-4c60-b87f-4859650c33c0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_2bc7ab94-c7b2-4822-828a-b977c0962d96" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_2bc7ab94-c7b2-4822-828a-b977c0962d96" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_79d8c409-075d-4c6f-b148-67c6c71090bb" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_79d8c409-075d-4c6f-b148-67c6c71090bb" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_9781bffb-4e38-4c13-9ed3-1b85fa1eb8e8" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_9781bffb-4e38-4c13-9ed3-1b85fa1eb8e8" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_b37eec62-3086-4b6d-8460-2090265a3692" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_b37eec62-3086-4b6d-8460-2090265a3692" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_d6f0fab2-b08a-403a-ab30-f63f92d7b5be" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_d6f0fab2-b08a-403a-ab30-f63f92d7b5be" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#InventoriesInventoriesDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryCurrentTable_f3b2cbdd-41a8-4922-996e-6c78e38e4a85" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryCurrentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_InventoryCurrentTable_f3b2cbdd-41a8-4922-996e-6c78e38e4a85" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_fde1469f-b3fa-4431-ab19-f975b2a773ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_InventoryCurrentTable_f3b2cbdd-41a8-4922-996e-6c78e38e4a85" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_fde1469f-b3fa-4431-ab19-f975b2a773ac" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_fde1469f-b3fa-4431-ab19-f975b2a773ac_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_fde1469f-b3fa-4431-ab19-f975b2a773ac" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_fde1469f-b3fa-4431-ab19-f975b2a773ac_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1e47762e-ef61-4f49-b45c-9a28c2cdce38" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_fde1469f-b3fa-4431-ab19-f975b2a773ac" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1e47762e-ef61-4f49-b45c-9a28c2cdce38" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_5e2ca10a-8368-418d-ab6b-64ba4232ba4f" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1e47762e-ef61-4f49-b45c-9a28c2cdce38" xlink:to="loc_cgnx_MoritexCorporationMember_5e2ca10a-8368-418d-ab6b-64ba4232ba4f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_7297e38e-d232-4270-b577-ce2c49371f4d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_7297e38e-d232-4270-b577-ce2c49371f4d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_d3ce50d0-b84e-4a19-a209-81b7fa6343ec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_d3ce50d0-b84e-4a19-a209-81b7fa6343ec" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_13ff021c-c892-44b8-b81c-78d4df09a9ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_13ff021c-c892-44b8-b81c-78d4df09a9ba" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_30584dcb-a3a5-48fc-8d89-1867b56e5659" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_InventoryNet_30584dcb-a3a5-48fc-8d89-1867b56e5659" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_9963b4e7-fec9-4bb2-8c77-a9e4c6f88420" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_9963b4e7-fec9-4bb2-8c77-a9e4c6f88420" xlink:type="arc" order="4"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_2a439b6b-50f0-4a17-b86f-a27217eabcc2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_2ae7e3b6-9921-45c5-8efa-c1685c666fec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_2a439b6b-50f0-4a17-b86f-a27217eabcc2" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_2ae7e3b6-9921-45c5-8efa-c1685c666fec" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_aa58e0f8-1b89-44db-9984-4883b0cc8b41" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_2ae7e3b6-9921-45c5-8efa-c1685c666fec" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_aa58e0f8-1b89-44db-9984-4883b0cc8b41" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_aa58e0f8-1b89-44db-9984-4883b0cc8b41_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_aa58e0f8-1b89-44db-9984-4883b0cc8b41" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_aa58e0f8-1b89-44db-9984-4883b0cc8b41_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_aa58e0f8-1b89-44db-9984-4883b0cc8b41" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember_889385ce-dc7f-4cf2-ae16-fd91ea85c089" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LandMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_LandMember_889385ce-dc7f-4cf2-ae16-fd91ea85c089" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_6b7a55fc-88e2-4aa4-b8a0-5efe057a08d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BuildingMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_BuildingMember_6b7a55fc-88e2-4aa4-b8a0-5efe057a08d9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_1d7a2aac-8c4f-4d7b-970f-9fa0c4e28515" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_BuildingImprovementsMember_1d7a2aac-8c4f-4d7b-970f-9fa0c4e28515" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_3d133505-ca85-43b8-8f19-ceddf6691adf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_3d133505-ca85-43b8-8f19-ceddf6691adf" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_HardwareAndSoftwareMember_9cf981a4-5230-400f-ba54-3255841f144a" xlink:href="cgnx-20241231.xsd#cgnx_HardwareAndSoftwareMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_cgnx_HardwareAndSoftwareMember_9cf981a4-5230-400f-ba54-3255841f144a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_598269ae-7df0-4722-ac58-d76b350e3170" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_EquipmentMember_598269ae-7df0-4722-ac58-d76b350e3170" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_8bb3e738-76a9-41a5-aa76-c69e58c67835" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_8bb3e738-76a9-41a5-aa76-c69e58c67835" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_7fdf056c-cc3e-4c28-b14e-bc593cb553cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_2a439b6b-50f0-4a17-b86f-a27217eabcc2" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_7fdf056c-cc3e-4c28-b14e-bc593cb553cf" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_17c74440-0d61-463f-ba62-c6388cebf4e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_2a439b6b-50f0-4a17-b86f-a27217eabcc2" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_17c74440-0d61-463f-ba62-c6388cebf4e3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_b2c7bde2-7817-4226-921e-68fa2ac4b629" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_2a439b6b-50f0-4a17-b86f-a27217eabcc2" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_b2c7bde2-7817-4226-921e-68fa2ac4b629" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#PropertyPlantandEquipmentAdditionalInformationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c6f17765-5527-4c7c-a708-d6ed302d2796" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c6f17765-5527-4c7c-a708-d6ed302d2796" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_cb778613-0af5-4748-ae63-46e0e09ba885" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c6f17765-5527-4c7c-a708-d6ed302d2796" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_cb778613-0af5-4748-ae63-46e0e09ba885" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_cb778613-0af5-4748-ae63-46e0e09ba885_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_cb778613-0af5-4748-ae63-46e0e09ba885" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_cb778613-0af5-4748-ae63-46e0e09ba885_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b7ebc872-b916-4fa4-af74-68eb6efa3cf8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_cb778613-0af5-4748-ae63-46e0e09ba885" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b7ebc872-b916-4fa4-af74-68eb6efa3cf8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_bcd78303-90c3-41f0-9a7e-8fed151b4f57" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b7ebc872-b916-4fa4-af74-68eb6efa3cf8" xlink:to="loc_cgnx_MoritexCorporationMember_bcd78303-90c3-41f0-9a7e-8fed151b4f57" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_1bf225b7-7970-4104-a9e4-9b0d9ab1cbad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_1bf225b7-7970-4104-a9e4-9b0d9ab1cbad" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_82b25c41-521e-4c2e-a81a-57c326cf0267" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_82b25c41-521e-4c2e-a81a-57c326cf0267" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_ae5c5ad1-023a-4b57-80e9-68e3f0615955" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_ae5c5ad1-023a-4b57-80e9-68e3f0615955" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_627f6cea-b9d3-4cfa-8986-eff0e542236e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_627f6cea-b9d3-4cfa-8986-eff0e542236e" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_b85a98d5-32ec-445e-bb64-3a5d3da68f6f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_b85a98d5-32ec-445e-bb64-3a5d3da68f6f" xlink:type="arc" order="4"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#LeasesDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/LeasesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable_d4678e6f-445b-433a-b8ce-d3bc54cfb4ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_LessorLeaseDescriptionTable_d4678e6f-445b-433a-b8ce-d3bc54cfb4ef" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_6be970e6-9edc-429b-b72b-a60357290622" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_d4678e6f-445b-433a-b8ce-d3bc54cfb4ef" xlink:to="loc_srt_StatementGeographicalAxis_6be970e6-9edc-429b-b72b-a60357290622" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_6be970e6-9edc-429b-b72b-a60357290622_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_6be970e6-9edc-429b-b72b-a60357290622" xlink:to="loc_srt_SegmentGeographicalDomain_6be970e6-9edc-429b-b72b-a60357290622_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_17d220f0-4bdf-49d9-8389-c20ea091b83e" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_6be970e6-9edc-429b-b72b-a60357290622" xlink:to="loc_srt_SegmentGeographicalDomain_17d220f0-4bdf-49d9-8389-c20ea091b83e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BacNinhVietnamMember_8b876c84-ecfa-45a6-b572-32823e6d4edd" xlink:href="cgnx-20241231.xsd#cgnx_BacNinhVietnamMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_17d220f0-4bdf-49d9-8389-c20ea091b83e" xlink:to="loc_cgnx_BacNinhVietnamMember_8b876c84-ecfa-45a6-b572-32823e6d4edd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_SG_5664768b-ef6a-45dd-9898-9c4c8145b3f7" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_SG"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_17d220f0-4bdf-49d9-8389-c20ea091b83e" xlink:to="loc_country_SG_5664768b-ef6a-45dd-9898-9c4c8145b3f7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AachenGermanyMember_0226a37f-15dd-4736-9adb-c2bd385000ba" xlink:href="cgnx-20241231.xsd#cgnx_AachenGermanyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_17d220f0-4bdf-49d9-8389-c20ea091b83e" xlink:to="loc_cgnx_AachenGermanyMember_0226a37f-15dd-4736-9adb-c2bd385000ba" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fb734de1-62e2-4b15-9d8f-65a3514f3cc0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_d4678e6f-445b-433a-b8ce-d3bc54cfb4ef" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fb734de1-62e2-4b15-9d8f-65a3514f3cc0" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_fb734de1-62e2-4b15-9d8f-65a3514f3cc0_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fb734de1-62e2-4b15-9d8f-65a3514f3cc0" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_fb734de1-62e2-4b15-9d8f-65a3514f3cc0_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_608e528f-dec3-4ab3-accc-6b27d1f758fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fb734de1-62e2-4b15-9d8f-65a3514f3cc0" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_608e528f-dec3-4ab3-accc-6b27d1f758fd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A88000SquareFootPremisesMember_911b6f34-4fbc-4069-9294-104c889616ad" xlink:href="cgnx-20241231.xsd#cgnx_A88000SquareFootPremisesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_608e528f-dec3-4ab3-accc-6b27d1f758fd" xlink:to="loc_cgnx_A88000SquareFootPremisesMember_911b6f34-4fbc-4069-9294-104c889616ad" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A27000SquareFootPremisesMember_1f5a0621-3de2-4de3-812a-9e300384dea5" xlink:href="cgnx-20241231.xsd#cgnx_A27000SquareFootPremisesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_608e528f-dec3-4ab3-accc-6b27d1f758fd" xlink:to="loc_cgnx_A27000SquareFootPremisesMember_1f5a0621-3de2-4de3-812a-9e300384dea5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense_c03e5b79-769f-4860-b401-a73e1059cd99" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeaseExpense_c03e5b79-769f-4860-b401-a73e1059cd99" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_42ed6b1e-79ec-4e70-94a5-894372143829" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeasePayments_42ed6b1e-79ec-4e70-94a5-894372143829" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_79a90062-a26a-4c41-9381-80d585a26347" xlink:href="cgnx-20241231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_79a90062-a26a-4c41-9381-80d585a26347" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_3ba50047-46b9-47e3-9442-a5ae87ad216d" xlink:href="cgnx-20241231.xsd#cgnx_OperatingLeaseLiabilityDiscountedPresentValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_3ba50047-46b9-47e3-9442-a5ae87ad216d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_3741ae38-60a3-4149-8c94-d60d3ba965ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeaseLiability_3741ae38-60a3-4149-8c94-d60d3ba965ed" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetRentableArea_521e79c3-a832-491a-ae07-0bb64aab6dff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetRentableArea"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_NetRentableArea_521e79c3-a832-491a-ae07-0bb64aab6dff" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract_3bf8ce2b-41c4-4402-a676-e44e089a5b77" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_LesseeOperatingLeaseTermOfContract_3bf8ce2b-41c4-4402-a676-e44e089a5b77" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_94bac798-3981-4ffb-9be5-47292ebe8f09" xlink:href="cgnx-20241231.xsd#cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_94bac798-3981-4ffb-9be5-47292ebe8f09" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_421e2510-577e-40fa-982d-fbfaaf7dc97b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_421e2510-577e-40fa-982d-fbfaaf7dc97b" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_e3ab979b-1aa3-4947-b748-e74779d4694c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_e3ab979b-1aa3-4947-b748-e74779d4694c" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_ecaf63f4-05ba-470a-ba59-58406e72015c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_ecaf63f4-05ba-470a-ba59-58406e72015c" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseComponents_51f88e3e-6707-4eda-abf3-0e912c530aae" xlink:href="cgnx-20241231.xsd#cgnx_LesseeOperatingLeaseComponents"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_cgnx_LesseeOperatingLeaseComponents_51f88e3e-6707-4eda-abf3-0e912c530aae" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ab3b2bdc-9c57-4264-992d-223bc7535af2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ab3b2bdc-9c57-4264-992d-223bc7535af2" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_602d3b20-e66d-4c80-81ae-37a68d20dcdc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_602d3b20-e66d-4c80-81ae-37a68d20dcdc" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_435de262-da1e-4db2-af24-6516bef4a25d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_435de262-da1e-4db2-af24-6516bef4a25d" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AreaOfRealEstateProperty_42637866-94c7-45cf-9c1a-fdbfdd319674" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AreaOfRealEstateProperty"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_AreaOfRealEstateProperty_42637866-94c7-45cf-9c1a-fdbfdd319674" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount_4ff057d0-c35e-4770-952f-1460ecb787d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount_4ff057d0-c35e-4770-952f-1460ecb787d1" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm_99a4b18e-42ba-480e-8407-bbeb392ee720" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecordedUnconditionalPurchaseObligationTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm_99a4b18e-42ba-480e-8407-bbeb392ee720" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm_5120f4f9-e9e5-42b6-b543-b4cd73c3c608" xlink:href="cgnx-20241231.xsd#cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm_5120f4f9-e9e5-42b6-b543-b4cd73c3c608" xlink:type="arc" order="18"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary_ca464131-50e9-4179-acf4-266c94add4ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary_ca464131-50e9-4179-acf4-266c94add4ee" xlink:type="arc" order="19"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#GoodwillChangesintheCarryingValueofGoodwillDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems_cee4ceb9-f41c-476c-babf-17429395932f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_5ca5f251-2438-4319-b9f4-12abc8855a3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_GoodwillLineItems_cee4ceb9-f41c-476c-babf-17429395932f" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_5ca5f251-2438-4319-b9f4-12abc8855a3c" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_f6a42168-34a8-4f59-a011-56b5e69c0971" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_5ca5f251-2438-4319-b9f4-12abc8855a3c" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_f6a42168-34a8-4f59-a011-56b5e69c0971" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_f6a42168-34a8-4f59-a011-56b5e69c0971_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_f6a42168-34a8-4f59-a011-56b5e69c0971" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_f6a42168-34a8-4f59-a011-56b5e69c0971_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4ba64bb4-3cdc-4bdf-ba69-b04566e990b4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_f6a42168-34a8-4f59-a011-56b5e69c0971" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4ba64bb4-3cdc-4bdf-ba69-b04566e990b4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_019f48c7-5fc6-4024-aa0b-2906aae6cee1" xlink:href="cgnx-20241231.xsd#cgnx_SACSiriusAdvancedCyberneticsGmbHMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4ba64bb4-3cdc-4bdf-ba69-b04566e990b4" xlink:to="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_019f48c7-5fc6-4024-aa0b-2906aae6cee1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_5bb36591-b37f-45d9-bf26-505f5c711c83" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4ba64bb4-3cdc-4bdf-ba69-b04566e990b4" xlink:to="loc_cgnx_MoritexCorporationMember_5bb36591-b37f-45d9-bf26-505f5c711c83" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillLineItems_cee4ceb9-f41c-476c-babf-17429395932f" xlink:to="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_0de2f0e1-703d-4c6d-826a-0f9ef1262d46" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:to="loc_us-gaap_Goodwill_0de2f0e1-703d-4c6d-826a-0f9ef1262d46" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillOtherIncreaseDecrease_4c625b00-2066-4c6e-97f7-436681fd7186" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillOtherIncreaseDecrease"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:to="loc_us-gaap_GoodwillOtherIncreaseDecrease_4c625b00-2066-4c6e-97f7-436681fd7186" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_58907442-4fea-4cd0-a3fa-432013f91ce7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:to="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_58907442-4fea-4cd0-a3fa-432013f91ce7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_d462787e-211b-414e-8a61-1fa6c6e68796" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_c56faca3-d2aa-4b87-a7ac-88d9d0def57b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_ca540906-ca8a-453d-a48d-9347d3034f62" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_c56faca3-d2aa-4b87-a7ac-88d9d0def57b" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_ca540906-ca8a-453d-a48d-9347d3034f62" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_f007f197-ca30-49cb-ab25-71cb86795c76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_ca540906-ca8a-453d-a48d-9347d3034f62" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_f007f197-ca30-49cb-ab25-71cb86795c76" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_f007f197-ca30-49cb-ab25-71cb86795c76_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_f007f197-ca30-49cb-ab25-71cb86795c76" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_f007f197-ca30-49cb-ab25-71cb86795c76_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_f007f197-ca30-49cb-ab25-71cb86795c76" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_70239f63-4980-4127-a434-7c672334ed48" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DistributionRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_us-gaap_DistributionRightsMember_70239f63-4980-4127-a434-7c672334ed48" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_4ed8bc44-3c05-4341-b28c-6337d73ad3d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_4ed8bc44-3c05-4341-b28c-6337d73ad3d0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_f8872ca1-05bd-4b2a-8a32-c27b55c772bd" xlink:href="cgnx-20241231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_f8872ca1-05bd-4b2a-8a32-c27b55c772bd" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_f36e34e1-344a-4c7c-b681-57488c4e44c3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_f36e34e1-344a-4c7c-b681-57488c4e44c3" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_8b88383e-ebca-4b55-97ee-9f6b5d67fe4e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_us-gaap_TrademarksMember_8b88383e-ebca-4b55-97ee-9f6b5d67fe4e" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_0686466d-430c-4bd0-9709-5adafee33385" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherIntangibleAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_0686466d-430c-4bd0-9709-5adafee33385" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_5eeafaab-9726-44ec-a003-ae5169e51428" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_c56faca3-d2aa-4b87-a7ac-88d9d0def57b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_5eeafaab-9726-44ec-a003-ae5169e51428" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_d0dc49bd-6770-43a3-bf48-d78d4f7f966f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_c56faca3-d2aa-4b87-a7ac-88d9d0def57b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_d0dc49bd-6770-43a3-bf48-d78d4f7f966f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_25bf5c01-a074-4e1e-9d38-845f833ad6fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_c56faca3-d2aa-4b87-a7ac-88d9d0def57b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_25bf5c01-a074-4e1e-9d38-845f833ad6fd" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IntangibleAssetsNarrativeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/IntangibleAssetsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_0dca75d6-d72c-481b-8a0f-9e1ddad512ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_71b8f239-f7a2-43a3-8f9f-7acbff07fbfe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_0dca75d6-d72c-481b-8a0f-9e1ddad512ae" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_71b8f239-f7a2-43a3-8f9f-7acbff07fbfe" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_42f79b1c-3e38-491a-9b0c-838a7c345acc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_71b8f239-f7a2-43a3-8f9f-7acbff07fbfe" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_42f79b1c-3e38-491a-9b0c-838a7c345acc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_42f79b1c-3e38-491a-9b0c-838a7c345acc_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_42f79b1c-3e38-491a-9b0c-838a7c345acc" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_42f79b1c-3e38-491a-9b0c-838a7c345acc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_42f79b1c-3e38-491a-9b0c-838a7c345acc" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_b9aef2cb-b841-456e-b0dd-ef0ec76bebcb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_b9aef2cb-b841-456e-b0dd-ef0ec76bebcb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_86d3dc9a-b351-4b0a-89e2-13dae29983b7" xlink:href="cgnx-20241231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_86d3dc9a-b351-4b0a-89e2-13dae29983b7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_ebe86a7b-d05b-49fc-8641-980175c4fedf" xlink:href="cgnx-20241231.xsd#cgnx_DistributionNetworksAndCustomerRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_ebe86a7b-d05b-49fc-8641-980175c4fedf" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerRelationshipsMember_0d13bd79-9dfd-449c-b1d1-0f4bb4ea7fd7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_us-gaap_CustomerRelationshipsMember_0d13bd79-9dfd-449c-b1d1-0f4bb4ea7fd7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologyMember_38ba4f6e-e4a4-4f8e-b338-5f0aeffedbb2" xlink:href="cgnx-20241231.xsd#cgnx_CompletedTechnologyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_cgnx_CompletedTechnologyMember_38ba4f6e-e4a4-4f8e-b338-5f0aeffedbb2" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_4b0f3527-9660-440a-a372-b18d1f3b6a9c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_us-gaap_TrademarksMember_4b0f3527-9660-440a-a372-b18d1f3b6a9c" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_807d94ce-624f-4045-9291-6e056b2b4df6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_71b8f239-f7a2-43a3-8f9f-7acbff07fbfe" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_807d94ce-624f-4045-9291-6e056b2b4df6" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_807d94ce-624f-4045-9291-6e056b2b4df6_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_807d94ce-624f-4045-9291-6e056b2b4df6" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_807d94ce-624f-4045-9291-6e056b2b4df6_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1cf2ccca-adaa-42f4-af07-20899146bb3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_807d94ce-624f-4045-9291-6e056b2b4df6" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1cf2ccca-adaa-42f4-af07-20899146bb3c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_8d6af2e0-d902-4f90-a71c-369ecb7b6578" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1cf2ccca-adaa-42f4-af07-20899146bb3c" xlink:to="loc_cgnx_MoritexCorporationMember_8d6af2e0-d902-4f90-a71c-369ecb7b6578" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_49731977-5822-4573-8ccb-af792b871955" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_0dca75d6-d72c-481b-8a0f-9e1ddad512ae" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_49731977-5822-4573-8ccb-af792b871955" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_77daaba8-b10d-43eb-9d69-b0bddc7db5e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_0dca75d6-d72c-481b-8a0f-9e1ddad512ae" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_77daaba8-b10d-43eb-9d69-b0bddc7db5e0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_0a8c62ab-50dc-4aae-8e7d-d5d344022f78" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_0dca75d6-d72c-481b-8a0f-9e1ddad512ae" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_0a8c62ab-50dc-4aae-8e7d-d5d344022f78" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsAdditionalDetailsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_fd6d49eb-dab4-47aa-a48d-5b6e89150384" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_b18fd9fa-1046-43ee-a058-6d14c4feb213" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_fd6d49eb-dab4-47aa-a48d-5b6e89150384" xlink:to="loc_us-gaap_DerivativeTable_b18fd9fa-1046-43ee-a058-6d14c4feb213" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_00f3008d-aa7a-4c2d-b6e1-404e66dc5356" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_b18fd9fa-1046-43ee-a058-6d14c4feb213" xlink:to="loc_us-gaap_HedgingDesignationAxis_00f3008d-aa7a-4c2d-b6e1-404e66dc5356" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_00f3008d-aa7a-4c2d-b6e1-404e66dc5356_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_00f3008d-aa7a-4c2d-b6e1-404e66dc5356" xlink:to="loc_us-gaap_HedgingDesignationDomain_00f3008d-aa7a-4c2d-b6e1-404e66dc5356_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_65b88b4d-6bff-427b-853a-a4fe1cd3875a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_00f3008d-aa7a-4c2d-b6e1-404e66dc5356" xlink:to="loc_us-gaap_HedgingDesignationDomain_65b88b4d-6bff-427b-853a-a4fe1cd3875a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_db0c15df-ff62-4a1c-9a52-6cbfd89f0573" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_65b88b4d-6bff-427b-853a-a4fe1cd3875a" xlink:to="loc_us-gaap_NondesignatedMember_db0c15df-ff62-4a1c-9a52-6cbfd89f0573" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentRiskAxis_09b4f14c-d405-4479-8607-d78b85cc6bb1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentRiskAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_b18fd9fa-1046-43ee-a058-6d14c4feb213" xlink:to="loc_us-gaap_DerivativeInstrumentRiskAxis_09b4f14c-d405-4479-8607-d78b85cc6bb1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeContractTypeDomain_09b4f14c-d405-4479-8607-d78b85cc6bb1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeContractTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_DerivativeInstrumentRiskAxis_09b4f14c-d405-4479-8607-d78b85cc6bb1" xlink:to="loc_us-gaap_DerivativeContractTypeDomain_09b4f14c-d405-4479-8607-d78b85cc6bb1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeContractTypeDomain_831b5f53-5cbf-4959-80b8-4866af77c502" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeContractTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_DerivativeInstrumentRiskAxis_09b4f14c-d405-4479-8607-d78b85cc6bb1" xlink:to="loc_us-gaap_DerivativeContractTypeDomain_831b5f53-5cbf-4959-80b8-4866af77c502" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignExchangeForwardMember_667576fe-60f0-422f-81c7-eb9c365bce22" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignExchangeForwardMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeContractTypeDomain_831b5f53-5cbf-4959-80b8-4866af77c502" xlink:to="loc_us-gaap_ForeignExchangeForwardMember_667576fe-60f0-422f-81c7-eb9c365bce22" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_66637571-907c-4e1e-b2c2-3486d4ef22ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_fd6d49eb-dab4-47aa-a48d-5b6e89150384" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_66637571-907c-4e1e-b2c2-3486d4ef22ac" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeNotionalAmount_e44ec0b6-b3fd-4e7c-9c72-e639ab6e085b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeNotionalAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_fd6d49eb-dab4-47aa-a48d-5b6e89150384" xlink:to="loc_us-gaap_DerivativeNotionalAmount_e44ec0b6-b3fd-4e7c-9c72-e639ab6e085b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_e706d06f-358d-4d44-99b7-f4324fba711d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_fd6d49eb-dab4-47aa-a48d-5b6e89150384" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_e706d06f-358d-4d44-99b7-f4324fba711d" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_24d76418-04ab-4108-887a-875059a8345e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_c476d5e7-158d-4c4d-8eae-611a597bd324" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_24d76418-04ab-4108-887a-875059a8345e" xlink:to="loc_us-gaap_DerivativeTable_c476d5e7-158d-4c4d-8eae-611a597bd324" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_2ab3d31b-77f5-4ec0-bf86-f48deb458dad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_c476d5e7-158d-4c4d-8eae-611a597bd324" xlink:to="loc_us-gaap_HedgingDesignationAxis_2ab3d31b-77f5-4ec0-bf86-f48deb458dad" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_2ab3d31b-77f5-4ec0-bf86-f48deb458dad_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_2ab3d31b-77f5-4ec0-bf86-f48deb458dad" xlink:to="loc_us-gaap_HedgingDesignationDomain_2ab3d31b-77f5-4ec0-bf86-f48deb458dad_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_95f87608-d7e0-4481-8eea-5a9ea39c66f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_2ab3d31b-77f5-4ec0-bf86-f48deb458dad" xlink:to="loc_us-gaap_HedgingDesignationDomain_95f87608-d7e0-4481-8eea-5a9ea39c66f3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_6c4d74a7-725c-4478-a480-d0758f8d7cbf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_95f87608-d7e0-4481-8eea-5a9ea39c66f3" xlink:to="loc_us-gaap_NondesignatedMember_6c4d74a7-725c-4478-a480-d0758f8d7cbf" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CurrencyAxis_678c68ae-4fd7-4cd2-ad6c-d011f06bfb94" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CurrencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_c476d5e7-158d-4c4d-8eae-611a597bd324" xlink:to="loc_srt_CurrencyAxis_678c68ae-4fd7-4cd2-ad6c-d011f06bfb94" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_678c68ae-4fd7-4cd2-ad6c-d011f06bfb94_default" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_AllCurrenciesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CurrencyAxis_678c68ae-4fd7-4cd2-ad6c-d011f06bfb94" xlink:to="loc_currency_AllCurrenciesDomain_678c68ae-4fd7-4cd2-ad6c-d011f06bfb94_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_AllCurrenciesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CurrencyAxis_678c68ae-4fd7-4cd2-ad6c-d011f06bfb94" xlink:to="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_EUR_3a71e713-1000-4546-849d-21a3c5edae0d" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_EUR"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_EUR_3a71e713-1000-4546-849d-21a3c5edae0d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_JPY_a1033f51-e240-43fd-9fef-01362545c136" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_JPY"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_JPY_a1033f51-e240-43fd-9fef-01362545c136" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_MXN_0b015ee8-c601-4353-8e2d-af0c1585034f" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_MXN"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_MXN_0b015ee8-c601-4353-8e2d-af0c1585034f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_GBP_46219dc6-6dfb-4017-ac7d-0b4d74ec7b5f" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_GBP"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_GBP_46219dc6-6dfb-4017-ac7d-0b4d74ec7b5f" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_HUF_2500652c-96e1-47c0-bd71-3b016dd03fae" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_HUF"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_HUF_2500652c-96e1-47c0-bd71-3b016dd03fae" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CAD_be3f6e86-d191-422b-8fcf-3bd2c445cb70" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_CAD"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_CAD_be3f6e86-d191-422b-8fcf-3bd2c445cb70" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CNY_3705cacf-21db-4d62-9f5f-976c82c25945" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_CNY"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_CNY_3705cacf-21db-4d62-9f5f-976c82c25945" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CHF_052a3b0a-0df5-4074-9455-bb106e0a1c51" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_CHF"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_CHF_052a3b0a-0df5-4074-9455-bb106e0a1c51" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_SGD_4afa5a6d-b3bc-4974-8ac3-9b16f17ce311" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_SGD"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_SGD_4afa5a6d-b3bc-4974-8ac3-9b16f17ce311" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_acbb3a60-d4a8-4033-826e-7bd83636cca7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssetNotionalAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_24d76418-04ab-4108-887a-875059a8345e" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_acbb3a60-d4a8-4033-826e-7bd83636cca7" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_8670d245-bee3-41ce-ae12-144f0b9d3c07" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativesFairValueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_9715889d-c511-4e06-aa73-ebd63b07d72c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_8670d245-bee3-41ce-ae12-144f0b9d3c07" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_9715889d-c511-4e06-aa73-ebd63b07d72c" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_99dd5d22-52f5-4f99-b5f5-1f553221f53f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_9715889d-c511-4e06-aa73-ebd63b07d72c" xlink:to="loc_us-gaap_HedgingDesignationAxis_99dd5d22-52f5-4f99-b5f5-1f553221f53f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_99dd5d22-52f5-4f99-b5f5-1f553221f53f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_99dd5d22-52f5-4f99-b5f5-1f553221f53f" xlink:to="loc_us-gaap_HedgingDesignationDomain_99dd5d22-52f5-4f99-b5f5-1f553221f53f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_e97504e5-a6de-468c-bf39-6a731b3dd50c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_99dd5d22-52f5-4f99-b5f5-1f553221f53f" xlink:to="loc_us-gaap_HedgingDesignationDomain_e97504e5-a6de-468c-bf39-6a731b3dd50c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_510c2d29-f005-4088-ac24-2c1537f808ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_e97504e5-a6de-468c-bf39-6a731b3dd50c" xlink:to="loc_us-gaap_NondesignatedMember_510c2d29-f005-4088-ac24-2c1537f808ca" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_43e4c411-628e-434f-8e5f-804b8156ea72" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_8670d245-bee3-41ce-ae12-144f0b9d3c07" xlink:to="loc_us-gaap_DerivativeAssets_43e4c411-628e-434f-8e5f-804b8156ea72" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_d7e101e2-112b-4ed4-bf09-aca5dc9ed196" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLiabilities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_8670d245-bee3-41ce-ae12-144f0b9d3c07" xlink:to="loc_us-gaap_DerivativeLiabilities_d7e101e2-112b-4ed4-bf09-aca5dc9ed196" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_fb5c1864-d70d-47fe-af54-93a1ec7bc6df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3dcbc12f-4ea1-433d-9ca0-176447ebea0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_fb5c1864-d70d-47fe-af54-93a1ec7bc6df" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3dcbc12f-4ea1-433d-9ca0-176447ebea0b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_d6d8f979-16fe-482c-bec9-835c40ef41b2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3dcbc12f-4ea1-433d-9ca0-176447ebea0b" xlink:to="loc_us-gaap_HedgingDesignationAxis_d6d8f979-16fe-482c-bec9-835c40ef41b2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_d6d8f979-16fe-482c-bec9-835c40ef41b2_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_d6d8f979-16fe-482c-bec9-835c40ef41b2" xlink:to="loc_us-gaap_HedgingDesignationDomain_d6d8f979-16fe-482c-bec9-835c40ef41b2_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_fb07287f-eb64-415c-b790-12ff06528cb2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_d6d8f979-16fe-482c-bec9-835c40ef41b2" xlink:to="loc_us-gaap_HedgingDesignationDomain_fb07287f-eb64-415c-b790-12ff06528cb2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_3d92e38e-86a6-4d59-9e38-89b30bef0759" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_fb07287f-eb64-415c-b790-12ff06528cb2" xlink:to="loc_us-gaap_NondesignatedMember_3d92e38e-86a6-4d59-9e38-89b30bef0759" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_a5582256-89ab-42c8-804f-b7482360d1ec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_fb5c1864-d70d-47fe-af54-93a1ec7bc6df" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_a5582256-89ab-42c8-804f-b7482360d1ec" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#RevenueRecognitionDisaggregationbyGeographyandTypeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_1f984f4d-0e9a-4db6-ab33-ff6a69b48465" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_5f1fc937-d69c-478c-ac7a-e23b741aed85" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_1f984f4d-0e9a-4db6-ab33-ff6a69b48465" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_5f1fc937-d69c-478c-ac7a-e23b741aed85" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_8eb17120-5574-49b9-851f-ba8215bc40a8" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_5f1fc937-d69c-478c-ac7a-e23b741aed85" xlink:to="loc_srt_StatementGeographicalAxis_8eb17120-5574-49b9-851f-ba8215bc40a8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_8eb17120-5574-49b9-851f-ba8215bc40a8_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_8eb17120-5574-49b9-851f-ba8215bc40a8" xlink:to="loc_srt_SegmentGeographicalDomain_8eb17120-5574-49b9-851f-ba8215bc40a8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_8eb17120-5574-49b9-851f-ba8215bc40a8" xlink:to="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_83b6844e-7f58-48dc-9f4f-96b9ab7d009e" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AmericasMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:to="loc_srt_AmericasMember_83b6844e-7f58-48dc-9f4f-96b9ab7d009e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_9cacf501-56e5-453c-a0d2-981e76753ce0" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EuropeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:to="loc_srt_EuropeMember_9cacf501-56e5-453c-a0d2-981e76753ce0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_4d88cbe9-2435-4c41-b2ef-f517375c820b" xlink:href="cgnx-20241231.xsd#cgnx_GreaterChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:to="loc_cgnx_GreaterChinaMember_4d88cbe9-2435-4c41-b2ef-f517375c820b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherAsiaMember_1b2b8f64-ce3b-401b-adc9-7accfb3bf1e8" xlink:href="cgnx-20241231.xsd#cgnx_OtherAsiaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:to="loc_cgnx_OtherAsiaMember_1b2b8f64-ce3b-401b-adc9-7accfb3bf1e8" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_bddcc2b4-4a89-40e8-a905-247d56de8418" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_5f1fc937-d69c-478c-ac7a-e23b741aed85" xlink:to="loc_srt_ProductOrServiceAxis_bddcc2b4-4a89-40e8-a905-247d56de8418" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_bddcc2b4-4a89-40e8-a905-247d56de8418_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_bddcc2b4-4a89-40e8-a905-247d56de8418" xlink:to="loc_srt_ProductsAndServicesDomain_bddcc2b4-4a89-40e8-a905-247d56de8418_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_252ad1d5-7449-48ca-93c3-e3fb6b9a81b4" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_bddcc2b4-4a89-40e8-a905-247d56de8418" xlink:to="loc_srt_ProductsAndServicesDomain_252ad1d5-7449-48ca-93c3-e3fb6b9a81b4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductandServicesMember_411f7be8-5bce-4fff-9953-bb0508d79904" xlink:href="cgnx-20241231.xsd#cgnx_StandardProductandServicesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_252ad1d5-7449-48ca-93c3-e3fb6b9a81b4" xlink:to="loc_cgnx_StandardProductandServicesMember_411f7be8-5bce-4fff-9953-bb0508d79904" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_58631107-a91c-4278-9d82-8ab565ea947e" xlink:href="cgnx-20241231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_252ad1d5-7449-48ca-93c3-e3fb6b9a81b4" xlink:to="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_58631107-a91c-4278-9d82-8ab565ea947e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_49b00294-ca31-40db-98a5-f814c70d0067" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_1f984f4d-0e9a-4db6-ab33-ff6a69b48465" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_49b00294-ca31-40db-98a5-f814c70d0067" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#ShareholdersEquityAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_30ff7d74-f228-4c11-affe-1a5ad251c052" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_30ff7d74-f228-4c11-affe-1a5ad251c052" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ShareRepurchaseProgramAxis_47b8c589-de11-4aed-98cd-e9caaea6089b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ShareRepurchaseProgramAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_30ff7d74-f228-4c11-affe-1a5ad251c052" xlink:to="loc_srt_ShareRepurchaseProgramAxis_47b8c589-de11-4aed-98cd-e9caaea6089b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ShareRepurchaseProgramDomain_47b8c589-de11-4aed-98cd-e9caaea6089b_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ShareRepurchaseProgramDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ShareRepurchaseProgramAxis_47b8c589-de11-4aed-98cd-e9caaea6089b" xlink:to="loc_srt_ShareRepurchaseProgramDomain_47b8c589-de11-4aed-98cd-e9caaea6089b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ShareRepurchaseProgramDomain_76b55fb0-f0a0-4a39-aadf-5da30a0091f9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ShareRepurchaseProgramDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ShareRepurchaseProgramAxis_47b8c589-de11-4aed-98cd-e9caaea6089b" xlink:to="loc_srt_ShareRepurchaseProgramDomain_76b55fb0-f0a0-4a39-aadf-5da30a0091f9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member_cf80845d-5167-4217-ae50-3c65cb81d8c5" xlink:href="cgnx-20241231.xsd#cgnx_RepurchaseProgramMarch2020Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ShareRepurchaseProgramDomain_76b55fb0-f0a0-4a39-aadf-5da30a0091f9" xlink:to="loc_cgnx_RepurchaseProgramMarch2020Member_cf80845d-5167-4217-ae50-3c65cb81d8c5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2022Member_7ffe2ff1-010e-4d5b-8192-ba2c18193fde" xlink:href="cgnx-20241231.xsd#cgnx_RepurchaseProgramMarch2022Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ShareRepurchaseProgramDomain_76b55fb0-f0a0-4a39-aadf-5da30a0091f9" xlink:to="loc_cgnx_RepurchaseProgramMarch2022Member_7ffe2ff1-010e-4d5b-8192-ba2c18193fde" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_26191e24-8dd0-4c48-85d8-cfd7f047379c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_26191e24-8dd0-4c48-85d8-cfd7f047379c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_9bb6a706-ee8a-4634-b7bf-b3bafa4d7e17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_9bb6a706-ee8a-4634-b7bf-b3bafa4d7e17" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_026bda82-180e-489a-9dbe-e27e3292f2f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_026bda82-180e-489a-9dbe-e27e3292f2f9" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_76bdc30a-0e95-4d82-9afc-3977c853b5a9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_76bdc30a-0e95-4d82-9afc-3977c853b5a9" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_4aadb657-6c9c-409e-8ed5-247070a90ebf" xlink:href="cgnx-20241231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_4aadb657-6c9c-409e-8ed5-247070a90ebf" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StockRepurchaseProgramAuthorizedAmount1_798b2b6c-8462-42a7-8ac6-b0616ce70a4e" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_srt_StockRepurchaseProgramAuthorizedAmount1_798b2b6c-8462-42a7-8ac6-b0616ce70a4e" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_4a57a2b1-8e17-46aa-98d3-4cecc63df9da" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_4a57a2b1-8e17-46aa-98d3-4cecc63df9da" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_752d4e30-2f05-4554-8423-65daa666555a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_752d4e30-2f05-4554-8423-65daa666555a" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_5a868045-0bf8-4943-859c-5c72b8b36a20" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_5a868045-0bf8-4943-859c-5c72b8b36a20" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_b2e3ea59-3cef-40b0-85aa-3dbf6825fa77" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_b2e3ea59-3cef-40b0-85aa-3dbf6825fa77" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_bf45855f-5eb9-4647-8c63-72dc4131efff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_bf45855f-5eb9-4647-8c63-72dc4131efff" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramBuybackExciseTax_e3a02fe0-031a-4716-abd0-855b5c142149" xlink:href="cgnx-20241231.xsd#cgnx_StockRepurchaseProgramBuybackExciseTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_cgnx_StockRepurchaseProgramBuybackExciseTax_e3a02fe0-031a-4716-abd0-855b5c142149" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_0c91d07e-7542-45a4-94cf-5f3cfe903b66" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_0c91d07e-7542-45a4-94cf-5f3cfe903b66" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividends_7f5b3ea6-fc56-4559-885b-6bb815ab57f5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDividends"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_PaymentsOfDividends_7f5b3ea6-fc56-4559-885b-6bb815ab57f5" xlink:type="arc" order="13"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_f4ecb726-68da-49e6-9e87-dc3eed9813b1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:to="loc_srt_RangeAxis_f4ecb726-68da-49e6-9e87-dc3eed9813b1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_f4ecb726-68da-49e6-9e87-dc3eed9813b1_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_f4ecb726-68da-49e6-9e87-dc3eed9813b1" xlink:to="loc_srt_RangeMember_f4ecb726-68da-49e6-9e87-dc3eed9813b1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_2e9c9ddf-e293-4a19-9a95-cd299b906ec8" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_f4ecb726-68da-49e6-9e87-dc3eed9813b1" xlink:to="loc_srt_RangeMember_2e9c9ddf-e293-4a19-9a95-cd299b906ec8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_74ef2fac-1be3-42ef-9b7c-7eb0ec7e1145" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_2e9c9ddf-e293-4a19-9a95-cd299b906ec8" xlink:to="loc_srt_MinimumMember_74ef2fac-1be3-42ef-9b7c-7eb0ec7e1145" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_3fa16aee-6361-4ffb-8f9a-e5efb487b955" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_2e9c9ddf-e293-4a19-9a95-cd299b906ec8" xlink:to="loc_srt_MaximumMember_3fa16aee-6361-4ffb-8f9a-e5efb487b955" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_ccf5fb14-4ced-42ae-bd16-8896d664b1e4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:to="loc_us-gaap_AwardTypeAxis_ccf5fb14-4ced-42ae-bd16-8896d664b1e4" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ccf5fb14-4ced-42ae-bd16-8896d664b1e4_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_ccf5fb14-4ced-42ae-bd16-8896d664b1e4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ccf5fb14-4ced-42ae-bd16-8896d664b1e4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_e3760536-ff92-424a-9363-d3487586250c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_ccf5fb14-4ced-42ae-bd16-8896d664b1e4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_e3760536-ff92-424a-9363-d3487586250c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_c61e20b7-aa3f-4c2e-a929-e04b220f4e54" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_e3760536-ff92-424a-9363-d3487586250c" xlink:to="loc_us-gaap_EmployeeStockOptionMember_c61e20b7-aa3f-4c2e-a929-e04b220f4e54" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_1a284508-fa9a-4a98-a2ed-0aabaace6be0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_e3760536-ff92-424a-9363-d3487586250c" xlink:to="loc_us-gaap_PerformanceSharesMember_1a284508-fa9a-4a98-a2ed-0aabaace6be0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_ee60bf3f-2130-44b4-9605-e5cdca2c48f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_e3760536-ff92-424a-9363-d3487586250c" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_ee60bf3f-2130-44b4-9605-e5cdca2c48f3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_859eeaa9-db79-4a59-8e6a-ae04fb5073b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:to="loc_us-gaap_PlanNameAxis_859eeaa9-db79-4a59-8e6a-ae04fb5073b6" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_859eeaa9-db79-4a59-8e6a-ae04fb5073b6_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PlanNameAxis_859eeaa9-db79-4a59-8e6a-ae04fb5073b6" xlink:to="loc_us-gaap_PlanNameDomain_859eeaa9-db79-4a59-8e6a-ae04fb5073b6_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_cc7c5869-9b08-4839-ad16-a989097d9aa9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PlanNameAxis_859eeaa9-db79-4a59-8e6a-ae04fb5073b6" xlink:to="loc_us-gaap_PlanNameDomain_cc7c5869-9b08-4839-ad16-a989097d9aa9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_829f8336-24bb-4e66-a3f5-84ab1c96d97b" xlink:href="cgnx-20241231.xsd#cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_cc7c5869-9b08-4839-ad16-a989097d9aa9" xlink:to="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_829f8336-24bb-4e66-a3f5-84ab1c96d97b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_6e971e89-d69d-45ed-a082-e50e61d30b91" xlink:href="cgnx-20241231.xsd#cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_cc7c5869-9b08-4839-ad16-a989097d9aa9" xlink:to="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_6e971e89-d69d-45ed-a082-e50e61d30b91" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_f1b9447c-f930-44ea-b88f-84a6fb7f1cf4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_f1b9447c-f930-44ea-b88f-84a6fb7f1cf4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_b5bf4ef8-ba3c-4d94-b8c3-1a2bd1d761a9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_b5bf4ef8-ba3c-4d94-b8c3-1a2bd1d761a9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_0280b32f-908d-4fbc-b922-fc014dce1dcc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_0280b32f-908d-4fbc-b922-fc014dce1dcc" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_8f50a375-e63c-426f-a253-8f5b3d8e8b0f" xlink:href="cgnx-20241231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_8f50a375-e63c-426f-a253-8f5b3d8e8b0f" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_8c79a7df-6e44-4832-a1a3-9ae04906e7fe" xlink:href="cgnx-20241231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_8c79a7df-6e44-4832-a1a3-9ae04906e7fe" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_990ad579-7959-49fc-bd2f-3dbac1b64bd3" xlink:href="cgnx-20241231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_990ad579-7959-49fc-bd2f-3dbac1b64bd3" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_f85c1675-edbd-4ce5-8a75-ac8017185e65" xlink:href="cgnx-20241231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_f85c1675-edbd-4ce5-8a75-ac8017185e65" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_c610139f-dbdf-4dbc-aa01-c826d1fd2e9f" xlink:href="cgnx-20241231.xsd#cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_c610139f-dbdf-4dbc-aa01-c826d1fd2e9f" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_d33e3dd8-ed5a-475e-a57a-ea99a381091f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_d33e3dd8-ed5a-475e-a57a-ea99a381091f" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_d8840342-aff9-4622-9e82-f5fc58ab1dbd" xlink:href="cgnx-20241231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_d8840342-aff9-4622-9e82-f5fc58ab1dbd" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_a8a2d512-ef50-4cea-bd4e-b27311df7990" xlink:href="cgnx-20241231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_a8a2d512-ef50-4cea-bd4e-b27311df7990" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_69ca6fb6-3eac-44c9-a8f6-cf2e5aaea3c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_69ca6fb6-3eac-44c9-a8f6-cf2e5aaea3c7" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_85bbc08e-f007-44f5-8fff-35b2433b0fc1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_85bbc08e-f007-44f5-8fff-35b2433b0fc1" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_9cac0862-29ce-4333-9017-5ce07dd8712d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_9cac0862-29ce-4333-9017-5ce07dd8712d" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_26a84ae6-be00-4dc9-b52c-29ba9dd9c517" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_26a84ae6-be00-4dc9-b52c-29ba9dd9c517" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_df86312d-4bd2-4b36-9be7-a57aee3a8667" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_df86312d-4bd2-4b36-9be7-a57aee3a8667" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_a0bc8482-171c-4da9-9ab7-461c33f7cbdc" xlink:href="cgnx-20241231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_a0bc8482-171c-4da9-9ab7-461c33f7cbdc" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a04f3f73-4606-4ca9-ac75-1e117d04cfe1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a04f3f73-4606-4ca9-ac75-1e117d04cfe1" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_137d2029-8d4d-4091-bb01-b2e7536ab408" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_137d2029-8d4d-4091-bb01-b2e7536ab408" xlink:type="arc" order="18"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_42249bb7-0745-4c3d-9bc7-d02f84e59021" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_42249bb7-0745-4c3d-9bc7-d02f84e59021" xlink:type="arc" order="19"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_3a27b1f2-65ff-4e3f-afb7-1e773cef42c6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_3a27b1f2-65ff-4e3f-afb7-1e773cef42c6" xlink:type="arc" order="20"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_aa564f58-23ce-432e-9937-c3ad81ada3be" xlink:href="cgnx-20241231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_aa564f58-23ce-432e-9937-c3ad81ada3be" xlink:type="arc" order="21"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_51550024-e9a1-458a-b73b-887ba7cb839b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_51550024-e9a1-458a-b73b-887ba7cb839b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_806eea81-50c7-40cc-8c2c-df385590fb0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_51550024-e9a1-458a-b73b-887ba7cb839b" xlink:to="loc_us-gaap_AwardTypeAxis_806eea81-50c7-40cc-8c2c-df385590fb0b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_806eea81-50c7-40cc-8c2c-df385590fb0b_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_806eea81-50c7-40cc-8c2c-df385590fb0b" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_806eea81-50c7-40cc-8c2c-df385590fb0b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_320df99f-9f7d-4dda-8445-f1ad38220b07" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_806eea81-50c7-40cc-8c2c-df385590fb0b" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_320df99f-9f7d-4dda-8445-f1ad38220b07" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_719b67c8-e730-426a-a2c6-56b1d26f8a67" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_320df99f-9f7d-4dda-8445-f1ad38220b07" xlink:to="loc_us-gaap_EmployeeStockOptionMember_719b67c8-e730-426a-a2c6-56b1d26f8a67" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_a199393e-51e3-46df-8fb7-ff23cfb93ac8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_320df99f-9f7d-4dda-8445-f1ad38220b07" xlink:to="loc_us-gaap_RestrictedStockMember_a199393e-51e3-46df-8fb7-ff23cfb93ac8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_ea29edbc-2dc3-4726-bc68-55838c5d7fb2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_ea29edbc-2dc3-4726-bc68-55838c5d7fb2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_0fbc4c52-051c-4096-8f7e-2ae0a149f038" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_0fbc4c52-051c-4096-8f7e-2ae0a149f038" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_b1341250-9a12-43d7-a60b-51232c3d39dc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_b1341250-9a12-43d7-a60b-51232c3d39dc" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_b731ac67-6eb9-41f7-80ef-b6c4db2ea1b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_b731ac67-6eb9-41f7-80ef-b6c4db2ea1b3" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_df74c8c6-67be-4665-9a84-f871a2c6adad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_ae13b95a-5cf9-4649-8eb0-c0f529c127d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_df74c8c6-67be-4665-9a84-f871a2c6adad" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_ae13b95a-5cf9-4649-8eb0-c0f529c127d7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_423a371e-0862-4598-bf7a-1233a154d1c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_ae13b95a-5cf9-4649-8eb0-c0f529c127d7" xlink:to="loc_us-gaap_AwardTypeAxis_423a371e-0862-4598-bf7a-1233a154d1c7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_423a371e-0862-4598-bf7a-1233a154d1c7_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_423a371e-0862-4598-bf7a-1233a154d1c7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_423a371e-0862-4598-bf7a-1233a154d1c7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d7ccf453-9829-4e02-b732-2df919026f0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_423a371e-0862-4598-bf7a-1233a154d1c7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d7ccf453-9829-4e02-b732-2df919026f0a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_1000db77-a473-4d16-8ddf-546fa49e8b76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d7ccf453-9829-4e02-b732-2df919026f0a" xlink:to="loc_us-gaap_RestrictedStockMember_1000db77-a473-4d16-8ddf-546fa49e8b76" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_df74c8c6-67be-4665-9a84-f871a2c6adad" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_0a39c975-aa93-45b1-aad2-bedf49c86efb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_0a39c975-aa93-45b1-aad2-bedf49c86efb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_2352a94f-a923-491c-8628-0a80bd86c24e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_2352a94f-a923-491c-8628-0a80bd86c24e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_860111b0-384b-4685-8389-1f57247d8a45" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_860111b0-384b-4685-8389-1f57247d8a45" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_13ad6075-888a-4f5e-afa0-4efbcd5cdbc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_13ad6075-888a-4f5e-afa0-4efbcd5cdbc7" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_079b8aac-2b35-4c21-85c0-869ee0caa3cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_df74c8c6-67be-4665-9a84-f871a2c6adad" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_986a3f4b-6e53-40bb-b1a9-6191430de9a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_986a3f4b-6e53-40bb-b1a9-6191430de9a6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_af302852-9189-4500-bacc-63e1a4374b9c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_af302852-9189-4500-bacc-63e1a4374b9c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_d4d9fc76-a29e-4114-806f-a0c2f53dc297" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_d4d9fc76-a29e-4114-806f-a0c2f53dc297" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_1d69ec5a-41d7-4d12-97f1-632217391434" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_1d69ec5a-41d7-4d12-97f1-632217391434" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_be513e0e-fff2-4226-80d8-fc11c29d5980" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_559fc4cd-a5ed-44e0-a947-a6ad729f130b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_4f364602-ac4f-41de-9978-ad47c9270708" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_559fc4cd-a5ed-44e0-a947-a6ad729f130b" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_4f364602-ac4f-41de-9978-ad47c9270708" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_d4358cf0-7881-49e6-99df-0d07c7375e7e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_4f364602-ac4f-41de-9978-ad47c9270708" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_d4358cf0-7881-49e6-99df-0d07c7375e7e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_d4358cf0-7881-49e6-99df-0d07c7375e7e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_d4358cf0-7881-49e6-99df-0d07c7375e7e" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_d4358cf0-7881-49e6-99df-0d07c7375e7e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_e51ff168-0d1c-49e6-8461-a773297a5b41" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_d4358cf0-7881-49e6-99df-0d07c7375e7e" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_e51ff168-0d1c-49e6-8461-a773297a5b41" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductCostOfRevenueMember_03f91eb3-a000-4ff4-9f33-e3926c812e81" xlink:href="cgnx-20241231.xsd#cgnx_ProductCostOfRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_e51ff168-0d1c-49e6-8461-a773297a5b41" xlink:to="loc_cgnx_ProductCostOfRevenueMember_03f91eb3-a000-4ff4-9f33-e3926c812e81" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_b8430b47-9208-49b2-a532-4a18e485ab93" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_e51ff168-0d1c-49e6-8461-a773297a5b41" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_b8430b47-9208-49b2-a532-4a18e485ab93" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_9ad84585-d389-474b-813b-5800d18aa9aa" xlink:href="cgnx-20241231.xsd#cgnx_SellingGeneralAndAdministrativeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_e51ff168-0d1c-49e6-8461-a773297a5b41" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_9ad84585-d389-474b-813b-5800d18aa9aa" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_25ebd0c1-b3e8-4cac-b88f-aac3610b39be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_559fc4cd-a5ed-44e0-a947-a6ad729f130b" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_25ebd0c1-b3e8-4cac-b88f-aac3610b39be" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_c9e776d3-31ec-4731-962b-f19fd64449ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_559fc4cd-a5ed-44e0-a947-a6ad729f130b" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_c9e776d3-31ec-4731-962b-f19fd64449ac" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_6a48827a-aebe-4cdd-915f-10b37c0b9f5e" xlink:href="cgnx-20241231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_559fc4cd-a5ed-44e0-a947-a6ad729f130b" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_6a48827a-aebe-4cdd-915f-10b37c0b9f5e" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_ab2916f4-8d10-420c-8c4c-6b5cdfc17d72" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_ab2916f4-8d10-420c-8c4c-6b5cdfc17d72" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_ea0a6492-78b9-4df0-9770-8949829302d4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_ab2916f4-8d10-420c-8c4c-6b5cdfc17d72" xlink:to="loc_us-gaap_AwardTypeAxis_ea0a6492-78b9-4df0-9770-8949829302d4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ea0a6492-78b9-4df0-9770-8949829302d4_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_ea0a6492-78b9-4df0-9770-8949829302d4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_ea0a6492-78b9-4df0-9770-8949829302d4_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d9df9ade-0053-4bd3-96c3-96906a8211e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_ea0a6492-78b9-4df0-9770-8949829302d4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d9df9ade-0053-4bd3-96c3-96906a8211e0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_4fdf6b01-eaca-4b4c-8b6f-00ff3751d811" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d9df9ade-0053-4bd3-96c3-96906a8211e0" xlink:to="loc_us-gaap_PerformanceSharesMember_4fdf6b01-eaca-4b4c-8b6f-00ff3751d811" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_f21fced8-e74b-4456-a667-0ef5a21242c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_f21fced8-e74b-4456-a667-0ef5a21242c5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ef9bb3e7-0c9a-4b54-b1ee-5ce8a22f2ac1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ef9bb3e7-0c9a-4b54-b1ee-5ce8a22f2ac1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_68eccec6-138f-4ce6-801c-d76901e7b036" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_68eccec6-138f-4ce6-801c-d76901e7b036" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_584460d9-2d35-488a-a4db-10d8b71a787b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_584460d9-2d35-488a-a4db-10d8b71a787b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_b94709dd-cfc8-4dae-81ed-076d517234bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_b94709dd-cfc8-4dae-81ed-076d517234bd" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_beaea543-819f-444c-bcf6-344f9aedd300" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_beaea543-819f-444c-bcf6-344f9aedd300" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_dd22b52b-8dfc-480e-a06a-79dbdfe61dac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_dd22b52b-8dfc-480e-a06a-79dbdfe61dac" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_255539e4-ee6f-4269-950e-a379bbc95a9e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_255539e4-ee6f-4269-950e-a379bbc95a9e" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_61d2e34e-af39-4609-a605-a73a5f0b98be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_7b60ce01-6a3d-4444-9c21-c7a41daf6930" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxesAdditionalInformationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_1b6b8b17-896c-42c2-b1a0-ae917816b927" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_1b6b8b17-896c-42c2-b1a0-ae917816b927" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_1b6b8b17-896c-42c2-b1a0-ae917816b927_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_1b6b8b17-896c-42c2-b1a0-ae917816b927" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_1b6b8b17-896c-42c2-b1a0-ae917816b927_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_affa006f-8c75-4573-bac6-9870dc61dd8d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_1b6b8b17-896c-42c2-b1a0-ae917816b927" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_affa006f-8c75-4573-bac6-9870dc61dd8d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember_42d4f577-e110-411f-8673-e40ba02288a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCountryMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_affa006f-8c75-4573-bac6-9870dc61dd8d" xlink:to="loc_us-gaap_ForeignCountryMember_42d4f577-e110-411f-8673-e40ba02288a6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_5d1afd18-3e07-425c-8883-9d91394c24ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DomesticCountryMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_affa006f-8c75-4573-bac6-9870dc61dd8d" xlink:to="loc_us-gaap_DomesticCountryMember_5d1afd18-3e07-425c-8883-9d91394c24ad" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_4d44e821-4114-4d9e-9d75-d68958882ecd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameAxis_4d44e821-4114-4d9e-9d75-d68958882ecd" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_4d44e821-4114-4d9e-9d75-d68958882ecd_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_4d44e821-4114-4d9e-9d75-d68958882ecd" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_4d44e821-4114-4d9e-9d75-d68958882ecd_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_4d44e821-4114-4d9e-9d75-d68958882ecd" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_5713cccf-f154-45ee-8877-74f106899f2a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueCommissionersIrelandMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:to="loc_us-gaap_RevenueCommissionersIrelandMember_5713cccf-f154-45ee-8877-74f106899f2a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_80b2458b-b604-430f-923c-216e4eec28ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAdministrationOfTaxationChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:to="loc_us-gaap_StateAdministrationOfTaxationChinaMember_80b2458b-b604-430f-923c-216e4eec28ce" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_KP_750962cc-fc67-46eb-adf9-b6d550810a81" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_KP"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:to="loc_country_KP_750962cc-fc67-46eb-adf9-b6d550810a81" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_JP_a17fb0ac-ee89-4aa6-9c0a-14977e16e0ba" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_JP"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:to="loc_country_JP_a17fb0ac-ee89-4aa6-9c0a-14977e16e0ba" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis_15109f75-2a21-4bd0-b48d-f05879b534a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:to="loc_us-gaap_TaxCreditCarryforwardAxis_15109f75-2a21-4bd0-b48d-f05879b534a6" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_15109f75-2a21-4bd0-b48d-f05879b534a6_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_15109f75-2a21-4bd0-b48d-f05879b534a6" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_15109f75-2a21-4bd0-b48d-f05879b534a6_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_205294de-372a-42a7-8b31-1849f09a9839" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_15109f75-2a21-4bd0-b48d-f05879b534a6" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_205294de-372a-42a7-8b31-1849f09a9839" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchMember_207a92c6-0f7f-4384-b51e-751ba5fba902" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_205294de-372a-42a7-8b31-1849f09a9839" xlink:to="loc_us-gaap_ResearchMember_207a92c6-0f7f-4384-b51e-751ba5fba902" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_50f664da-faa7-4e47-9b11-664dc3f5889d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceByDeferredTaxAssetAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:to="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_50f664da-faa7-4e47-9b11-664dc3f5889d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetDomain_50f664da-faa7-4e47-9b11-664dc3f5889d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_50f664da-faa7-4e47-9b11-664dc3f5889d" xlink:to="loc_us-gaap_DeferredTaxAssetDomain_50f664da-faa7-4e47-9b11-664dc3f5889d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetDomain_070b4e74-ab24-4dad-83f8-11e20903fce2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_50f664da-faa7-4e47-9b11-664dc3f5889d" xlink:to="loc_us-gaap_DeferredTaxAssetDomain_070b4e74-ab24-4dad-83f8-11e20903fce2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLossCarryforwardMember_686c87a9-bd55-4964-9a9f-24649c9b6eb1" xlink:href="cgnx-20241231.xsd#cgnx_OperatingLossCarryforwardMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DeferredTaxAssetDomain_070b4e74-ab24-4dad-83f8-11e20903fce2" xlink:to="loc_cgnx_OperatingLossCarryforwardMember_686c87a9-bd55-4964-9a9f-24649c9b6eb1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TaxCreditCarryforwardMember_babedaad-9eb5-400a-8fc7-56d2047a700c" xlink:href="cgnx-20241231.xsd#cgnx_TaxCreditCarryforwardMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DeferredTaxAssetDomain_070b4e74-ab24-4dad-83f8-11e20903fce2" xlink:to="loc_cgnx_TaxCreditCarryforwardMember_babedaad-9eb5-400a-8fc7-56d2047a700c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_a8446bc7-bee1-4113-9306-758a5b6e8a0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_a8446bc7-bee1-4113-9306-758a5b6e8a0d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_aa98cd77-1d1b-437b-b680-904666f6207a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_aa98cd77-1d1b-437b-b680-904666f6207a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGross_f742e5bb-f00f-45cd-a414-6117bd838a8f" xlink:href="cgnx-20241231.xsd#cgnx_UnrecognizedTaxBenefitsGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGross_f742e5bb-f00f-45cd-a414-6117bd838a8f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_7494ccf7-9fd2-4564-b714-2fc404f0e74e" xlink:href="cgnx-20241231.xsd#cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_7494ccf7-9fd2-4564-b714-2fc404f0e74e" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_cbf94c29-9c73-425c-80b5-aac94925f37d" xlink:href="cgnx-20241231.xsd#cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_cbf94c29-9c73-425c-80b5-aac94925f37d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_70dbbd63-5be1-4619-8c4c-65879473b9df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_70dbbd63-5be1-4619-8c4c-65879473b9df" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7c1bbf64-0692-4d4b-be79-2db78a81d560" xlink:href="cgnx-20241231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7c1bbf64-0692-4d4b-be79-2db78a81d560" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_d2936078-a11a-46b1-89b7-803511fd1c16" xlink:href="cgnx-20241231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_d2936078-a11a-46b1-89b7-803511fd1c16" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_89015e29-225f-4733-a803-f3f95792272a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_89015e29-225f-4733-a803-f3f95792272a" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_62bb71d5-32a8-4be3-9765-8347913be847" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_62bb71d5-32a8-4be3-9765-8347913be847" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_2c6624cb-1aa9-4af8-8188-8965b45f12bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_2c6624cb-1aa9-4af8-8188-8965b45f12bc" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_2e89e856-e526-4e84-8c02-93237f159799" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_2e89e856-e526-4e84-8c02-93237f159799" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_032b92ed-3663-4af0-aa63-3cc1acf82bde" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_032b92ed-3663-4af0-aa63-3cc1acf82bde" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_43d0fc0e-18b4-416c-9a10-f0be1fc94f39" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_43d0fc0e-18b4-416c-9a10-f0be1fc94f39" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_740f211d-ad23-4497-af58-55e24ab3cb43" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_740f211d-ad23-4497-af58-55e24ab3cb43" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_d23d5cc8-0860-4757-9f24-66d2ae42bf20" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_d23d5cc8-0860-4757-9f24-66d2ae42bf20" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_81906c99-5042-4f5d-92e0-83705045a95d" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_81906c99-5042-4f5d-92e0-83705045a95d" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_8a457a2c-79a9-4766-9fde-1ab4a1b2ac1b" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_8a457a2c-79a9-4766-9fde-1ab4a1b2ac1b" xlink:type="arc" order="17"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#WeightedAverageSharesAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_a25d2083-788a-4316-b2c2-48ed708f9062" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_b9674613-810a-428f-a720-e0a71bfe8939" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_a25d2083-788a-4316-b2c2-48ed708f9062" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_b9674613-810a-428f-a720-e0a71bfe8939" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1333fc7b-97f4-432a-ad64-8bd3e350c7d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_b9674613-810a-428f-a720-e0a71bfe8939" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1333fc7b-97f4-432a-ad64-8bd3e350c7d9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_1333fc7b-97f4-432a-ad64-8bd3e350c7d9_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1333fc7b-97f4-432a-ad64-8bd3e350c7d9" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_1333fc7b-97f4-432a-ad64-8bd3e350c7d9_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_70369a4e-3349-40e1-8ef1-a0303f441a45" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1333fc7b-97f4-432a-ad64-8bd3e350c7d9" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_70369a4e-3349-40e1-8ef1-a0303f441a45" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_f830d4a4-18cc-4e5b-89e8-1b40b0be7909" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_70369a4e-3349-40e1-8ef1-a0303f441a45" xlink:to="loc_us-gaap_EmployeeStockOptionMember_f830d4a4-18cc-4e5b-89e8-1b40b0be7909" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_ee7765d5-3336-4297-939b-e9a13d404e77" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_70369a4e-3349-40e1-8ef1-a0303f441a45" xlink:to="loc_us-gaap_RestrictedStockMember_ee7765d5-3336-4297-939b-e9a13d404e77" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_29dfb18d-4ed8-4368-90cd-f8dfcb0b3b06" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_70369a4e-3349-40e1-8ef1-a0303f441a45" xlink:to="loc_us-gaap_PerformanceSharesMember_29dfb18d-4ed8-4368-90cd-f8dfcb0b3b06" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_ea42f58d-68d8-4c43-878c-8019997b0e60" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_a25d2083-788a-4316-b2c2-48ed708f9062" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_ea42f58d-68d8-4c43-878c-8019997b0e60" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SegmentandGeographicInformationAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_018122c3-4e2d-4fa0-aa16-c005825daffa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_018122c3-4e2d-4fa0-aa16-c005825daffa" xlink:to="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_55b78fad-7f95-4b5d-9fa6-5d2147d90d2d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_55b78fad-7f95-4b5d-9fa6-5d2147d90d2d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_55b78fad-7f95-4b5d-9fa6-5d2147d90d2d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_55b78fad-7f95-4b5d-9fa6-5d2147d90d2d" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_55b78fad-7f95-4b5d-9fa6-5d2147d90d2d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_fe14326d-d23f-434e-bfd7-f78cb1882f73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_55b78fad-7f95-4b5d-9fa6-5d2147d90d2d" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_fe14326d-d23f-434e-bfd7-f78cb1882f73" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_fc1bd172-2bd2-49f5-9e10-6dcf80c189ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_fe14326d-d23f-434e-bfd7-f78cb1882f73" xlink:to="loc_us-gaap_SalesRevenueNetMember_fc1bd172-2bd2-49f5-9e10-6dcf80c189ba" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_037e0e9a-bd04-47d2-92ab-8d4aeb75d7ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_fe14326d-d23f-434e-bfd7-f78cb1882f73" xlink:to="loc_us-gaap_AccountsReceivableMember_037e0e9a-bd04-47d2-92ab-8d4aeb75d7ee" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_3d9fece2-6efe-4f05-ac60-1ab3a0f8ce65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_3d9fece2-6efe-4f05-ac60-1ab3a0f8ce65" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_3d9fece2-6efe-4f05-ac60-1ab3a0f8ce65_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_3d9fece2-6efe-4f05-ac60-1ab3a0f8ce65" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_3d9fece2-6efe-4f05-ac60-1ab3a0f8ce65_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_430563bf-1832-4759-bd67-d008cd1a62d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_3d9fece2-6efe-4f05-ac60-1ab3a0f8ce65" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_430563bf-1832-4759-bd67-d008cd1a62d0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_4f5884aa-d566-4b77-a543-9ba229fbbc93" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_430563bf-1832-4759-bd67-d008cd1a62d0" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_4f5884aa-d566-4b77-a543-9ba229fbbc93" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_02c3068b-bd93-4d27-a389-dafb5a273d9d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:to="loc_srt_MajorCustomersAxis_02c3068b-bd93-4d27-a389-dafb5a273d9d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_02c3068b-bd93-4d27-a389-dafb5a273d9d_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_MajorCustomersAxis_02c3068b-bd93-4d27-a389-dafb5a273d9d" xlink:to="loc_srt_NameOfMajorCustomerDomain_02c3068b-bd93-4d27-a389-dafb5a273d9d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_86b2b203-191c-4bce-9a03-67ef09048166" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_MajorCustomersAxis_02c3068b-bd93-4d27-a389-dafb5a273d9d" xlink:to="loc_srt_NameOfMajorCustomerDomain_86b2b203-191c-4bce-9a03-67ef09048166" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer2Member_0fe405dc-2a2d-4547-ac35-88b4262af974" xlink:href="cgnx-20241231.xsd#cgnx_Customer2Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_86b2b203-191c-4bce-9a03-67ef09048166" xlink:to="loc_cgnx_Customer2Member_0fe405dc-2a2d-4547-ac35-88b4262af974" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer1Member_4f6938cf-4e39-4894-b302-e4cf2b91ed58" xlink:href="cgnx-20241231.xsd#cgnx_Customer1Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_86b2b203-191c-4bce-9a03-67ef09048166" xlink:to="loc_cgnx_Customer1Member_4f6938cf-4e39-4894-b302-e4cf2b91ed58" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments_27f987bb-11c6-405b-b7ee-b50d529cca16" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_018122c3-4e2d-4fa0-aa16-c005825daffa" xlink:to="loc_us-gaap_NumberOfReportableSegments_27f987bb-11c6-405b-b7ee-b50d529cca16" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_95607cb1-c0f6-4bc9-b238-42cf69dd3f51" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_018122c3-4e2d-4fa0-aa16-c005825daffa" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_95607cb1-c0f6-4bc9-b238-42cf69dd3f51" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization_94bdf15a-1d54-4e09-b79b-dd992545649d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_018122c3-4e2d-4fa0-aa16-c005825daffa" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization_94bdf15a-1d54-4e09-b79b-dd992545649d" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_5a33e0e9-042a-4d9b-90bb-0a17be721f36" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_d14d5773-cffb-40bb-bd0a-cebee0e1910d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_5a33e0e9-042a-4d9b-90bb-0a17be721f36" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_d14d5773-cffb-40bb-bd0a-cebee0e1910d" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_efae428a-89c1-4fde-8909-4792f4dd6580" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_d14d5773-cffb-40bb-bd0a-cebee0e1910d" xlink:to="loc_srt_StatementGeographicalAxis_efae428a-89c1-4fde-8909-4792f4dd6580" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_efae428a-89c1-4fde-8909-4792f4dd6580_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_efae428a-89c1-4fde-8909-4792f4dd6580" xlink:to="loc_srt_SegmentGeographicalDomain_efae428a-89c1-4fde-8909-4792f4dd6580_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_efae428a-89c1-4fde-8909-4792f4dd6580" xlink:to="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_US_9d61f152-dc01-49d7-8f94-6c8062531cbb" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:to="loc_country_US_9d61f152-dc01-49d7-8f94-6c8062531cbb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_ced7d70c-1d02-4e25-b1b7-bcb22b87a521" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EuropeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:to="loc_srt_EuropeMember_ced7d70c-1d02-4e25-b1b7-bcb22b87a521" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_8d5bbfaf-b71b-4c58-b38c-30c061cd4622" xlink:href="cgnx-20241231.xsd#cgnx_GreaterChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:to="loc_cgnx_GreaterChinaMember_8d5bbfaf-b71b-4c58-b38c-30c061cd4622" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherGeographicAreaMember_7d80302c-a3d8-409a-a7d1-c2f988408ccd" xlink:href="cgnx-20241231.xsd#cgnx_OtherGeographicAreaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:to="loc_cgnx_OtherGeographicAreaMember_7d80302c-a3d8-409a-a7d1-c2f988408ccd" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_a937f95f-7416-4d89-accc-3cd0e66bbb5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_5a33e0e9-042a-4d9b-90bb-0a17be721f36" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_a937f95f-7416-4d89-accc-3cd0e66bbb5d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets_9589ae45-875c-4f45-8af1-25af6652ef70" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncurrentAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_5a33e0e9-042a-4d9b-90bb-0a17be721f36" xlink:to="loc_us-gaap_NoncurrentAssets_9589ae45-875c-4f45-8af1-25af6652ef70" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsAxis_1ca1042d-3990-4a61-8fbc-a0516990dab0" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:to="loc_srt_ConsolidationItemsAxis_1ca1042d-3990-4a61-8fbc-a0516990dab0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain_1ca1042d-3990-4a61-8fbc-a0516990dab0_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ConsolidationItemsAxis_1ca1042d-3990-4a61-8fbc-a0516990dab0" xlink:to="loc_srt_ConsolidationItemsDomain_1ca1042d-3990-4a61-8fbc-a0516990dab0_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain_d1339fe7-73a8-431a-b5a5-705adbbd4436" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ConsolidationItemsAxis_1ca1042d-3990-4a61-8fbc-a0516990dab0" xlink:to="loc_srt_ConsolidationItemsDomain_d1339fe7-73a8-431a-b5a5-705adbbd4436" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_b26dff53-0bca-4a28-8ec0-7e8d914d7851" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_b26dff53-0bca-4a28-8ec0-7e8d914d7851" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_b26dff53-0bca-4a28-8ec0-7e8d914d7851_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_b26dff53-0bca-4a28-8ec0-7e8d914d7851" xlink:to="loc_us-gaap_SegmentDomain_b26dff53-0bca-4a28-8ec0-7e8d914d7851_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_49e224ed-711e-4e84-9e96-2c1240aa02f5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_b26dff53-0bca-4a28-8ec0-7e8d914d7851" xlink:to="loc_us-gaap_SegmentDomain_49e224ed-711e-4e84-9e96-2c1240aa02f5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ResearchDevelopmentAndEngineeringExpensesMember_53d54cb9-c9e7-46d9-84c5-eaa50245791c" xlink:href="cgnx-20241231.xsd#cgnx_ResearchDevelopmentAndEngineeringExpensesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_49e224ed-711e-4e84-9e96-2c1240aa02f5" xlink:to="loc_cgnx_ResearchDevelopmentAndEngineeringExpensesMember_53d54cb9-c9e7-46d9-84c5-eaa50245791c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SegmentGeneralAndEngineeringExpenseMember_f3fa8567-37d7-4056-8804-36070fa53423" xlink:href="cgnx-20241231.xsd#cgnx_SegmentGeneralAndEngineeringExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentDomain_49e224ed-711e-4e84-9e96-2c1240aa02f5" xlink:to="loc_cgnx_SegmentGeneralAndEngineeringExpenseMember_f3fa8567-37d7-4056-8804-36070fa53423" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsAxis_f1b70554-bdd1-4616-b55c-a614ff7d0a8f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:to="loc_us-gaap_SubsegmentsAxis_f1b70554-bdd1-4616-b55c-a614ff7d0a8f" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsDomain_f1b70554-bdd1-4616-b55c-a614ff7d0a8f_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsegmentsAxis_f1b70554-bdd1-4616-b55c-a614ff7d0a8f" xlink:to="loc_us-gaap_SubsegmentsDomain_f1b70554-bdd1-4616-b55c-a614ff7d0a8f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsDomain_44580213-5c86-4964-98e9-d09f55bc2aaf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsegmentsAxis_f1b70554-bdd1-4616-b55c-a614ff7d0a8f" xlink:to="loc_us-gaap_SubsegmentsDomain_44580213-5c86-4964-98e9-d09f55bc2aaf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsConsolidationItemsAxis_541aa2ba-3a69-4d9b-851c-27b8b0ad4adf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsConsolidationItemsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:to="loc_us-gaap_SubsegmentsConsolidationItemsAxis_541aa2ba-3a69-4d9b-851c-27b8b0ad4adf" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsConsolidationItemsDomain_541aa2ba-3a69-4d9b-851c-27b8b0ad4adf_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsConsolidationItemsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsegmentsConsolidationItemsAxis_541aa2ba-3a69-4d9b-851c-27b8b0ad4adf" xlink:to="loc_us-gaap_SubsegmentsConsolidationItemsDomain_541aa2ba-3a69-4d9b-851c-27b8b0ad4adf_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsConsolidationItemsDomain_75b436ae-434b-48f0-af27-3eb56ba90555" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsConsolidationItemsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsegmentsConsolidationItemsAxis_541aa2ba-3a69-4d9b-851c-27b8b0ad4adf" xlink:to="loc_us-gaap_SubsegmentsConsolidationItemsDomain_75b436ae-434b-48f0-af27-3eb56ba90555" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_ad76e0e7-fab1-4389-8347-8c387d8cc5db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_ad76e0e7-fab1-4389-8347-8c387d8cc5db" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_a892fd65-721b-461a-a107-ab767ae90753" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_a892fd65-721b-461a-a107-ab767ae90753" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_103e8927-bcb3-49aa-abaa-1164b766cb4e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_GrossProfit_103e8927-bcb3-49aa-abaa-1164b766cb4e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LaborAndRelatedExpense_c39fa3c8-d849-407c-87de-a7d260294611" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LaborAndRelatedExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_LaborAndRelatedExpense_c39fa3c8-d849-407c-87de-a7d260294611" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_eaf710fb-d301-4a65-99e2-19297e0cdb61" xlink:href="cgnx-20241231.xsd#cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_eaf710fb-d301-4a65-99e2-19297e0cdb61" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_b098a214-c456-4203-8501-1ce3cdfe49b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_b098a214-c456-4203-8501-1ce3cdfe49b3" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization_132ae57d-6e9c-42bf-81c2-1d2d81237edc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_DepreciationDepletionAndAmortization_132ae57d-6e9c-42bf-81c2-1d2d81237edc" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherExpenses_cd97b1b4-7bf8-4691-9938-bcd2ba334d52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherExpenses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_OtherExpenses_cd97b1b4-7bf8-4691-9938-bcd2ba334d52" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_31c433b0-4c74-46c0-9ca9-2d1af7675625" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_31c433b0-4c74-46c0-9ca9-2d1af7675625" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_bfab33bd-2f80-4b51-b92a-9a078d11826b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_bfab33bd-2f80-4b51-b92a-9a078d11826b" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LossGainFromCatastrophes_c614e258-5536-4f62-96c6-7dd36318ffda" xlink:href="cgnx-20241231.xsd#cgnx_LossGainFromCatastrophes"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_cgnx_LossGainFromCatastrophes_c614e258-5536-4f62-96c6-7dd36318ffda" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_ddf2c377-3437-450d-a61f-1f35c8d2c749" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_RestructuringCharges_ddf2c377-3437-450d-a61f-1f35c8d2c749" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_3ec2f26e-4558-4375-830c-4f861e067c78" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_OperatingIncomeLoss_3ec2f26e-4558-4375-830c-4f861e067c78" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_110c9a78-c81d-4862-b667-854f627592c2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_110c9a78-c81d-4862-b667-854f627592c2" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_c7c86303-e561-47ae-a5ac-abcc6603ad6b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_c7c86303-e561-47ae-a5ac-abcc6603ad6b" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_99c67acc-4fe9-4a52-aacc-2f214da13a96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_99c67acc-4fe9-4a52-aacc-2f214da13a96" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_1cdf70b8-775a-421b-af60-96fdcf5d0b0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_1cdf70b8-775a-421b-af60-96fdcf5d0b0d" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_68cd5799-f010-47c2-9c40-d1c02670b8a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_68cd5799-f010-47c2-9c40-d1c02670b8a7" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_00fdb00a-9900-4167-b8d3-b8f20808b840" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_NetIncomeLoss_00fdb00a-9900-4167-b8d3-b8f20808b840" xlink:type="arc" order="18"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#BusinessAcquisitionsMoritexNarrativeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_52153f43-4fe8-4cea-bbad-64d7c6040afe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_52153f43-4fe8-4cea-bbad-64d7c6040afe" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_302a84ee-91a6-4c67-b856-c52866ea573c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_52153f43-4fe8-4cea-bbad-64d7c6040afe" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_302a84ee-91a6-4c67-b856-c52866ea573c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_302a84ee-91a6-4c67-b856-c52866ea573c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_302a84ee-91a6-4c67-b856-c52866ea573c" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_302a84ee-91a6-4c67-b856-c52866ea573c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_a47658bc-be0c-42da-bcaa-6de28e20502d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_302a84ee-91a6-4c67-b856-c52866ea573c" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_a47658bc-be0c-42da-bcaa-6de28e20502d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_610ee5cc-ca9b-4f38-96ac-3344e72caf25" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_a47658bc-be0c-42da-bcaa-6de28e20502d" xlink:to="loc_cgnx_MoritexCorporationMember_610ee5cc-ca9b-4f38-96ac-3344e72caf25" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis_92d64030-d632-49ad-bef7-5989905d5ef7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementScenarioAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_52153f43-4fe8-4cea-bbad-64d7c6040afe" xlink:to="loc_srt_StatementScenarioAxis_92d64030-d632-49ad-bef7-5989905d5ef7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_92d64030-d632-49ad-bef7-5989905d5ef7_default" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementScenarioAxis_92d64030-d632-49ad-bef7-5989905d5ef7" xlink:to="loc_srt_ScenarioUnspecifiedDomain_92d64030-d632-49ad-bef7-5989905d5ef7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_712380c2-524f-496e-9d42-4d06774c641c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementScenarioAxis_92d64030-d632-49ad-bef7-5989905d5ef7" xlink:to="loc_srt_ScenarioUnspecifiedDomain_712380c2-524f-496e-9d42-4d06774c641c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember_12513d00-5e1a-4dca-941c-480ddf4a517a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioForecastMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ScenarioUnspecifiedDomain_712380c2-524f-496e-9d42-4d06774c641c" xlink:to="loc_srt_ScenarioForecastMember_12513d00-5e1a-4dca-941c-480ddf4a517a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationEnterpriseValue_b39c849d-892f-4276-a78b-7095133eb030" xlink:href="cgnx-20241231.xsd#cgnx_BusinessCombinationEnterpriseValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_cgnx_BusinessCombinationEnterpriseValue_b39c849d-892f-4276-a78b-7095133eb030" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_1623eddd-584c-4124-a789-4d6a715214fb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferred1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_1623eddd-584c-4124-a789-4d6a715214fb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_19191eb0-eaf7-48dd-b934-8d7ded94691e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_19191eb0-eaf7-48dd-b934-8d7ded94691e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_c4bdf744-f60f-44cc-a32a-c042f44a55d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_c4bdf744-f60f-44cc-a32a-c042f44a55d1" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_d9604e97-1ead-4ee8-83ff-e873a10e2261" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_d9604e97-1ead-4ee8-83ff-e873a10e2261" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_71e2af7e-8b24-40e4-b1e8-f43e2425a5b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_71e2af7e-8b24-40e4-b1e8-f43e2425a5b1" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_843451cd-2bce-4ae2-a7a8-faa27af2f842" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_843451cd-2bce-4ae2-a7a8-faa27af2f842" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillPurchaseAccountingAdjustments_6a0c4e5a-b2fc-4918-b87f-b980f0bdb3e6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillPurchaseAccountingAdjustments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_GoodwillPurchaseAccountingAdjustments_6a0c4e5a-b2fc-4918-b87f-b980f0bdb3e6" xlink:type="arc" order="7"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_f8841b3d-14b4-48e7-90e7-63a0d7545097" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_f8841b3d-14b4-48e7-90e7-63a0d7545097" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_94730032-bc3d-4009-96a5-d8f7fa1b101d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_f8841b3d-14b4-48e7-90e7-63a0d7545097" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_94730032-bc3d-4009-96a5-d8f7fa1b101d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_94730032-bc3d-4009-96a5-d8f7fa1b101d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_94730032-bc3d-4009-96a5-d8f7fa1b101d" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_94730032-bc3d-4009-96a5-d8f7fa1b101d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1eeb32f4-8af2-4519-99b0-1f995e1616f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_94730032-bc3d-4009-96a5-d8f7fa1b101d" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1eeb32f4-8af2-4519-99b0-1f995e1616f8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_73a8442d-b0e4-4d6d-b506-dd627e9ebadd" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1eeb32f4-8af2-4519-99b0-1f995e1616f8" xlink:to="loc_cgnx_MoritexCorporationMember_73a8442d-b0e4-4d6d-b506-dd627e9ebadd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_7846e9bc-8e18-4b9a-9da6-bcc1d01945e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_f8841b3d-14b4-48e7-90e7-63a0d7545097" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_7846e9bc-8e18-4b9a-9da6-bcc1d01945e5" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_7846e9bc-8e18-4b9a-9da6-bcc1d01945e5_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_7846e9bc-8e18-4b9a-9da6-bcc1d01945e5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_7846e9bc-8e18-4b9a-9da6-bcc1d01945e5_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_35a6d74e-23f6-4fa1-9288-976cfe919117" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_7846e9bc-8e18-4b9a-9da6-bcc1d01945e5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_35a6d74e-23f6-4fa1-9288-976cfe919117" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerRelationshipsMember_e0dab608-b39f-437b-a918-c5c94ff3a0b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_35a6d74e-23f6-4fa1-9288-976cfe919117" xlink:to="loc_us-gaap_CustomerRelationshipsMember_e0dab608-b39f-437b-a918-c5c94ff3a0b6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologyMember_339e8dd3-4c3b-4454-beba-20e9020e5f2d" xlink:href="cgnx-20241231.xsd#cgnx_CompletedTechnologyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_35a6d74e-23f6-4fa1-9288-976cfe919117" xlink:to="loc_cgnx_CompletedTechnologyMember_339e8dd3-4c3b-4454-beba-20e9020e5f2d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_d47e31fd-0908-4917-a0a4-cc0ae259b127" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_35a6d74e-23f6-4fa1-9288-976cfe919117" xlink:to="loc_us-gaap_TrademarksMember_d47e31fd-0908-4917-a0a4-cc0ae259b127" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_54a05aed-c34b-4183-959f-1dade5e52db2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_54a05aed-c34b-4183-959f-1dade5e52db2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_f4d00da1-b265-4dab-b423-bd995f1105b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_f4d00da1-b265-4dab-b423-bd995f1105b1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_a9b8b13e-117b-4cea-aeef-1022ac829bbe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_a9b8b13e-117b-4cea-aeef-1022ac829bbe" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_d28d492f-257f-4798-906c-f88bc3cf18f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_d28d492f-257f-4798-906c-f88bc3cf18f3" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_3b85b6f2-a730-41fa-9c37-b6a8bb74311d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_Goodwill_3b85b6f2-a730-41fa-9c37-b6a8bb74311d" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_88fbcfe0-7d62-4e64-955f-74f43aead802" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_88fbcfe0-7d62-4e64-955f-74f43aead802" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_6937bd31-1f63-435d-a985-17e89c9b9643" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_6937bd31-1f63-435d-a985-17e89c9b9643" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_3d4aa421-bbe1-4504-ab9c-a69e3a8414ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_3d4aa421-bbe1-4504-ab9c-a69e3a8414ae" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_7a2d5bb9-f384-448a-9270-aa049ef03775" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_7a2d5bb9-f384-448a-9270-aa049ef03775" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_1d303341-79cd-4130-b15d-33e5ff8166d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_1d303341-79cd-4130-b15d-33e5ff8166d7" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_4c16ea7d-8c6d-4c96-861f-ea4e166bd128" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_4c16ea7d-8c6d-4c96-861f-ea4e166bd128" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_90f8ff85-a87f-4ce8-99fe-3557a953e83e" xlink:href="cgnx-20241231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_90f8ff85-a87f-4ce8-99fe-3557a953e83e" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_459d9c05-6fc0-402b-8e82-35fecc401f74" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_459d9c05-6fc0-402b-8e82-35fecc401f74" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_3d78bbad-7ab4-4642-9d1e-93ffb39eab0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_3d78bbad-7ab4-4642-9d1e-93ffb39eab0b" xlink:type="arc" order="13"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/LossfromFireDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#LossfromFireDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/LossfromFireDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemTable_33ef159e-0fda-490c-8777-bfdfd97fd8e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_us-gaap_UnusualOrInfrequentItemTable_33ef159e-0fda-490c-8777-bfdfd97fd8e3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemAxis_3d6a0c9c-3390-45c0-9f29-3dab450f28ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_UnusualOrInfrequentItemTable_33ef159e-0fda-490c-8777-bfdfd97fd8e3" xlink:to="loc_us-gaap_UnusualOrInfrequentItemAxis_3d6a0c9c-3390-45c0-9f29-3dab450f28ef" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemDomain_3d6a0c9c-3390-45c0-9f29-3dab450f28ef_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_UnusualOrInfrequentItemAxis_3d6a0c9c-3390-45c0-9f29-3dab450f28ef" xlink:to="loc_us-gaap_UnusualOrInfrequentItemDomain_3d6a0c9c-3390-45c0-9f29-3dab450f28ef_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemDomain_aaec5d8b-6eaa-4564-90b5-d29dc30be476" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_UnusualOrInfrequentItemAxis_3d6a0c9c-3390-45c0-9f29-3dab450f28ef" xlink:to="loc_us-gaap_UnusualOrInfrequentItemDomain_aaec5d8b-6eaa-4564-90b5-d29dc30be476" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FireMember_4c4a2229-53f2-4235-a4a9-eb7dcc69e65b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FireMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemDomain_aaec5d8b-6eaa-4564-90b5-d29dc30be476" xlink:to="loc_us-gaap_FireMember_4c4a2229-53f2-4235-a4a9-eb7dcc69e65b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossFromCatastrophes_4d9c469b-23b9-4cd4-85f0-07a0b85d2a39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossFromCatastrophes"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_us-gaap_LossFromCatastrophes_4d9c469b-23b9-4cd4-85f0-07a0b85d2a39" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GrossLossFromCatastrophes_d4504034-4db3-456a-b795-8cb70d1e16ef" xlink:href="cgnx-20241231.xsd#cgnx_GrossLossFromCatastrophes"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_cgnx_GrossLossFromCatastrophes_d4504034-4db3-456a-b795-8cb70d1e16ef" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InsuranceRecoveries_82c486ec-8acf-4a9e-ba1b-d3c263b2cfb1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InsuranceRecoveries"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_us-gaap_InsuranceRecoveries_82c486ec-8acf-4a9e-ba1b-d3c263b2cfb1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesBusinessInterruption_ba595437-cba5-46dc-8273-1ec953ddddc4" xlink:href="cgnx-20241231.xsd#cgnx_InsuranceRecoveriesBusinessInterruption"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_cgnx_InsuranceRecoveriesBusinessInterruption_ba595437-cba5-46dc-8273-1ec953ddddc4" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_796313a3-6197-4acd-8380-6f7e36b0dec1" xlink:href="cgnx-20241231.xsd#cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_796313a3-6197-4acd-8380-6f7e36b0dec1" xlink:type="arc" order="4"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SubsequentEventsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_62002311-896f-4e2c-8040-6485184b02fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_f33f88ce-0eed-472d-8dda-357efdc956b7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_SubsequentEventLineItems_62002311-896f-4e2c-8040-6485184b02fc" xlink:to="loc_us-gaap_SubsequentEventTable_f33f88ce-0eed-472d-8dda-357efdc956b7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_eeb4d8bc-a35d-46ce-89d4-7a6836d9cbfa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_f33f88ce-0eed-472d-8dda-357efdc956b7" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_eeb4d8bc-a35d-46ce-89d4-7a6836d9cbfa" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_eeb4d8bc-a35d-46ce-89d4-7a6836d9cbfa_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_eeb4d8bc-a35d-46ce-89d4-7a6836d9cbfa" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_eeb4d8bc-a35d-46ce-89d4-7a6836d9cbfa_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_2671b452-a839-4f77-b465-3fc4df31a4f2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_eeb4d8bc-a35d-46ce-89d4-7a6836d9cbfa" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_2671b452-a839-4f77-b465-3fc4df31a4f2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_78e1309b-0e62-4568-b0d3-5377d65d16df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_2671b452-a839-4f77-b465-3fc4df31a4f2" xlink:to="loc_us-gaap_SubsequentEventMember_78e1309b-0e62-4568-b0d3-5377d65d16df" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare_3e060e5d-af85-45e7-bcf2-fed9869dc5b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsPayableAmountPerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_62002311-896f-4e2c-8040-6485184b02fc" xlink:to="loc_us-gaap_DividendsPayableAmountPerShare_3e060e5d-af85-45e7-bcf2-fed9869dc5b3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_bd7c6fc8-843a-4f94-9988-11fb66530956" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_62002311-896f-4e2c-8040-6485184b02fc" xlink:to="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_bd7c6fc8-843a-4f94-9988-11fb66530956" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_8a7d550d-e095-4034-a5fa-c16df0623c15" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_62002311-896f-4e2c-8040-6485184b02fc" xlink:to="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_8a7d550d-e095-4034-a5fa-c16df0623c15" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#ScheduleIIValuationandQualifyingAccountsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_c2c7614c-d05d-47d0-913f-f8873aeab38c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_fcfd738e-a26c-4a7f-b9cd-93d145a7effa" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_c2c7614c-d05d-47d0-913f-f8873aeab38c" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_fcfd738e-a26c-4a7f-b9cd-93d145a7effa" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_d92e15dc-d0d7-4f36-b6b5-a628053ca9e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_fcfd738e-a26c-4a7f-b9cd-93d145a7effa" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_d92e15dc-d0d7-4f36-b6b5-a628053ca9e5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_d92e15dc-d0d7-4f36-b6b5-a628053ca9e5_default" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_d92e15dc-d0d7-4f36-b6b5-a628053ca9e5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_d92e15dc-d0d7-4f36-b6b5-a628053ca9e5_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_dad097b6-4f4a-4f14-acc1-913c9ee90493" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_d92e15dc-d0d7-4f36-b6b5-a628053ca9e5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_dad097b6-4f4a-4f14-acc1-913c9ee90493" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UncollectibleReceivablesMember_6e963b61-6e92-4b9b-9fe4-f04383cb0410" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UncollectibleReceivablesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_dad097b6-4f4a-4f14-acc1-913c9ee90493" xlink:to="loc_us-gaap_UncollectibleReceivablesMember_6e963b61-6e92-4b9b-9fe4-f04383cb0410" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesReturnsAndAllowancesMember_bc9e153a-526c-4131-bc4c-773f9f676a2c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesReturnsAndAllowancesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_dad097b6-4f4a-4f14-acc1-913c9ee90493" xlink:to="loc_us-gaap_SalesReturnsAndAllowancesMember_bc9e153a-526c-4131-bc4c-773f9f676a2c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_e64477a9-bc9b-4f8c-b1f7-1b9a49933546" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_dad097b6-4f4a-4f14-acc1-913c9ee90493" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_e64477a9-bc9b-4f8c-b1f7-1b9a49933546" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_c2c7614c-d05d-47d0-913f-f8873aeab38c" xlink:to="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_26bcb743-0482-4422-a78a-d2a843c8f3ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_26bcb743-0482-4422-a78a-d2a843c8f3ed" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_1cb88725-6a90-4b55-bb98-4dcbd2a0c8fe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_1cb88725-6a90-4b55-bb98-4dcbd2a0c8fe" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_328b7834-86d2-4839-80f9-c88e292b1552" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_328b7834-86d2-4839-80f9-c88e292b1552" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions_5aa8b486-43fa-4626-a5a2-5716d609ff67" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDeductions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDeductions_5aa8b486-43fa-4626-a5a2-5716d609ff67" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_f4ae374e-b0c5-458a-966d-dcf3c36b11a4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_f4ae374e-b0c5-458a-966d-dcf3c36b11a4" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_4e19d9be-9455-40df-9fd0-c65ef1ba75c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists" xlink:type="simple" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd#eedm"/>
  <link:definitionLink xlink:role="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsAbstract" xlink:to="loc_us-gaap_OtherAssetsNoncurrent" xlink:type="arc" order="101"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesAbstract" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc" order="31"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/IndividualsOnly" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#IndividualsOnly"/>
  <link:definitionLink xlink:role="http://xbrl.sec.gov/ecd/role/IndividualsOnly" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenMember_0fe82a7c-9c19-4dc7-ba9a-53d4656e4cc3" xlink:href="cgnx-20241231.xsd#cgnx_JoergKuechenMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="loc_cgnx_JoergKuechenMember_0fe82a7c-9c19-4dc7-ba9a-53d4656e4cc3" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/TradingArrangementsOnly" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#TradingArrangmentsOnly"/>
  <link:definitionLink xlink:role="http://xbrl.sec.gov/ecd/role/TradingArrangementsOnly" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllTradingArrangementsMember"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember_8fba06b4-3e6d-407c-a6f4-6dec4b9a3057" xlink:href="cgnx-20241231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember_8fba06b4-3e6d-407c-a6f4-6dec4b9a3057" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember_2c2b9f86-8e8d-48c1-9b57-f474d152e36a" xlink:href="cgnx-20241231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember_2c2b9f86-8e8d-48c1-9b57-f474d152e36a" xlink:type="arc" order="2"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>12
<FILENAME>cgnx-20241231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:6abacc18-a2b7-49fc-a7c2-9a55de473aa7,g:b2bf2ad7-589f-41d7-85c1-902f84842ef8-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel"/>
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_d240fc43-e4ef-4a57-b498-c5f6a251a856_terseLabel_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total intrinsic values of stock options exercised</link:label>
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_label_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shares Based Compensation Arrangement By Shares Based Payment Award Options Exercised Intrinsic Value</link:label>
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_documentation_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Shares based compensation arrangement by shares based payment award options exercised intrinsic value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:href="cgnx-20241231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:to="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_320d7d5b-b05b-4b1a-841b-a01bcccf5bee_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options vested or expected to vest, weighted-average remaining contractual term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_a7097c24-0166-4fae-94e6-85ed1d647152_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustments to reconcile net income to net cash provided by operating activities:</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_6ebf2f87-94ef-4032-ae22-ff943ded4e0d_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share Repurchase Program, Remaining Authorized, Amount</link:label>
    <link:label id="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_label_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Repurchase Program, Remaining Authorized, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:to="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CoverAbstract_1720c378-d89f-4ab8-a460-cb11699ed559_terseLabel_en-US" xlink:label="lab_dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:label id="lab_dei_CoverAbstract_label_en-US" xlink:label="lab_dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CoverAbstract" xlink:to="lab_dei_CoverAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductLiabilityContingencyTable_cb7d146b-eeec-4982-b89a-93451d62ab25_terseLabel_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product Liability Contingency [Table]</link:label>
    <link:label id="lab_us-gaap_ProductLiabilityContingencyTable_label_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Liability Contingency [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductLiabilityContingencyTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable" xlink:to="lab_us-gaap_ProductLiabilityContingencyTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_7e672aca-8680-4f3d-8166-7ca91fb45298_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, after Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_5f292122-8b03-4565-8f20-27ecb1ead30d_totalLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net change in cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_29b7ac67-579a-4b3e-8248-aa14c43fafae_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Taxation on multinational operations</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Taxation on Multinational Operations, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Taxation on Multinational Operations, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_34a3292e-1ef5-45a7-a183-cbddbc214228_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of lease payments</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInventory_6866c6e5-e84c-426c-a77c-69d31aa0087f_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory and revenue related</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInventory_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Inventory</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInventory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsInventory" xlink:to="lab_us-gaap_DeferredTaxAssetsInventory" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_2dc07289-6136-4fcf-bc5a-1d0013ed857d_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:to="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_MXN_5caecf79-0dbc-48f7-94fa-3fbcafbc7ca6_terseLabel_en-US" xlink:label="lab_currency_MXN" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Mexican Peso [Member]</link:label>
    <link:label id="lab_currency_MXN_label_en-US" xlink:label="lab_currency_MXN" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Mexico, Pesos</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_MXN" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_MXN"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_MXN" xlink:to="lab_currency_MXN" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_TradingSymbol_7b6a0ff1-f1f6-4a27-b08b-52cf45f75b14_terseLabel_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:label id="lab_dei_TradingSymbol_label_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_TradingSymbol" xlink:to="lab_dei_TradingSymbol" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable_bf2644fe-dc29-40b5-9dac-3dc981edc0eb_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalent [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalent [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:to="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_12c6bb4e-0aa7-4210-ad1c-7aa75a841ec8_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Asset, Fair Value, Gross Asset</link:label>
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_label_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Asset, Subject to Master Netting Arrangement, before Offset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:to="lab_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonNeosMember_terseLabel_en-US" xlink:label="lab_ecd_NonNeosMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-NEOs</link:label>
    <link:label id="lab_ecd_NonNeosMember_label_en-US" xlink:label="lab_ecd_NonNeosMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-NEOs [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonNeosMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonNeosMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonNeosMember" xlink:to="lab_ecd_NonNeosMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_acc70506-59de-44b3-80fb-b5be7a076df9_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax benefit recognized related to stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expense, Tax Benefit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_a75efbc3-60e4-4122-9afc-bde21a5f9f45_terseLabel_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation expense capitalized</link:label>
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_label_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Employee Service Share Based Compensation Recognized Period Costs Capitalized Amount</link:label>
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_documentation_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Employee service share based compensation recognized period costs capitalized amount.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:href="cgnx-20241231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:to="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_ef92668e-a351-4c12-8d00-2b0c8e94764b_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetRentableArea_b7da9716-2b99-4546-a7f2-308a3dc6af2c_terseLabel_en-US" xlink:label="lab_us-gaap_NetRentableArea" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net Rentable Area</link:label>
    <link:label id="lab_us-gaap_NetRentableArea_label_en-US" xlink:label="lab_us-gaap_NetRentableArea" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Rentable Area</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetRentableArea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetRentableArea"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetRentableArea" xlink:to="lab_us-gaap_NetRentableArea" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShortTermInvestmentsMember_f72f7d33-a45c-4c55-bfd0-33188d0b8eb0_terseLabel_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Short-term Investments [Member]</link:label>
    <link:label id="lab_us-gaap_ShortTermInvestmentsMember_label_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Short-Term Investments [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShortTermInvestmentsMember" xlink:to="lab_us-gaap_ShortTermInvestmentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_2ae2bef9-2c0c-4f11-9c6d-69f70e71e5f7_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accounts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerSharePolicyTextBlock_0c772d9b-33ee-4efc-b7c7-cda66dce21c4_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net Income Per Share</link:label>
    <link:label id="lab_us-gaap_EarningsPerSharePolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerSharePolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerSharePolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="lab_us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_InvestmentDurationDomain_9633723a-5797-4b41-bc89-52559fa2110d_terseLabel_en-US" xlink:label="lab_cgnx_InvestmentDurationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment Duration [Domain]</link:label>
    <link:label id="lab_cgnx_InvestmentDurationDomain_label_en-US" xlink:label="lab_cgnx_InvestmentDurationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment Duration [Domain]</link:label>
    <link:label id="lab_cgnx_InvestmentDurationDomain_documentation_en-US" xlink:label="lab_cgnx_InvestmentDurationDomain" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Investment Duration [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain" xlink:href="cgnx-20241231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_InvestmentDurationDomain" xlink:to="lab_cgnx_InvestmentDurationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_7776d5ad-75f1-4c5e-883e-53c9b3b78d85_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryPolicyTextBlock" xlink:to="lab_us-gaap_InventoryPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonRule10b51ArrAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Adopted</link:label>
    <link:label id="lab_ecd_NonRule10b51ArrAdoptedFlag_label_en-US" xlink:label="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:to="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompletedTechnologyMember_6d8b71ae-a916-4853-8a7f-71ba12053b6c_terseLabel_en-US" xlink:label="lab_cgnx_CompletedTechnologyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Completed technologies</link:label>
    <link:label id="lab_cgnx_CompletedTechnologyMember_label_en-US" xlink:label="lab_cgnx_CompletedTechnologyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Completed Technology [Member]</link:label>
    <link:label id="lab_cgnx_CompletedTechnologyMember_documentation_en-US" xlink:label="lab_cgnx_CompletedTechnologyMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Completed Technology [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologyMember" xlink:href="cgnx-20241231.xsd#cgnx_CompletedTechnologyMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompletedTechnologyMember" xlink:to="lab_cgnx_CompletedTechnologyMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromStockOptionsExercised_a39dac39-9fec-409d-9f32-280988fea8e7_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from Stock Options Exercised</link:label>
    <link:label id="lab_us-gaap_ProceedsFromStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Stock Options Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromStockOptionsExercised" xlink:to="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosuresTextBlock_d89667ee-9828-4440-9dd4-5a8ada0827e2_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueDisclosuresTextBlock_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresTextBlock" xlink:to="lab_us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LandMember_32193f10-a497-40aa-8158-5c9dcec352d3_terseLabel_en-US" xlink:label="lab_us-gaap_LandMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Land [Member]</link:label>
    <link:label id="lab_us-gaap_LandMember_label_en-US" xlink:label="lab_us-gaap_LandMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Land [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LandMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LandMember" xlink:to="lab_us-gaap_LandMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_171bd140-0423-43d0-b023-2cdd48932a9c_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets Other Noncurrent</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred tax assets other non current.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:to="lab_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_867e520f-dfd2-4ede-b3f6-2fc1780d7b8f_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net unrealized gain (loss), net of tax of $1,245, $4,389, and $(5,943) in 2024, 2023, and 2022, respectively</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgDiscLineItems_label_en-US" xlink:label="lab_ecd_AwardTmgDiscLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing Disclosures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgDiscLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgDiscLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="lab_ecd_AwardTmgDiscLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeGainLossOnDerivativeNet_fde016b1-30d9-4ad4-9b05-d00fa3f57fe1_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gains (losses) recognized in net income</link:label>
    <link:label id="lab_us-gaap_DerivativeGainLossOnDerivativeNet_label_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative, Gain (Loss) on Derivative, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:to="lab_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_2a1a83cf-7a3d-4970-8a1a-917e1ac993dc_terseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Allowance for Credit Loss</link:label>
    <link:label id="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:to="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_a146b4d5-5ec1-4cb6-b007-567a34206570_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option, Exercise Price Range [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_d2af9d58-4d42-453c-8dee-2672d2c0e62d_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax reserves</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Reserves, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Reserves, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerAbstract_4cf5f7f9-6dde-4736-b012-6dc440d8098d_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Abstract]</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerAbstract_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_86919c90-0b0f-4b1d-b2c5-0bfb1ae681be_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PlanNameDomain_ce192074-e31e-44ca-9f9f-ce3072c45c3a_terseLabel_en-US" xlink:label="lab_us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:label id="lab_us-gaap_PlanNameDomain_label_en-US" xlink:label="lab_us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PlanNameDomain" xlink:to="lab_us-gaap_PlanNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_country_US_16375810-9bf0-4a87-b659-3069945fece1_terseLabel_en-US" xlink:label="lab_country_US" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">United States [Member]</link:label>
    <link:label id="lab_country_US_label_en-US" xlink:label="lab_country_US" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">UNITED STATES</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_US" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_US" xlink:to="lab_country_US" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_304fde10-1910-4276-be84-2dabc1cfcb8c_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effect of dilutive stock options</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted, Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:to="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_83a70511-6f5a-4061-abf5-930c8428cdf3_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Assets, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAssetsNoncurrent" xlink:to="lab_us-gaap_OtherAssetsNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeasesAbstract_bcaa9a4e-b37b-47d3-8075-a8d98a46a874_terseLabel_en-US" xlink:label="lab_us-gaap_LeasesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements or Change in Accounting Principle [Table]</link:label>
    <link:label id="lab_us-gaap_LeasesAbstract_label_en-US" xlink:label="lab_us-gaap_LeasesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Leases [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeasesAbstract" xlink:to="lab_us-gaap_LeasesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsGross_9e90fb9b-e6a5-4687-91c3-dd6e2d824907_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross Carrying Value</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsGross_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_30791801-3a5a-421c-b722-bf1b968a7b96_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2022Member_7621e715-5aa0-4ec5-a107-d1918176dd81_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2022Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Repurchase Program March 2022</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2022Member_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2022Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Repurchase Program March 2022 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2022Member_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2022Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Repurchase Program March 2022</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2022Member" xlink:href="cgnx-20241231.xsd#cgnx_RepurchaseProgramMarch2022Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramMarch2022Member" xlink:to="lab_cgnx_RepurchaseProgramMarch2022Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CorporateBondSecuritiesMember_a70b4c38-445b-4386-a49b-7d877f34b026_terseLabel_en-US" xlink:label="lab_us-gaap_CorporateBondSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Corporate Bonds [Member]</link:label>
    <link:label id="lab_us-gaap_CorporateBondSecuritiesMember_label_en-US" xlink:label="lab_us-gaap_CorporateBondSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Corporate Bond Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CorporateBondSecuritiesMember" xlink:to="lab_us-gaap_CorporateBondSecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_5f2859a2-a7f7-477a-928a-6333c0aec66b_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by operating activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_346cdb17-4433-4abf-90c6-e6e604f9696d_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash flows from operating activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_OperatingLossCarryforwardMember_23755a2a-1cdd-4ac0-b5cb-cd54d1294ea4_terseLabel_en-US" xlink:label="lab_cgnx_OperatingLossCarryforwardMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforward</link:label>
    <link:label id="lab_cgnx_OperatingLossCarryforwardMember_label_en-US" xlink:label="lab_cgnx_OperatingLossCarryforwardMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforward [Member]</link:label>
    <link:label id="lab_cgnx_OperatingLossCarryforwardMember_documentation_en-US" xlink:label="lab_cgnx_OperatingLossCarryforwardMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Loss Carryforward</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLossCarryforwardMember" xlink:href="cgnx-20241231.xsd#cgnx_OperatingLossCarryforwardMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OperatingLossCarryforwardMember" xlink:to="lab_cgnx_OperatingLossCarryforwardMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_4444cab0-052a-486f-b8e2-6370683522b7_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible asset in connection with change in tax structure</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Intangible Asset, Change in Tax Structure</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Intangible Asset, Change in Tax Structure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:to="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_2888dc0c-3e90-4f15-a6be-833ee68430d0_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMethodTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing Method</link:label>
    <link:label id="lab_ecd_AwardTmgMethodTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing Method [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMethodTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMethodTextBlock" xlink:to="lab_ecd_AwardTmgMethodTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TradingArrByIndTable_terseLabel_en-US" xlink:label="lab_ecd_TradingArrByIndTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Arrangements, by Individual</link:label>
    <link:label id="lab_ecd_TradingArrByIndTable_label_en-US" xlink:label="lab_ecd_TradingArrByIndTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangements, by Individual [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrByIndTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrByIndTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="lab_ecd_TradingArrByIndTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueByMeasurementFrequencyAxis_fee0ca92-821d-4ace-b13d-9bf971055704_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByMeasurementFrequencyAxis_label_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="lab_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract_label_en-US" xlink:label="lab_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Recognition and Deferred Revenue [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRecognitionAndDeferredRevenueAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract" xlink:to="lab_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_900af7df-b1ba-4bd9-8bdd-4357055228fa_terseLabel_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_label_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCommonStockSharesOutstanding" xlink:to="lab_dei_EntityCommonStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTradingPoliciesProcLineItems_label_en-US" xlink:label="lab_ecd_InsiderTradingPoliciesProcLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingPoliciesProcLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="lab_ecd_InsiderTradingPoliciesProcLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_28ae8787-b191-4e3e-8447-c21e3ed9f932_terseLabel_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Money market instruments</link:label>
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Money Market Instruments Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Money market instruments fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:href="cgnx-20241231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:to="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UseOfEstimates_aad2f6c8-c0aa-4278-a524-38cda001772a_terseLabel_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Use of Estimates in the Preparation of Financial Statements</link:label>
    <link:label id="lab_us-gaap_UseOfEstimates_label_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Use of Estimates, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UseOfEstimates" xlink:to="lab_us-gaap_UseOfEstimates" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_d0009c03-3db9-4fb7-b1b6-15b43322eedf_terseLabel_en-US" xlink:label="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_label_en-US" xlink:label="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment</link:label>
    <link:label id="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_documentation_en-US" xlink:label="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:href="cgnx-20241231.xsd#cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:to="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToCompAmt_terseLabel_en-US" xlink:label="lab_ecd_AdjToCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation, Amount</link:label>
    <link:label id="lab_ecd_AdjToCompAmt_label_en-US" xlink:label="lab_ecd_AdjToCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToCompAmt" xlink:to="lab_ecd_AdjToCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalCommonStock_ba7ada84-033e-4f5a-ac0b-176bb4e8014c_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional paid-in capital</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalCommonStock_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid in Capital, Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalCommonStock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:to="lab_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PayablesAndAccrualsAbstract_11291d64-9070-402f-b6a0-46d967eeb91c_terseLabel_en-US" xlink:label="lab_us-gaap_PayablesAndAccrualsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payables and Accruals [Abstract]</link:label>
    <link:label id="lab_us-gaap_PayablesAndAccrualsAbstract_label_en-US" xlink:label="lab_us-gaap_PayablesAndAccrualsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payables and Accruals [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract" xlink:to="lab_us-gaap_PayablesAndAccrualsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingRecoveryCompAmt_terseLabel_en-US" xlink:label="lab_ecd_OutstandingRecoveryCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Amount</link:label>
    <link:label id="lab_ecd_OutstandingRecoveryCompAmt_label_en-US" xlink:label="lab_ecd_OutstandingRecoveryCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding Recovery Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingRecoveryCompAmt" xlink:to="lab_ecd_OutstandingRecoveryCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_0adcc72c-63df-49b4-81e0-dbe76dec293d_terseLabel_en-US" xlink:label="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Purchase order outstanding</link:label>
    <link:label id="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_label_en-US" xlink:label="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Purchase Commitment, Remaining Minimum Amount Committed</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:to="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember_terseLabel_en-US" xlink:label="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table</link:label>
    <link:label id="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember_label_en-US" xlink:label="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:to="lab_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_b9624d4e-ffd0-443f-922f-69691eee6029_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">1-2 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After One Year Before Two Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">This item represents the fair value of debt securities which are expected to mature within one year of the balance sheet date and which are categorized neither as held-to-maturity nor trading securities.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_3f0b0ef7-b4fc-49ca-b2aa-ce8455f9e50d_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net change related to available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Available-for-Sale Securities Adjustment, Net of Tax, Portion Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:to="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntitySmallBusiness_c4416e43-6174-417d-a7bd-c5c6dc0edbd3_terseLabel_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:label id="lab_dei_EntitySmallBusiness_label_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntitySmallBusiness" xlink:to="lab_dei_EntitySmallBusiness" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_6ecb3eb3-1839-4523-a587-cd4265dea8e6_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued Expenses</link:label>
    <link:label id="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CoSelectedMeasureAmt_terseLabel_en-US" xlink:label="lab_ecd_CoSelectedMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company Selected Measure Amount</link:label>
    <link:label id="lab_ecd_CoSelectedMeasureAmt_label_en-US" xlink:label="lab_ecd_CoSelectedMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Selected Measure Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CoSelectedMeasureAmt" xlink:to="lab_ecd_CoSelectedMeasureAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AachenGermanyMember_429da896-d179-4c1d-987b-3c38781c0364_terseLabel_en-US" xlink:label="lab_cgnx_AachenGermanyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aachen Germany</link:label>
    <link:label id="lab_cgnx_AachenGermanyMember_label_en-US" xlink:label="lab_cgnx_AachenGermanyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aachen Germany [Member]</link:label>
    <link:label id="lab_cgnx_AachenGermanyMember_documentation_en-US" xlink:label="lab_cgnx_AachenGermanyMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Aachen Germany</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AachenGermanyMember" xlink:href="cgnx-20241231.xsd#cgnx_AachenGermanyMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AachenGermanyMember" xlink:to="lab_cgnx_AachenGermanyMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TabularListTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_TabularListTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tabular List, Table</link:label>
    <link:label id="lab_ecd_TabularListTableTextBlock_label_en-US" xlink:label="lab_ecd_TabularListTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tabular List [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TabularListTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TabularListTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TabularListTableTextBlock" xlink:to="lab_ecd_TabularListTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_7c6712e4-7b6e-477c-b6ff-5dbf0d42453f_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unobservable Inputs (Level 3)</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 3 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel3Member" xlink:to="lab_us-gaap_FairValueInputsLevel3Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDeductions_b64b75fb-5a6b-48a7-b81e-7c2a9a280ee5_negatedLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Deductions</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDeductions_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Deduction</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDeductions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_5b439a65-1ff9-4b29-a7f1-215e73e7d3fe_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_GrossLossFromCatastrophes_87b15831-8f84-461e-aeeb-ee4c16bc52ad_terseLabel_en-US" xlink:label="lab_cgnx_GrossLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross Loss from Catastrophes</link:label>
    <link:label id="lab_cgnx_GrossLossFromCatastrophes_label_en-US" xlink:label="lab_cgnx_GrossLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gross Loss from Catastrophes</link:label>
    <link:label id="lab_cgnx_GrossLossFromCatastrophes_documentation_en-US" xlink:label="lab_cgnx_GrossLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Gross Loss from Catastrophes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GrossLossFromCatastrophes" xlink:href="cgnx-20241231.xsd#cgnx_GrossLossFromCatastrophes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GrossLossFromCatastrophes" xlink:to="lab_cgnx_GrossLossFromCatastrophes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_f18a723c-d4dd-45d5-9bf8-9aaa2ee11f96_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_54eb6348-6795-4313-88a8-08038c8bdf3d_totalLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_ef77be2b-c70d-451a-b95e-55c4cd62a282_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock options to purchase anti-dilutive common stock</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_Customer2Member_8a6c5d5f-7476-4a73-a037-9c5e3c284f7b_terseLabel_en-US" xlink:label="lab_cgnx_Customer2Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer 2 [Member]</link:label>
    <link:label id="lab_cgnx_Customer2Member_label_en-US" xlink:label="lab_cgnx_Customer2Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer 2 [Member]</link:label>
    <link:label id="lab_cgnx_Customer2Member_documentation_en-US" xlink:label="lab_cgnx_Customer2Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer 2</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer2Member" xlink:href="cgnx-20241231.xsd#cgnx_Customer2Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Customer2Member" xlink:to="lab_cgnx_Customer2Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Goodwill_2c490c54-ea4b-4bd7-81d4-b5f0ff4abb31_terseLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_Goodwill_522beb11-1cfd-41af-a4aa-d3264921fb39_periodStartLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Goodwill, Beginning Balance</link:label>
    <link:label id="lab_us-gaap_Goodwill_2c98995d-728c-4806-99ab-6421784eb1ac_periodEndLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Goodwill, Ending Balance</link:label>
    <link:label id="lab_us-gaap_Goodwill_label_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill" xlink:to="lab_us-gaap_Goodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable_e7703729-316e-4c07-a9dd-c2c53f04fd1d_periodStartLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable_833c1ace-b0d5-4b46-a4aa-9aeac6cca4b6_periodEndLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable_label_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_bf246b95-9a89-4ff5-8998-7542c01f6e9b_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash used to fund tax payments</link:label>
    <link:label id="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payment, Tax Withholding, Share-Based Payment Arrangement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_StockRepurchaseProgramAuthorizedAmount1_6254c421-434f-4210-a3a3-8b8d68f09162_terseLabel_en-US" xlink:label="lab_srt_StockRepurchaseProgramAuthorizedAmount1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Repurchase of authorized common stock</link:label>
    <link:label id="lab_srt_StockRepurchaseProgramAuthorizedAmount1_label_en-US" xlink:label="lab_srt_StockRepurchaseProgramAuthorizedAmount1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Repurchase Program, Authorized, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StockRepurchaseProgramAuthorizedAmount1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_StockRepurchaseProgramAuthorizedAmount1" xlink:to="lab_srt_StockRepurchaseProgramAuthorizedAmount1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryDisclosureTextBlock_edd4480d-8f18-4cbf-8381-54a3d5d47f29_verboseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryDisclosureTextBlock" xlink:to="lab_us-gaap_InventoryDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualPayments_9e54359e-3f2e-4492-bcf9-d53bcb2d67e9_negatedLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualPayments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Fulfillment of warranty obligations</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualPayments_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualPayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard and Extended Product Warranty Accrual, Decrease for Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualPayments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyAccrualPayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualPayments" xlink:to="lab_us-gaap_ProductWarrantyAccrualPayments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_6444a67c-3d64-475d-8e0d-a5509c08e660_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employee Stock Option [Member]</link:label>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_fe4f9a43-0bef-4c6b-b887-cba26a4fdb90_verboseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Stock Compensation Plan [Member]</link:label>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_label_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeStockOptionMember" xlink:to="lab_us-gaap_EmployeeStockOptionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignExchangeForwardMember_e33a51c6-31b2-469a-be67-173dc6047159_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignExchangeForwardMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign Exchange Forward</link:label>
    <link:label id="lab_us-gaap_ForeignExchangeForwardMember_label_en-US" xlink:label="lab_us-gaap_ForeignExchangeForwardMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Exchange Forward [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignExchangeForwardMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignExchangeForwardMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignExchangeForwardMember" xlink:to="lab_us-gaap_ForeignExchangeForwardMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_LesseeOperatingLeaseComponents_2251dd03-f391-4201-bcf9-8cf0eaab0f63_terseLabel_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseComponents" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Components</link:label>
    <link:label id="lab_cgnx_LesseeOperatingLeaseComponents_label_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseComponents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Components</link:label>
    <link:label id="lab_cgnx_LesseeOperatingLeaseComponents_documentation_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseComponents" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Components</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseComponents" xlink:href="cgnx-20241231.xsd#cgnx_LesseeOperatingLeaseComponents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LesseeOperatingLeaseComponents" xlink:to="lab_cgnx_LesseeOperatingLeaseComponents" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Depreciation_8c299c3b-28a6-41c7-8244-163b3c947d5e_terseLabel_en-US" xlink:label="lab_us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation of property, plant, and equipment</link:label>
    <link:label id="lab_us-gaap_Depreciation_label_en-US" xlink:label="lab_us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Depreciation" xlink:to="lab_us-gaap_Depreciation" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_c92e3fd4-d966-4e2d-a2b5-596aa9066984_terseLabel_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Insurance Recoveries, Lost Inventory And Other Losses</link:label>
    <link:label id="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_label_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insurance Recoveries, Lost Inventory And Other Losses</link:label>
    <link:label id="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_documentation_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Insurance Recoveries, Lost Inventory And Other Losses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:href="cgnx-20241231.xsd#cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:to="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_e7ff0b6a-99c9-49ec-a2c2-a547b72c33ed_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherExpenses_12c39b5f-4f79-4173-b79d-ad29b47330ce_terseLabel_en-US" xlink:label="lab_us-gaap_OtherExpenses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other Expenses</link:label>
    <link:label id="lab_us-gaap_OtherExpenses_label_en-US" xlink:label="lab_us-gaap_OtherExpenses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Expenses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherExpenses" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherExpenses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherExpenses" xlink:to="lab_us-gaap_OtherExpenses" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_80818974-f119-4e70-ac0a-e8bd1707ca50_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Security, Excluded EPS Calculation [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Security, Excluded EPS Calculation [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComprehensiveIncomeNetOfTax_cfdf766c-87c4-4892-8e7f-1562924a384a_totalLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total comprehensive income</link:label>
    <link:label id="lab_us-gaap_ComprehensiveIncomeNetOfTax_label_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Comprehensive Income (Loss), Net of Tax, Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="lab_us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedIncomeTaxesCurrent_9292c0c8-e51d-425a-95cf-b19052d241d7_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued income taxes</link:label>
    <link:label id="lab_us-gaap_AccruedIncomeTaxesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Income Taxes, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedIncomeTaxesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedIncomeTaxesCurrent" xlink:to="lab_us-gaap_AccruedIncomeTaxesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_3da8ce29-6abe-465a-bd5b-22fe924fc77a_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Other Adjustments, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MunicipalBondsMember_a0aa224f-d5c0-46cf-a05e-4ae715ddc8cf_terseLabel_en-US" xlink:label="lab_us-gaap_MunicipalBondsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Municipal Bonds [Member]</link:label>
    <link:label id="lab_us-gaap_MunicipalBondsMember_label_en-US" xlink:label="lab_us-gaap_MunicipalBondsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Municipal Bonds [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MunicipalBondsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MunicipalBondsMember" xlink:to="lab_us-gaap_MunicipalBondsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DistributionRightsMember_67d74947-01e7-4705-8764-dc97f536d482_verboseLabel_en-US" xlink:label="lab_us-gaap_DistributionRightsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Distribution Rights [Member]</link:label>
    <link:label id="lab_us-gaap_DistributionRightsMember_4ae07925-99ad-4160-81af-832c8083030c_terseLabel_en-US" xlink:label="lab_us-gaap_DistributionRightsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Distribution Networks [Member]</link:label>
    <link:label id="lab_us-gaap_DistributionRightsMember_label_en-US" xlink:label="lab_us-gaap_DistributionRightsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Distribution Rights [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DistributionRightsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DistributionRightsMember" xlink:to="lab_us-gaap_DistributionRightsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_fcbfc279-8a9a-4fc9-a625-da80d07f225b_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effective Maturity Dates of Available-for-Sale Investments</link:label>
    <link:label id="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_label_en-US" xlink:label="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investments Classified by Contractual Maturity Date [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:to="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AwardTypeAxis_220e7ac2-b412-4a1a-b1e8-cbc8d18bbe1e_terseLabel_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:label id="lab_us-gaap_AwardTypeAxis_label_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AwardTypeAxis" xlink:to="lab_us-gaap_AwardTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilities_939592cd-3fb9-4f8e-aac4-f89f1b47841e_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Net</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilities_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilities" xlink:to="lab_us-gaap_DeferredTaxLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_4bec7e57-e452-45b0-aa48-41e13d3fae32_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_a905310d-dfd9-4080-98a8-4c769fc0b7be_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_label_en-US" xlink:label="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill, Foreign Currency Translation Gain (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:to="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareBasicAbstract_ce6fe673-5a03-462d-8a91-d61e0ddb5081_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net Income per weighted-average common and common-equivalent share:</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasicAbstract_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Basic [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasicAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasicAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasicAbstract" xlink:to="lab_us-gaap_EarningsPerShareBasicAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_JoergKuechenMember_label_en-US" xlink:label="lab_cgnx_JoergKuechenMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Joerg Kuechen [Member]</link:label>
    <link:label id="lab_cgnx_JoergKuechenMember_documentation_en-US" xlink:label="lab_cgnx_JoergKuechenMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Joerg Kuechen</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenMember" xlink:href="cgnx-20241231.xsd#cgnx_JoergKuechenMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_JoergKuechenMember" xlink:to="lab_cgnx_JoergKuechenMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_0277f614-3662-44e2-97c3-6ff2db4e1a9b_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Bonuses, commissions, and other compensation</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryWorkInProcessNetOfReserves_0f3dd25d-c966-48ca-ac09-171aae0de41d_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Work-in-process</link:label>
    <link:label id="lab_us-gaap_InventoryWorkInProcessNetOfReserves_label_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Work in Process, Net of Reserves</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:to="lab_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_0a7ac632-1319-43e5-b4fb-71d1ecdbc8b6_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant, and equipment, net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_69c04d70-386d-4989-bce1-64b78c3115c0_totalLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment, net, total</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_IcfrAuditorAttestationFlag_6304c92f-5d76-4b99-91f4-fa8665a9312e_terseLabel_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">ICFR Auditor Attestation Flag</link:label>
    <link:label id="lab_dei_IcfrAuditorAttestationFlag_label_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">ICFR Auditor Attestation Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_IcfrAuditorAttestationFlag" xlink:to="lab_dei_IcfrAuditorAttestationFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Liabilities_14cb5842-5afc-4cdb-91c4-e284d03f8b4f_totalLabel_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities</link:label>
    <link:label id="lab_us-gaap_Liabilities_label_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Liabilities" xlink:to="lab_us-gaap_Liabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareCashPaid_b122668f-7370-4671-829a-27ea8bc15bd1_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash dividends per common share (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareCashPaid_label_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Dividends, Per Share, Cash Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:to="lab_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncurrentAssets_f8a6ed70-adba-47b2-84b2-c711def58069_terseLabel_en-US" xlink:label="lab_us-gaap_NoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-lived assets</link:label>
    <link:label id="lab_us-gaap_NoncurrentAssets_label_en-US" xlink:label="lab_us-gaap_NoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncurrentAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncurrentAssets" xlink:to="lab_us-gaap_NoncurrentAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_8040a62d-2814-41a3-adb1-9ecd0ebd8a4b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_a798074c-db16-4099-b6ae-28420846885c_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock par value, in dollars per share</link:label>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_label_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_09695a3a-e3a2-4c4c-a9e0-24dcf2b37fd2_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_05f26562-1832-4285-ad82-cc07726b8431_terseLabel_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets, useful life</link:label>
    <link:label id="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_label_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:to="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_ed84897b-821c-415c-8c17-75a9a2891771_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign Currency</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Transactions and Translations Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrExpirationDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrExpirationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expiration Date</link:label>
    <link:label id="lab_ecd_TrdArrExpirationDate_label_en-US" xlink:label="lab_ecd_TrdArrExpirationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Expiration Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrExpirationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrExpirationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrExpirationDate" xlink:to="lab_ecd_TrdArrExpirationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_a1937546-56b1-40cd-baa2-b259675efed0_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash flows from investing activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_38e2cd95-4967-40f9-9b9d-39287668a9ca_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease liabilities</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TotalShareholderRtnAmt_terseLabel_en-US" xlink:label="lab_ecd_TotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Amount</link:label>
    <link:label id="lab_ecd_TotalShareholderRtnAmt_label_en-US" xlink:label="lab_ecd_TotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TotalShareholderRtnAmt" xlink:to="lab_ecd_TotalShareholderRtnAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillOtherIncreaseDecrease_82e9fe54-f787-4413-aa46-9233e766e93a_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillOtherIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill, Other Increase (Decrease)</link:label>
    <link:label id="lab_us-gaap_GoodwillOtherIncreaseDecrease_label_en-US" xlink:label="lab_us-gaap_GoodwillOtherIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill, Other Increase (Decrease)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillOtherIncreaseDecrease" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillOtherIncreaseDecrease"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillOtherIncreaseDecrease" xlink:to="lab_us-gaap_GoodwillOtherIncreaseDecrease" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_4f46dec6-f7b4-49c6-9654-7b9932ffa856_terseLabel_en-US" xlink:label="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Nonvested Restricted Stock Shares Activity</link:label>
    <link:label id="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nonvested Restricted Stock Shares Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:to="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsAdjFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Footnote</link:label>
    <link:label id="lab_ecd_EqtyAwrdsAdjFnTextBlock_label_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:to="lab_ecd_EqtyAwrdsAdjFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_CAD_f8393779-3732-4293-854f-8670a2fabbff_terseLabel_en-US" xlink:label="lab_currency_CAD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Canadian Dollar [Member]</link:label>
    <link:label id="lab_currency_CAD_label_en-US" xlink:label="lab_currency_CAD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Canada, Dollars</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CAD" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_CAD"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_CAD" xlink:to="lab_currency_CAD" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossFromCatastrophes_2f9d3912-0384-4760-861a-b377dac0d80e_terseLabel_en-US" xlink:label="lab_us-gaap_LossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss from Catastrophes</link:label>
    <link:label id="lab_us-gaap_LossFromCatastrophes_label_en-US" xlink:label="lab_us-gaap_LossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss from Catastrophes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossFromCatastrophes" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossFromCatastrophes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossFromCatastrophes" xlink:to="lab_us-gaap_LossFromCatastrophes" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_5c6feb5b-8101-4cf6-a66b-5d77e3022f12_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated forfeiture rate for unvested options for senior management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_label_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Estimated Forfeiture Rate For Unvested Options For Senior Management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_documentation_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Estimated forfeiture rate for unvested options for senior management.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:href="cgnx-20241231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:to="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_d64cc06e-a056-48ed-91cd-5dc3ef585fe9_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross realized gains</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Realized Gain</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedGain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquipmentMember_30b4ea6f-a702-4d8e-b8bf-7fd90311908a_verboseLabel_en-US" xlink:label="lab_us-gaap_EquipmentMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Manufacturing Test Equipment [Member]</link:label>
    <link:label id="lab_us-gaap_EquipmentMember_label_en-US" xlink:label="lab_us-gaap_EquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equipment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquipmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquipmentMember" xlink:to="lab_us-gaap_EquipmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventLineItems_5737a4fd-de08-4892-8307-2ff76b5a85d8_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event [Line Items]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventLineItems_label_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventLineItems" xlink:to="lab_us-gaap_SubsequentEventLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_8ab2b495-5dae-4fff-bbfa-536d057bad63_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment, gross</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentGross" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_c8c3cee7-c6f3-4bf3-b9ed-ef2c5aa4a49b_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock under stock option plans, shares</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_6184f73b-cdf3-4962-a0bf-bc25b7e3b7e4_negatedLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Exercised</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_fada88eb-9b4e-4686-9923-cc3661c2cd6b_terseLabel_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Application-specific customer solutions</link:label>
    <link:label id="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_label_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Application of Customer Specific Solutions [Member]</link:label>
    <link:label id="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_documentation_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Application of Customer Specific Solutions [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:href="cgnx-20241231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:to="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NamedExecutiveOfficersFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Named Executive Officers, Footnote</link:label>
    <link:label id="lab_ecd_NamedExecutiveOfficersFnTextBlock_label_en-US" xlink:label="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Named Executive Officers, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NamedExecutiveOfficersFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:to="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_d81c826d-5cd4-44bf-8b5c-a657041b13c6_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research, development, and engineering expenses</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_10c73d78-a232-4486-bb4d-9bb3efe70dfd_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_bd0ec4f8-9322-4d98-98a3-f5bcd9ad9712_negatedLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Reductions as a result of the expiration of the applicable statutes of limitations</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_35c7f4d6-0edb-4d15-b0a8-ee41444963c7_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Net unrealized gain (loss) on available-for-sale investments, net of tax</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_9b96fc9b-0e63-4bfa-93ba-733377711bce_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Diluted (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_51967426-d474-40cc-a61e-d9bdc69e422b_totalLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Diluted weighted-average common and common-equivalent shares outstanding</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MnpiDiscTimedForCompValFlag_terseLabel_en-US" xlink:label="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">MNPI Disclosure Timed for Compensation Value</link:label>
    <link:label id="lab_ecd_MnpiDiscTimedForCompValFlag_label_en-US" xlink:label="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">MNPI Disclosure Timed for Compensation Value [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MnpiDiscTimedForCompValFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:to="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquity_def2449f-10d8-4953-af9f-8c670171fc12_totalLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total shareholders&#8217; equity</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_eda770d4-91a6-4808-bdd0-bb0a92bc3fbe_periodStartLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning Balance</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_998588b3-ff82-48c2-a485-9bacb0d06416_periodEndLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_label_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity, Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity" xlink:to="lab_us-gaap_StockholdersEquity" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_2581ef05-d8f5-4440-87a8-82a036022e32_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Less than 1 Year</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationsAbstract_eb61bc5a-af61-4cc6-b8b9-a4d032391c54_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Combinations [Abstract]</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationsAbstract_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combinations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationsAbstract" xlink:to="lab_us-gaap_BusinessCombinationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_963fadf1-d8b2-41a4-bd91-d7a4d131921e_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changes in the Carrying Value of Goodwill</link:label>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Goodwill [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_53f3eaf6-83ae-45f9-ae5b-69494d3cccaf_terseLabel_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Selling, general, and administrative [Member]</link:label>
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_label_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling General And Administrative [Member]</link:label>
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_documentation_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Selling, general, and administrative.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember" xlink:href="cgnx-20241231.xsd#cgnx_SellingGeneralAndAdministrativeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SellingGeneralAndAdministrativeMember" xlink:to="lab_cgnx_SellingGeneralAndAdministrativeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_8c96b951-c764-4ca9-87af-edee0c0b58ac_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain" xlink:to="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_63c2c2e8-6147-468b-acd0-3f3f898437a9_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_cbe49544-e332-42e8-be56-f8e173310410_terseLabel_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Selling, general, and administrative expenses</link:label>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_8a968732-e6b0-44a0-ac5d-de1e7231dce7_totalLabel_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Selling, general, and administrative expenses</link:label>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_label_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Selling, General and Administrative Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:to="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_89000269-16b0-46f9-8cb7-5742c589d87d_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company contributions to employee savings plan</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanCostRecognized" xlink:to="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_d0e3b6b0-f11a-422e-aa13-9a0e2776284d_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_00c00ac3-f187-4ec3-8b0d-eab36a80ab71_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_label_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalPeriodFocus" xlink:to="lab_dei_DocumentFiscalPeriodFocus" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllExecutiveCategoriesMember_terseLabel_en-US" xlink:label="lab_ecd_AllExecutiveCategoriesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Executive Categories</link:label>
    <link:label id="lab_ecd_AllExecutiveCategoriesMember_label_en-US" xlink:label="lab_ecd_AllExecutiveCategoriesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Executive Categories [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllExecutiveCategoriesMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllExecutiveCategoriesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="lab_ecd_AllExecutiveCategoriesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SalesReturnsAndAllowancesMember_6e551367-8918-4d59-8da7-f56289c519db_terseLabel_en-US" xlink:label="lab_us-gaap_SalesReturnsAndAllowancesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sales Returns and Allowances [Member]</link:label>
    <link:label id="lab_us-gaap_SalesReturnsAndAllowancesMember_label_en-US" xlink:label="lab_us-gaap_SalesReturnsAndAllowancesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sales Returns and Allowances [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesReturnsAndAllowancesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesReturnsAndAllowancesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesReturnsAndAllowancesMember" xlink:to="lab_us-gaap_SalesReturnsAndAllowancesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_990280d9-75ca-4622-8b29-11c23cee376a_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2026</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChangedPeerGroupFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changed Peer Group, Footnote</link:label>
    <link:label id="lab_ecd_ChangedPeerGroupFnTextBlock_label_en-US" xlink:label="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Changed Peer Group, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChangedPeerGroupFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:to="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_c47db710-d8ab-4d14-bbfe-4b7c78d67510_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding, weighted-average remaining contractual term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsAbstract_c9904890-ee69-4a15-95dd-9e6f36f4cc2f_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">ASSETS</link:label>
    <link:label id="lab_us-gaap_AssetsAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsAbstract" xlink:to="lab_us-gaap_AssetsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8ca6cb1d-08f5-43f5-b103-aa843efec5ce_terseLabel_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Minimum decrease in income tax expense due to release in reserves</link:label>
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_label_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum Decrease In Income Tax Expense Due To Release In Reserves</link:label>
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_documentation_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Minimum decrease in income tax expense due to release in reserves.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:href="cgnx-20241231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:to="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_e985a556-21e1-4e32-9193-8551e0f6bb77_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected dividend yield</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentType_ec76a752-b478-4eb6-bdba-4c599a1497b3_terseLabel_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:label id="lab_dei_DocumentType_label_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentType" xlink:to="lab_dei_DocumentType" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeContractTypeDomain_8e0143ac-d3b4-4649-900a-088a3aee5121_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeContractTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Contract [Domain]</link:label>
    <link:label id="lab_us-gaap_DerivativeContractTypeDomain_label_en-US" xlink:label="lab_us-gaap_DerivativeContractTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Contract [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeContractTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeContractTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeContractTypeDomain" xlink:to="lab_us-gaap_DerivativeContractTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_ddcfc775-a457-41a7-84e1-17bb9a805521_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum contribution by company expressed as percentage of employee pre-tax salary</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:to="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InternalUseSoftwarePolicy_07388234-11c9-443c-9286-35f9e8d6b13e_terseLabel_en-US" xlink:label="lab_us-gaap_InternalUseSoftwarePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Internal-use Software</link:label>
    <link:label id="lab_us-gaap_InternalUseSoftwarePolicy_label_en-US" xlink:label="lab_us-gaap_InternalUseSoftwarePolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Internal Use Software, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InternalUseSoftwarePolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InternalUseSoftwarePolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InternalUseSoftwarePolicy" xlink:to="lab_us-gaap_InternalUseSoftwarePolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_9001d67d-9f3e-441a-beab-2c75f92e34ed_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Segment Reporting Information, by Segment</link:label>
    <link:label id="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Segment Reporting Information, by Segment [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:to="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_7b87eefe-1529-4f6d-8bdc-de4179be073b_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Liability, Statement of Financial Position [Extensible Enumeration]</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_label_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Liability, Statement of Financial Position [Extensible Enumeration]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:to="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_be1bf773-899c-46ff-a980-3404fac441ff_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, weighted-average remaining contractual term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_3ecd1a65-454c-4e04-b796-2a65aec46fd1_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Amortized Cost</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Amortized Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_3c0ff345-8361-4731-98ae-358b066f3637_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_2b1c75d5-696e-4d4c-a8fd-40f4ccb5981a_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated Amortization Expense Succeeding Fiscal Years</link:label>
    <link:label id="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryCurrentTable_cef495d1-c817-4354-93d8-bf61f316e83e_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryCurrentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory, Current [Table]</link:label>
    <link:label id="lab_us-gaap_InventoryCurrentTable_label_en-US" xlink:label="lab_us-gaap_InventoryCurrentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Current [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryCurrentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryCurrentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryCurrentTable" xlink:to="lab_us-gaap_InventoryCurrentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DividendsPayableAmountPerShare_7241223e-8ed7-4ec0-bcf4-0e026eb443a8_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableAmountPerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Dividends Payable, Amount Per Share</link:label>
    <link:label id="lab_us-gaap_DividendsPayableAmountPerShare_label_en-US" xlink:label="lab_us-gaap_DividendsPayableAmountPerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends Payable, Amount Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsPayableAmountPerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableAmountPerShare" xlink:to="lab_us-gaap_DividendsPayableAmountPerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTable_76572f5c-0632-4fb1-ab5b-0ba16c5f4684_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event [Table]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTable_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTable" xlink:to="lab_us-gaap_SubsequentEventTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DueFromForeignBanks_0585442c-d5bc-4ab5-8763-eaa698abd742_terseLabel_en-US" xlink:label="lab_cgnx_DueFromForeignBanks" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash balance included foreign bank balance</link:label>
    <link:label id="lab_cgnx_DueFromForeignBanks_label_en-US" xlink:label="lab_cgnx_DueFromForeignBanks" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Due From Foreign Banks</link:label>
    <link:label id="lab_cgnx_DueFromForeignBanks_documentation_en-US" xlink:label="lab_cgnx_DueFromForeignBanks" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Due from foreign banks.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DueFromForeignBanks" xlink:href="cgnx-20241231.xsd#cgnx_DueFromForeignBanks"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DueFromForeignBanks" xlink:to="lab_cgnx_DueFromForeignBanks" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MaximumMember_f8fc94a9-86da-4d61-b145-b4ccc5898bb8_terseLabel_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum [Member]</link:label>
    <link:label id="lab_srt_MaximumMember_label_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MaximumMember" xlink:to="lab_srt_MaximumMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockValueOutstanding_cfb3eb42-cc04-44cd-a916-5b4abfdf28db_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockValueOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, $0.01 par value - Authorized: 400 shares in 2024 and 2023, respectively, no shares issued and outstanding</link:label>
    <link:label id="lab_us-gaap_PreferredStockValueOutstanding_label_en-US" xlink:label="lab_us-gaap_PreferredStockValueOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Value, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValueOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValueOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockValueOutstanding" xlink:to="lab_us-gaap_PreferredStockValueOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Valuation Assumption Difference, Footnote</link:label>
    <link:label id="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock_label_en-US" xlink:label="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Valuation Assumption Difference, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EquityValuationAssumptionDifferenceFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:to="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_0df0a1f0-80c6-4aec-9a2c-d673abd239a7_totalLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net Carrying Value</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FurnitureAndFixturesMember_8d9e94ff-22c1-4a0d-9a20-853ee2c1cbee_terseLabel_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Furniture and Fixtures [Member]</link:label>
    <link:label id="lab_us-gaap_FurnitureAndFixturesMember_label_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Furniture and Fixtures [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FurnitureAndFixturesMember" xlink:to="lab_us-gaap_FurnitureAndFixturesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_ee6ed9a0-3df5-47ac-bb69-450507b9a6f8_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_41d43da0-2cc2-49cf-ab38-2efb7b40afbd_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Payable, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableCurrent" xlink:to="lab_us-gaap_AccountsPayableCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_CNY_7c32a4d9-0f3c-42a1-b318-e36f7ebef7e0_terseLabel_en-US" xlink:label="lab_currency_CNY" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">China, Yuan Renminbi</link:label>
    <link:label id="lab_currency_CNY_label_en-US" xlink:label="lab_currency_CNY" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">China, Yuan Renminbi</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CNY" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_CNY"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_CNY" xlink:to="lab_currency_CNY" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentTypeAxis_e0b090ab-ca3e-4e55-ae9a-bd543f4fdbea_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment Type [Axis]</link:label>
    <link:label id="lab_us-gaap_InvestmentTypeAxis_label_en-US" xlink:label="lab_us-gaap_InvestmentTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentTypeAxis" xlink:to="lab_us-gaap_InvestmentTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_06d01f0a-b274-41ea-8f54-9cacabd952f4_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_3a0ff44e-f7d3-44b2-81ac-3639ccbb1e7f_terseLabel_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Completed Technologies And Other Intangible Assets [Member]</link:label>
    <link:label id="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_label_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Completed Technologies And Other Intangible Assets [Member]</link:label>
    <link:label id="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_documentation_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Completed Technologies And Other Intangible Assets [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:href="cgnx-20241231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:to="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeAxis_3bfb0b1f-91de-453a-8f3a-b475ce40994b_terseLabel_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Range [Axis]</link:label>
    <link:label id="lab_srt_RangeAxis_label_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeAxis" xlink:to="lab_srt_RangeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonRule10b51ArrTrmntdFlag_terseLabel_en-US" xlink:label="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Terminated</link:label>
    <link:label id="lab_ecd_NonRule10b51ArrTrmntdFlag_label_en-US" xlink:label="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrTrmntdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:to="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionLineItems_95bdfd27-c36d-44a0-a5c2-204577187695_terseLabel_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessor, Lease, Description [Line Items]</link:label>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionLineItems_label_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessor, Lease, Description [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems" xlink:to="lab_us-gaap_LessorLeaseDescriptionLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_7088d71a-966f-4b53-b708-d3a89db52072_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income before income tax expense</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_dab92cf1-54c2-4356-bc6f-4ec91d7a67d3_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income before income tax expense</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoAvgTotalCompAmt_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Total Compensation Amount</link:label>
    <link:label id="lab_ecd_NonPeoNeoAvgTotalCompAmt_label_en-US" xlink:label="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Total Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgTotalCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:to="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_d7227602-3ad4-463d-b733-c2314bd51e8c_terseLabel_en-US" xlink:label="lab_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Incentive Compensation Expense, Bonus And Sales Commissions</link:label>
    <link:label id="lab_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_label_en-US" xlink:label="lab_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Incentive Compensation Expense, Bonus And Sales Commissions</link:label>
    <link:label id="lab_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_documentation_en-US" xlink:label="lab_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Incentive Compensation Expense, Bonus And Sales Commissions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions" xlink:href="cgnx-20241231.xsd#cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions" xlink:to="lab_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_698ac9e5-0019-495b-ae9e-88d9f782b923_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">GILTI tax basis differences in connection with change in tax structure</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Property, Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingRecoveryIndName_terseLabel_en-US" xlink:label="lab_ecd_OutstandingRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_OutstandingRecoveryIndName_label_en-US" xlink:label="lab_ecd_OutstandingRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding Recovery, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingRecoveryIndName" xlink:to="lab_ecd_OutstandingRecoveryIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemLineItems_d74267e8-d9f6-4907-a6ca-41adc9b0da00_terseLabel_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unusual or Infrequent Item, or Both [Line Items]</link:label>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemLineItems_label_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unusual or Infrequent Item, or Both [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems" xlink:to="lab_us-gaap_UnusualOrInfrequentItemLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_9eb790af-4ae6-410c-a19e-cdaf03e2eec1_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems" xlink:to="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_5a8fada9-834a-4b04-a984-21ec54905dae_totalLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Purchase price</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MoneyMarketFundsAtCarryingValue_6cc133e6-fd48-448d-b003-92e996d96886_terseLabel_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Money market instruments</link:label>
    <link:label id="lab_us-gaap_MoneyMarketFundsAtCarryingValue_label_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Money Market Funds, at Carrying Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:to="lab_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_27e1d2c4-018a-43e7-92c3-dffe69b99eef_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">GILTI tax basis differences</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_2a035c44-acff-425b-a183-a171e88d2d15_negatedTerseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_label_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:to="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_0b7709bf-d039-4480-a1e1-ea9003e63631_terseLabel_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Option to Renew, Term of Contract</link:label>
    <link:label id="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_label_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Option to Renew, Term of Contract</link:label>
    <link:label id="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_documentation_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Option to Renew, Term of Contract</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:href="cgnx-20241231.xsd#cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:to="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgPredtrmndFlag_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgPredtrmndFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing Predetermined</link:label>
    <link:label id="lab_ecd_AwardTmgPredtrmndFlag_label_en-US" xlink:label="lab_ecd_AwardTmgPredtrmndFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing Predetermined [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgPredtrmndFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgPredtrmndFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgPredtrmndFlag" xlink:to="lab_ecd_AwardTmgPredtrmndFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_fa34e333-0f12-4982-9051-88aa937422db_terseLabel_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of groups within the employee population</link:label>
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_label_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number Of Groups Within Employee Population</link:label>
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_documentation_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Number of groups within employee population.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:href="cgnx-20241231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:to="lab_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_78102a7b-ede7-4340-82ec-215fd956b43c_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeDomain" xlink:to="lab_us-gaap_SubsequentEventTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsOfDividendsCommonStock_79e5ffc6-b20e-4ba9-8061-db0a29059059_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividendsCommonStock" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Payment of dividends</link:label>
    <link:label id="lab_us-gaap_PaymentsOfDividendsCommonStock_label_en-US" xlink:label="lab_us-gaap_PaymentsOfDividendsCommonStock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments of Ordinary Dividends, Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDividendsCommonStock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfDividendsCommonStock" xlink:to="lab_us-gaap_PaymentsOfDividendsCommonStock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CustomerRelationshipsMember_de052b14-0fea-45c9-ad56-bc3883f3a350_terseLabel_en-US" xlink:label="lab_us-gaap_CustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer relationships</link:label>
    <link:label id="lab_us-gaap_CustomerRelationshipsMember_label_en-US" xlink:label="lab_us-gaap_CustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerRelationshipsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerRelationshipsMember" xlink:to="lab_us-gaap_CustomerRelationshipsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ScenarioForecastMember_93bbf598-68be-457b-a452-2bff11f3f9d1_terseLabel_en-US" xlink:label="lab_srt_ScenarioForecastMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forecast</link:label>
    <link:label id="lab_srt_ScenarioForecastMember_label_en-US" xlink:label="lab_srt_ScenarioForecastMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forecast [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioForecastMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScenarioForecastMember" xlink:to="lab_srt_ScenarioForecastMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_8b497831-6f09-4307-ac89-7557fe2b4092_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Diluted</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDiluted" xlink:to="lab_us-gaap_EarningsPerShareDiluted" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_794c0ee0-02f2-43bd-b473-55d047384e11_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Domestic income from continuing operations before taxes</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Domestic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_7e98d10b-4382-4fa1-b735-58b147c2a250_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue and customer deposits</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Contract with Customer, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_24a4ccff-82ee-4169-9d89-68f0d20640f0_totalLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Current income tax expense (benefit), Total</link:label>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock_terseLabel_en-US" xlink:label="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement does not require Recovery</link:label>
    <link:label id="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock_label_en-US" xlink:label="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Does Not Require Recovery [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDoesNotRequireRecoveryTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:to="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_e9660a8c-e741-4637-b31b-6a00e8180ca9_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible Assets</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Finite-Lived, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:to="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_CHF_5a6c7aba-f090-47e9-b30e-53a3840f24ec_terseLabel_en-US" xlink:label="lab_currency_CHF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Switzerland, Francs</link:label>
    <link:label id="lab_currency_CHF_label_en-US" xlink:label="lab_currency_CHF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Switzerland, Francs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CHF" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_CHF"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_CHF" xlink:to="lab_currency_CHF" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_79930098-71c1-4a51-ac5f-b63eeeaed481_terseLabel_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_4eb208f3-889c-44ac-998b-1e864c34c50c_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Percent of employee contribution</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:to="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_bb1cb2fb-7b1e-44ff-af60-9f8b919a6c3a_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax liabilities:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Gross [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_bab39493-f694-42e4-b9f6-8edf8ce41375_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesIssued" xlink:to="lab_us-gaap_PreferredStockSharesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_09c2762d-07d2-4e9a-8cb7-4d0485dd31c7_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency gain (loss)</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gain (Loss), Foreign Currency Transaction, before Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:to="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MajorCustomersAxis_4f368748-dda4-4105-8df8-673d3b83667a_terseLabel_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer [Axis]</link:label>
    <link:label id="lab_srt_MajorCustomersAxis_label_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MajorCustomersAxis" xlink:to="lab_srt_MajorCustomersAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_8d9ef8c3-bce7-42ab-b770-2361070f8fb1_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract" xlink:to="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetBackedSecuritiesMember_30a29cb9-9587-4244-b224-c2e420794c56_terseLabel_en-US" xlink:label="lab_us-gaap_AssetBackedSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset-Backed Securities [Member]</link:label>
    <link:label id="lab_us-gaap_AssetBackedSecuritiesMember_label_en-US" xlink:label="lab_us-gaap_AssetBackedSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset-Backed Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetBackedSecuritiesMember" xlink:to="lab_us-gaap_AssetBackedSecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SovereignBondsFairValueDisclosure_ebbb49f2-a5ee-4ce4-8d1c-0f31f2b3cccf_terseLabel_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sovereign bonds</link:label>
    <link:label id="lab_cgnx_SovereignBondsFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sovereign Bonds Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_SovereignBondsFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Sovereign bonds fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure" xlink:href="cgnx-20241231.xsd#cgnx_SovereignBondsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SovereignBondsFairValueDisclosure" xlink:to="lab_cgnx_SovereignBondsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_8abe0781-8560-438e-83d3-b62975279378_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Warranty obligations</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Warranty Accrual, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:to="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_d65a7ac5-970c-4785-b8ae-ab4abeef767a_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Proceeds from Sale of Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Sale of Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:to="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_181adb18-792e-45a3-a163-a91d62b94e67_verboseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Inventories acquired</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_fa83a277-ec11-472a-9b20-283986a8ee14_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Inventory</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_a9584a1a-6fcf-4d77-8832-d151d5ebacd7_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax expense on continuing operations</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_516b01ab-87c6-4939-a1c5-4885052a772c_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income tax expense (benefit), continuing operations, Total</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeNotionalAmount_5fe68ee1-074e-4cf0-aa6b-837fd23974e5_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeNotionalAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative, notional amount</link:label>
    <link:label id="lab_us-gaap_DerivativeNotionalAmount_label_en-US" xlink:label="lab_us-gaap_DerivativeNotionalAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative, Notional Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeNotionalAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeNotionalAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeNotionalAmount" xlink:to="lab_us-gaap_DerivativeNotionalAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_b5257dcd-b7ad-4d82-9b49-2e0ed0a89ff6_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current investments, amortized cost of $60,725 and $132,799 in 2024 and 2023, respectively, allowance for credit losses of $0 in 2024 and 2023</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_0d8056c7-0b0c-4aa3-a9a9-0f9f1a305169_verboseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Debt securities, available-for-sale, current</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssets_271cf438-d55c-4fef-8510-67af9170fb81_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net amount of assets presented</link:label>
    <link:label id="lab_us-gaap_DerivativeAssets_71479f78-79ed-4e0a-9c7a-32f36b8a3b7d_totalLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net amount of assets presented</link:label>
    <link:label id="lab_us-gaap_DerivativeAssets_label_en-US" xlink:label="lab_us-gaap_DerivativeAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssets" xlink:to="lab_us-gaap_DerivativeAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_a6766026-87fc-4682-9cda-cdc5bd49e17a_negatedLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Forfeited or expired</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_d815f83f-80c8-4f67-a6d0-ae4e3f13e40e_terseLabel_en-US" xlink:label="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shareholders' Equity</link:label>
    <link:label id="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_label_en-US" xlink:label="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Shareholders' Equity and Share-Based Payments [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:to="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_84d27b76-2742-4b7c-8f37-3c19a7574ac9_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Recognition period for unrecognized compensation expense</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_ea4fae95-f4f0-46b3-9efc-abb8836dc44e_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_dd761621-9677-4a81-9863-e123e9a83f6f_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Revenue</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer, Excluding Assessed Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_c3fc9257-a860-4f4c-a966-70bedd9618cd_totalLabel_en-US" xlink:label="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label id="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_label_en-US" xlink:label="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred income tax assets (liabilities), net</link:label>
    <link:label id="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_documentation_en-US" xlink:label="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred income tax assets (liabilities), net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:href="cgnx-20241231.xsd#cgnx_DeferredIncomeTaxAssetsLiabilitiesNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:to="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_1a88fd58-ad60-42f1-bf2c-3b9a66ac67ca_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Comprehensive Income [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Comprehensive Income [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_da9190a6-c781-44e9-8390-662b172a9294_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash provided by (used in) investing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionLineItems_0c28ca2b-5826-4001-a699-ceb80a80f2d7_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition [Line Items]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionLineItems_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems" xlink:to="lab_us-gaap_BusinessAcquisitionLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_301a4767-a8de-4c4c-94d6-98a51af2884a_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Jurisdiction [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:to="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_5b445ab4-1ec8-47d0-a26b-c0f5d6227d65_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllAdjToCompMember_terseLabel_en-US" xlink:label="lab_ecd_AllAdjToCompMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Adjustments to Compensation</link:label>
    <link:label id="lab_ecd_AllAdjToCompMember_label_en-US" xlink:label="lab_ecd_AllAdjToCompMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Adjustments to Compensation [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllAdjToCompMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllAdjToCompMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="lab_ecd_AllAdjToCompMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_9ed8d891-71bf-43b6-ab96-5fd9cdfb1cc3_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Prepaid Expense and Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_ca2e39b5-dec4-48dd-82d9-4f59a6ceeb30_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Table]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:to="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCharges_5eac477c-de0d-45f7-a6c4-7c0af5a06ad8_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring Charges</link:label>
    <link:label id="lab_us-gaap_RestructuringCharges_label_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restructuring Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCharges" xlink:to="lab_us-gaap_RestructuringCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_b6fe48a1-a3d1-420d-be87-9ca196d7583d_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Line Items]</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAxis_71300759-a087-4556-8e29-04e4ce0b8b44_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Axis]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAxis_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis" xlink:to="lab_us-gaap_TaxCreditCarryforwardAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_0828bfb0-9c46-4864-90a4-6be4c280c819_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsegmentsConsolidationItemsDomain_a06f2252-d469-4bb0-858c-e7104dcd6e11_terseLabel_en-US" xlink:label="lab_us-gaap_SubsegmentsConsolidationItemsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsegments Consolidation Items [Domain]</link:label>
    <link:label id="lab_us-gaap_SubsegmentsConsolidationItemsDomain_label_en-US" xlink:label="lab_us-gaap_SubsegmentsConsolidationItemsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsegments Consolidation Items [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsConsolidationItemsDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsConsolidationItemsDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsegmentsConsolidationItemsDomain" xlink:to="lab_us-gaap_SubsegmentsConsolidationItemsDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SegmentGeneralAndEngineeringExpenseMember_bfd1ca62-f4c2-485d-9323-0d400185343a_terseLabel_en-US" xlink:label="lab_cgnx_SegmentGeneralAndEngineeringExpenseMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segment, General, And Engineering Expense</link:label>
    <link:label id="lab_cgnx_SegmentGeneralAndEngineeringExpenseMember_label_en-US" xlink:label="lab_cgnx_SegmentGeneralAndEngineeringExpenseMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment, General, And Engineering Expense [Member]</link:label>
    <link:label id="lab_cgnx_SegmentGeneralAndEngineeringExpenseMember_documentation_en-US" xlink:label="lab_cgnx_SegmentGeneralAndEngineeringExpenseMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Segment, General, And Engineering Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SegmentGeneralAndEngineeringExpenseMember" xlink:href="cgnx-20241231.xsd#cgnx_SegmentGeneralAndEngineeringExpenseMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SegmentGeneralAndEngineeringExpenseMember" xlink:to="lab_cgnx_SegmentGeneralAndEngineeringExpenseMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ScenarioUnspecifiedDomain_9fde5bbb-2b32-40fc-b599-963829e51921_terseLabel_en-US" xlink:label="lab_srt_ScenarioUnspecifiedDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Scenario, Unspecified [Domain]</link:label>
    <link:label id="lab_srt_ScenarioUnspecifiedDomain_label_en-US" xlink:label="lab_srt_ScenarioUnspecifiedDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Scenario [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScenarioUnspecifiedDomain" xlink:to="lab_srt_ScenarioUnspecifiedDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockValueOutstanding_30710614-26d5-4a8f-b498-506de6bab005_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockValueOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, $0.002 par value &#8211; Authorized: 300,000 shares in 2024 and 2023, respectively, issued and outstanding: 170,434 and 171,599 shares in 2024 and 2023, respectively</link:label>
    <link:label id="lab_us-gaap_CommonStockValueOutstanding_label_en-US" xlink:label="lab_us-gaap_CommonStockValueOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Value, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValueOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValueOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockValueOutstanding" xlink:to="lab_us-gaap_CommonStockValueOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressStateOrProvince_76719e5d-82b6-499b-9941-ef97a30ee059_terseLabel_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:label id="lab_dei_EntityAddressStateOrProvince_label_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressStateOrProvince" xlink:to="lab_dei_EntityAddressStateOrProvince" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_00dc6d3a-abcd-42ac-a1fe-7a4c900ea4c6_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments and Hedging Activities Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments and Hedging Activities Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:to="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_42d6e753-d699-4097-9a4d-59ba2b917934_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current investments, allowance for credit losses</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Allowance for Credit Loss, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_72650bfc-7531-4f83-aa12-777433321ff6_terseLabel_en-US" xlink:label="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease expense for which no liability or asset was recognized</link:label>
    <link:label id="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_label_en-US" xlink:label="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Expense, No Liability Or Asset Recognized</link:label>
    <link:label id="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_documentation_en-US" xlink:label="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Lease, Expense, No Liability Or Asset Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:href="cgnx-20241231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:to="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ErrCompAnalysisTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ErrCompAnalysisTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Erroneous Compensation Analysis</link:label>
    <link:label id="lab_ecd_ErrCompAnalysisTextBlock_label_en-US" xlink:label="lab_ecd_ErrCompAnalysisTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Erroneous Compensation Analysis [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompAnalysisTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompAnalysisTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ErrCompAnalysisTextBlock" xlink:to="lab_ecd_ErrCompAnalysisTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_819cc1ce-7a74-43e6-b4b8-d34b58548dc3_terseLabel_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum investment of the company in partnership</link:label>
    <link:label id="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_label_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum Investment Of Company In Partnership</link:label>
    <link:label id="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_documentation_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Maximum investment of the company in partnership.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:href="cgnx-20241231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:to="lab_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_995504a1-40d9-4bfb-ba77-50257e4f5bea_terseLabel_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Financial Instruments [Domain]</link:label>
    <link:label id="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_label_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Financial Instruments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_0b1677f9-362c-43ca-9069-535d669130cf_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Nonvested beginning balance, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_7830d3bf-88db-48e0-8750-c92f89910ef1_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Nonvested ending balance, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_e83b4141-1861-4dbc-bebf-b71a833e2b31_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities and Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_35430663-0c2d-48e0-aeae-0c250ed25071_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax benefit for release of valuation allowance</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDeterminationDate_terseLabel_en-US" xlink:label="lab_ecd_RestatementDeterminationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement Determination Date</link:label>
    <link:label id="lab_ecd_RestatementDeterminationDate_label_en-US" xlink:label="lab_ecd_RestatementDeterminationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Determination Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDeterminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDeterminationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDeterminationDate" xlink:to="lab_ecd_RestatementDeterminationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_16619574-daa4-43ae-9808-1ada779f9a37_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Charged&#160;to Costs and Expenses</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Cost and Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_be07e9cd-5751-4d0d-81a6-f7a34287253b_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term investments</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PvpTable_terseLabel_en-US" xlink:label="lab_ecd_PvpTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure</link:label>
    <link:label id="lab_ecd_PvpTable_label_en-US" xlink:label="lab_ecd_PvpTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PvpTable" xlink:to="lab_ecd_PvpTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_f65efdf8-8056-4e2f-99b2-34b73e816816_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Summary of Available-for-Sale Investments</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Available-for-Sale Securities Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_089c96a5-fe61-4c1b-9d50-4548f923cbf4_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductLiabilityContingencyLineItems_e8485445-64d3-464f-acef-1d868c4a9acc_terseLabel_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product Liability Contingency [Line Items]</link:label>
    <link:label id="lab_us-gaap_ProductLiabilityContingencyLineItems_label_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Liability Contingency [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductLiabilityContingencyLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems" xlink:to="lab_us-gaap_ProductLiabilityContingencyLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_862a1bc8-d3fc-4a5d-9ee6-b944c7e7c842_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance outstanding, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_f11825b9-0d53-4d06-ab84-95d3997ee540_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance outstanding, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_8169c7c8-8c94-49a9-8b46-6ced049406a1_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTable" xlink:to="lab_us-gaap_ConcentrationRiskTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_6b2f583c-ff9c-487d-8da0-5622cb0e4f7a_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease assets</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ErrCompRecoveryTable_terseLabel_en-US" xlink:label="lab_ecd_ErrCompRecoveryTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Erroneously Awarded Compensation Recovery</link:label>
    <link:label id="lab_ecd_ErrCompRecoveryTable_label_en-US" xlink:label="lab_ecd_ErrCompRecoveryTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Erroneously Awarded Compensation Recovery [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompRecoveryTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompRecoveryTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="lab_ecd_ErrCompRecoveryTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_e75cfd80-bc88-4711-b428-0f66c0f56081_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Line Items]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:to="lab_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_130c6dea-0640-4352-9016-cd8898c0c223_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_f0da32c6-50d4-4ccf-b7b3-9d337c91f9c6_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_145dd813-7ee2-49c6-a8b2-9dbcc64bf29e_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of two years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Contributions Vest At End Of Two Year</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of two year.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:href="cgnx-20241231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_CurrencyAxis_4cebdad7-e7b3-4e8b-ba99-891c6c3499ec_terseLabel_en-US" xlink:label="lab_srt_CurrencyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Currency [Axis]</link:label>
    <link:label id="lab_srt_CurrencyAxis_label_en-US" xlink:label="lab_srt_CurrencyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Currency [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CurrencyAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CurrencyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_CurrencyAxis" xlink:to="lab_srt_CurrencyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_5dcc2bd4-c9aa-4e4b-a98e-1d87be5dd6f0_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Other liabilities</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentAbstract_03521efb-cf81-4270-8d13-3a67cb5e01c7_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Abstract]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentAbstract_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_eaed9223-64c6-422f-91a8-0f90569f5200_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted Average Shares</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareTextBlock" xlink:to="lab_us-gaap_EarningsPerShareTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventMember_cad9a2c3-837f-4b74-921e-01d4f78cc9c0_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventMember_label_en-US" xlink:label="lab_us-gaap_SubsequentEventMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventMember" xlink:to="lab_us-gaap_SubsequentEventMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_8ce68287-f5a7-44fb-91a7-4d922cbe1207_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Issuance of common stock under stock option plans</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Issued During Period, Value, Stock Options Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_4fd5d218-844e-40d2-94fa-c4a63a52e4a2_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_LongTermInvestmentsMember_76e8b7ff-7957-45f7-b787-93fe1ca4322e_terseLabel_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Long-term investments [Member]</link:label>
    <link:label id="lab_cgnx_LongTermInvestmentsMember_label_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long Term Investments [Member]</link:label>
    <link:label id="lab_cgnx_LongTermInvestmentsMember_documentation_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Long-term investments.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember" xlink:href="cgnx-20241231.xsd#cgnx_LongTermInvestmentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LongTermInvestmentsMember" xlink:to="lab_cgnx_LongTermInvestmentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsegmentsDomain_a36e0654-8690-4f9c-88e3-c61553c4507b_terseLabel_en-US" xlink:label="lab_us-gaap_SubsegmentsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsegments [Domain]</link:label>
    <link:label id="lab_us-gaap_SubsegmentsDomain_label_en-US" xlink:label="lab_us-gaap_SubsegmentsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsegments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsegmentsDomain" xlink:to="lab_us-gaap_SubsegmentsDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_17920823-0e99-457c-b53e-57d448e4c8be_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxPolicyTextBlock" xlink:to="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeerGroupIssuersFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Peer Group Issuers, Footnote</link:label>
    <link:label id="lab_ecd_PeerGroupIssuersFnTextBlock_label_en-US" xlink:label="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Peer Group Issuers, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupIssuersFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:to="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentDomain_3e0fef9e-e036-4bca-87b8-eee878ce4000_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segments [Domain]</link:label>
    <link:label id="lab_us-gaap_SegmentDomain_label_en-US" xlink:label="lab_us-gaap_SegmentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentDomain" xlink:to="lab_us-gaap_SegmentDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_9bfd4327-e9da-4c25-bba6-b527a53fbcf5_terseLabel_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_label_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoMember_terseLabel_en-US" xlink:label="lab_ecd_PeoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO</link:label>
    <link:label id="lab_ecd_PeoMember_label_en-US" xlink:label="lab_ecd_PeoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoMember" xlink:to="lab_ecd_PeoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetDomain_f2df4a8f-6b99-406c-afd7-6fcdb07fbcf6_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Asset [Domain]</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetDomain_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Asset [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetDomain" xlink:to="lab_us-gaap_DeferredTaxAssetDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrIndName_terseLabel_en-US" xlink:label="lab_ecd_TrdArrIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_TrdArrIndName_label_en-US" xlink:label="lab_ecd_TrdArrIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrIndName" xlink:to="lab_ecd_TrdArrIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueCommissionersIrelandMember_11247123-2c1b-4102-bb8a-b3af5d4ffce1_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueCommissionersIrelandMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue Commissioners, Ireland [Member]</link:label>
    <link:label id="lab_us-gaap_RevenueCommissionersIrelandMember_label_en-US" xlink:label="lab_us-gaap_RevenueCommissionersIrelandMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Commissioners, Ireland [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueCommissionersIrelandMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueCommissionersIrelandMember" xlink:to="lab_us-gaap_RevenueCommissionersIrelandMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_bda7720b-b5a7-4bbd-90c7-21b4b5b06cac_terseLabel_en-US" xlink:label="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]</link:label>
    <link:label id="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_label_en-US" xlink:label="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:to="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_621f088f-585e-4c78-99d7-505ae49d96d6_terseLabel_en-US" xlink:label="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans</link:label>
    <link:label id="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_label_en-US" xlink:label="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans [Member]</link:label>
    <link:label id="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_documentation_en-US" xlink:label="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:href="cgnx-20241231.xsd#cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:to="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3ea34758-5a80-4eed-acd8-de55ccdcbc1f_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Axis]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Tangible Asset [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityPublicFloat_ca2c4241-87a6-42c3-806d-1b2e9ec9383f_terseLabel_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Public Float</link:label>
    <link:label id="lab_dei_EntityPublicFloat_label_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Public Float</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityPublicFloat"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityPublicFloat" xlink:to="lab_dei_EntityPublicFloat" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_3acbe73a-9bff-440c-8ebf-ac18890a278a_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax expense related to employee stock-based compensation</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_e2e79290-5e73-48ef-832d-f15dc281759d_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options vested or expected to vest</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures, Table</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:to="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ExcessAndObsoleteInventoryCharges_699e0a93-2dc6-4020-8e9b-ed890f4219df_terseLabel_en-US" xlink:label="lab_cgnx_ExcessAndObsoleteInventoryCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Excess and obsolete inventory charges</link:label>
    <link:label id="lab_cgnx_ExcessAndObsoleteInventoryCharges_label_en-US" xlink:label="lab_cgnx_ExcessAndObsoleteInventoryCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Excess and Obsolete Inventory Charges</link:label>
    <link:label id="lab_cgnx_ExcessAndObsoleteInventoryCharges_documentation_en-US" xlink:label="lab_cgnx_ExcessAndObsoleteInventoryCharges" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Excess and Obsolete Inventory Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges" xlink:href="cgnx-20241231.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ExcessAndObsoleteInventoryCharges" xlink:to="lab_cgnx_ExcessAndObsoleteInventoryCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentIncomeNonoperating_32ad4632-6f5b-4320-9877-a34a4453a1d6_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentIncomeNonoperating" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment income</link:label>
    <link:label id="lab_us-gaap_InvestmentIncomeNonoperating_label_en-US" xlink:label="lab_us-gaap_InvestmentIncomeNonoperating" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment Income, Nonoperating</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentIncomeNonoperating" xlink:to="lab_us-gaap_InvestmentIncomeNonoperating" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_720e7e4b-8f14-441a-b811-0c416cae6e68_verboseLabel_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Asset-backed securities</link:label>
    <link:label id="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Backed Securities Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Asset Backed Securities Fair Value Disclosure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:href="cgnx-20241231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:to="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsAbstract_92439c7b-393f-41b1-8e56-fe74153fd4ed_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]</link:label>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsAbstract_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract" xlink:to="lab_srt_ValuationAndQualifyingAccountsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year</link:label>
    <link:label id="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember_label_en-US" xlink:label="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:to="lab_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtErrCompAmt_terseLabel_en-US" xlink:label="lab_ecd_AggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Amount</link:label>
    <link:label id="lab_ecd_AggtErrCompAmt_label_en-US" xlink:label="lab_ecd_AggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtErrCompAmt" xlink:to="lab_ecd_AggtErrCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ExpirationPeriodOfStockOptionPlan_6db5e8a0-083c-4bcf-8805-e22b0dde0688_terseLabel_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expiration period of stock option plan</link:label>
    <link:label id="lab_cgnx_ExpirationPeriodOfStockOptionPlan_label_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Expiration Period Of Stock Option Plan</link:label>
    <link:label id="lab_cgnx_ExpirationPeriodOfStockOptionPlan_documentation_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Expiration period of stock option plan.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:href="cgnx-20241231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:to="lab_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LocalPhoneNumber_24c3d866-7543-423a-8c34-033c09d7f2cf_terseLabel_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:label id="lab_dei_LocalPhoneNumber_label_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LocalPhoneNumber" xlink:to="lab_dei_LocalPhoneNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_8518107d-2163-4bc4-b9ed-d1804868fc88_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax assets, valuation allowance</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_8ac76f55-bfc5-4c57-8c53-a577bd9e1e26_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Valuation allowance</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Valuation Allowance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtErrCompNotYetDeterminedTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Not Yet Determined</link:label>
    <link:label id="lab_ecd_AggtErrCompNotYetDeterminedTextBlock_label_en-US" xlink:label="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Erroneous Compensation Not Yet Determined [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompNotYetDeterminedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:to="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_AmericasMember_a6d47d63-9771-4d65-835c-757b5be1b2ad_terseLabel_en-US" xlink:label="lab_srt_AmericasMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Americas [Member]</link:label>
    <link:label id="lab_srt_AmericasMember_label_en-US" xlink:label="lab_srt_AmericasMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Americas [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AmericasMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_AmericasMember" xlink:to="lab_srt_AmericasMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_9407312e-3a39-4c8f-ad9a-a908a862293c_terseLabel_en-US" xlink:label="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maturities of forward of contracts</link:label>
    <link:label id="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_label_en-US" xlink:label="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum Remaining Maturity of Foreign Currency Derivatives</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:to="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_8bb41cae-7171-443a-91cf-6a9be3fd9352_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Allowance for credit loss</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Allowance for Credit Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoTotalCompAmt_terseLabel_en-US" xlink:label="lab_ecd_PeoTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO Total Compensation Amount</link:label>
    <link:label id="lab_ecd_PeoTotalCompAmt_label_en-US" xlink:label="lab_ecd_PeoTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO Total Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoTotalCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoTotalCompAmt" xlink:to="lab_ecd_PeoTotalCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_2ccf1826-10b4-4732-a24d-81977dfcb6b6_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Liability, Fair Value, Gross Liability</link:label>
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_label_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Liability, Subject to Master Netting Arrangement, before Offset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:to="lab_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_OtherAsiaMember_defe0c36-7c9b-4029-83e6-db75c2878793_terseLabel_en-US" xlink:label="lab_cgnx_OtherAsiaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other Asia [Member]</link:label>
    <link:label id="lab_cgnx_OtherAsiaMember_label_en-US" xlink:label="lab_cgnx_OtherAsiaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Asia [Member]</link:label>
    <link:label id="lab_cgnx_OtherAsiaMember_documentation_en-US" xlink:label="lab_cgnx_OtherAsiaMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Other Asia [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherAsiaMember" xlink:href="cgnx-20241231.xsd#cgnx_OtherAsiaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherAsiaMember" xlink:to="lab_cgnx_OtherAsiaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionTable_fb03b231-66f1-4cd4-932b-aef7a9d84709_terseLabel_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessor, Lease, Description [Table]</link:label>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionTable_label_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessor, Lease, Description [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable" xlink:to="lab_us-gaap_LessorLeaseDescriptionTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_53c12661-9ecc-42e0-8949-be16d30cb28a_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Type [Domain]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Lived Tangible Asset [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_62dd5845-1492-415b-9faa-23bee730fcc2_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Employee Service Share-Based Compensation, Allocation of Recognized Period Costs, by Report Line [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Income Location, Balance [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationAxis" xlink:to="lab_us-gaap_IncomeStatementLocationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_74d7daf0-a7e5-4ea2-83e6-04f16f345c6c_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options vested or expected to vest, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemAxis_c7b476f9-8300-43db-ac63-d0b8dc4c1419_terseLabel_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unusual or Infrequent Item, or Both [Axis]</link:label>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemAxis_label_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unusual or Infrequent Item, or Both [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnusualOrInfrequentItemAxis" xlink:to="lab_us-gaap_UnusualOrInfrequentItemAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockMember_ea086470-9b99-4916-bae1-52e58c587dd5_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:label id="lab_us-gaap_CommonStockMember_label_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockMember" xlink:to="lab_us-gaap_CommonStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_0f909f0f-cecc-4af7-9334-360a43db7bf9_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">available for sale securities debt maturities after five years before seven years fair value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Expense of Enforcement, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Expense of Enforcement, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_0a6a885e-8b55-4255-b713-721fae4b2dac_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm_abb2aaa2-f548-44a6-823d-35b6a4cbec5c_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecorded Unconditional Purchase Obligation, Term</link:label>
    <link:label id="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm_label_en-US" xlink:label="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecorded Unconditional Purchase Obligation, Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecordedUnconditionalPurchaseObligationTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm" xlink:to="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingAbstract_8988fd85-b3ae-4dc2-a74d-c380b05136bf_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:label id="lab_us-gaap_SegmentReportingAbstract_label_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingAbstract" xlink:to="lab_us-gaap_SegmentReportingAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCentralIndexKey_2da9ae0d-5c89-4105-9f06-9318c5d409ce_terseLabel_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:label id="lab_dei_EntityCentralIndexKey_label_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCentralIndexKey" xlink:to="lab_dei_EntityCentralIndexKey" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_StatementScenarioAxis_2d504179-6064-4d45-a897-2199c280033a_terseLabel_en-US" xlink:label="lab_srt_StatementScenarioAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Scenario [Axis]</link:label>
    <link:label id="lab_srt_StatementScenarioAxis_label_en-US" xlink:label="lab_srt_StatementScenarioAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Scenario [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementScenarioAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_StatementScenarioAxis" xlink:to="lab_srt_StatementScenarioAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_0bce2cf1-8169-46c9-b298-af0bab3baa92_terseLabel_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue and customer deposits</link:label>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_label_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract With Customer, Liability, Period Increase (Decrease)</link:label>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_documentation_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract With Customer, Liability, Period Increase (Decrease)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:href="cgnx-20241231.xsd#cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:to="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_ed6a9046-5892-43b0-a4e8-ae387420bff0_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_ebd50443-abb6-4ad2-b7fa-b429ef15291a_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest and penalties, gross</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Compensation Actually Paid Amount</link:label>
    <link:label id="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt_label_en-US" xlink:label="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-PEO NEO Average Compensation Actually Paid Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgCompActuallyPaidAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:to="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_bfdf6416-0721-4df2-8efc-168ff3f6b09e_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Provisions for warranties issued during the period</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard and Extended Product Warranty Accrual, Increase for Warranties Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyAccrualWarrantiesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:to="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_41a61622-15ea-473f-b0f1-0f70c42aa10d_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shareholders&#8217; Equity</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:to="lab_us-gaap_StockholdersEquityNoteDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing, How MNPI Considered</link:label>
    <link:label id="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing, How MNPI Considered [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgHowMnpiCnsdrdTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:to="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancialInstrumentAxis_b8fd6d73-5cd3-4509-b1b1-4587b80cd2a0_terseLabel_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Financial Instrument [Axis]</link:label>
    <link:label id="lab_us-gaap_FinancialInstrumentAxis_label_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Financial Instrument [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancialInstrumentAxis" xlink:to="lab_us-gaap_FinancialInstrumentAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_bc9c8894-a3d9-4c27-8e0e-806dc471c3dd_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segment and Geographic Information</link:label>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary_4ef8e906-d8ca-436b-a0e6-ad72f7db0445_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecorded Unconditional Purchase Obligation, Including Lease Not yet Commenced, to be Paid, Year One</link:label>
    <link:label id="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary_label_en-US" xlink:label="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecorded Unconditional Purchase Obligation, to be Paid, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary" xlink:to="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsegmentsConsolidationItemsAxis_67800fe5-ec84-4f19-8797-225d55b6277f_terseLabel_en-US" xlink:label="lab_us-gaap_SubsegmentsConsolidationItemsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsegments Consolidation Items [Axis]</link:label>
    <link:label id="lab_us-gaap_SubsegmentsConsolidationItemsAxis_label_en-US" xlink:label="lab_us-gaap_SubsegmentsConsolidationItemsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsegments Consolidation Items [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsConsolidationItemsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsConsolidationItemsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsegmentsConsolidationItemsAxis" xlink:to="lab_us-gaap_SubsegmentsConsolidationItemsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_af21e564-ba5c-46aa-92c4-6e1fbfda707a_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">New Pronouncements</link:label>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Standards Update and Change in Accounting Principle [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:to="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_55d26adf-e540-4e63-8ba2-b14a6058ae15_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedStockMember_bad62df9-d420-4886-b370-24657eb0c350_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted Stock [Member]</link:label>
    <link:label id="lab_us-gaap_RestrictedStockMember_label_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedStockMember" xlink:to="lab_us-gaap_RestrictedStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_2e48a56f-7a2b-4459-89c2-b3ead2912725_totalLabel_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_label_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash Cash Equivalents Short Term And Long Term Investments</link:label>
    <link:label id="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_documentation_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cash, cash equivalents, short term and long term investments.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:href="cgnx-20241231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:to="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrIndTitle_terseLabel_en-US" xlink:label="lab_ecd_TrdArrIndTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title</link:label>
    <link:label id="lab_ecd_TrdArrIndTitle_label_en-US" xlink:label="lab_ecd_TrdArrIndTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement, Individual Title</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndTitle" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrIndTitle" xlink:to="lab_ecd_TrdArrIndTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_8308a428-8387-4c78-a21f-b2a073cb0a09_periodStartLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance of reserve for income taxes</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_641b8d6f-d2b9-4a69-88b0-8b91b7cfc26b_periodEndLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance of reserve for income taxes</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefits" xlink:to="lab_us-gaap_UnrecognizedTaxBenefits" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CityAreaCode_ab9d473d-b7c1-4869-820d-d2ed18bfc23a_terseLabel_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:label id="lab_dei_CityAreaCode_label_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CityAreaCode" xlink:to="lab_dei_CityAreaCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_648c9fe7-5b72-4c8d-bc14-36d27135f79a_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Asset acquisition, transaction costs</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Transaction Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:to="lab_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_115f24bf-d53a-44ff-a261-a6a84550b6f8_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current liabilities:</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract" xlink:to="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorLocation_be4f1df3-51a7-4535-875c-ff51ef76b05f_terseLabel_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Auditor Location</link:label>
    <link:label id="lab_dei_AuditorLocation_label_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Auditor Location</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorLocation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorLocation" xlink:to="lab_dei_AuditorLocation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRecognitionPolicyTextBlock_1815f3e0-1503-4807-8233-6e75dfa24a26_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueRecognitionPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRecognitionPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:to="lab_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock_terseLabel_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Not Adopted</link:label>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock_label_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Not Adopted [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:to="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_NonCashLossFromCatastrophes_d491cce6-7968-4e06-9a82-df9b75de69cc_terseLabel_en-US" xlink:label="lab_cgnx_NonCashLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-cash, loss from catastrophes</link:label>
    <link:label id="lab_cgnx_NonCashLossFromCatastrophes_label_en-US" xlink:label="lab_cgnx_NonCashLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-cash, Loss from Catastrophes</link:label>
    <link:label id="lab_cgnx_NonCashLossFromCatastrophes_documentation_en-US" xlink:label="lab_cgnx_NonCashLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Non-cash, Loss from Catastrophes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NonCashLossFromCatastrophes" xlink:href="cgnx-20241231.xsd#cgnx_NonCashLossFromCatastrophes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NonCashLossFromCatastrophes" xlink:to="lab_cgnx_NonCashLossFromCatastrophes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GainLossOnDispositionOfAssets1_992a655d-7c1b-4b80-bca1-1ea587e1b137_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Loss on disposition of property, plant and equipment</link:label>
    <link:label id="lab_us-gaap_GainLossOnDispositionOfAssets1_6a1bde13-36a1-4eb4-8344-a0d7b5810b16_terseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss on disposition of property, plant and equipment</link:label>
    <link:label id="lab_us-gaap_GainLossOnDispositionOfAssets1_label_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gain (Loss) on Disposition of Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnDispositionOfAssets1" xlink:to="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_FairValueAdjustmentOnAcquiredInventories_85b65f7d-70d7-4067-bed1-3dda34c14796_terseLabel_en-US" xlink:label="lab_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair value adjustment on acquired inventories (Note 21)</link:label>
    <link:label id="lab_cgnx_FairValueAdjustmentOnAcquiredInventories_label_en-US" xlink:label="lab_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Adjustment on Acquired Inventories</link:label>
    <link:label id="lab_cgnx_FairValueAdjustmentOnAcquiredInventories_documentation_en-US" xlink:label="lab_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Fair Value Adjustment on Acquired Inventories</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:href="cgnx-20241231.xsd#cgnx_FairValueAdjustmentOnAcquiredInventories"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:to="lab_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_a5aedce6-7815-4969-8370-b4cc5979ef87_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Repurchase of common stock</link:label>
    <link:label id="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_label_en-US" xlink:label="lab_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments for Repurchase of Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:to="lab_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_37f34474-0f43-4af3-94fc-97955534d2b6_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Valuation Allowance [Member]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:to="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_29155829-63a2-4a92-a527-74b59e21d016_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Undistributed Foreign Earnings</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_29462e62-6deb-4ec1-9df7-8993ac8cd443_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Undistributed Foreign Earnings</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Undistributed Foreign Earnings</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_3920f0ac-d88e-4513-96aa-9f58f341e5d3_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]</link:label>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:to="lab_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_0560d708-a281-40b4-b6c4-2b690647e966_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Segment Reporting Information, by Segment [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Segment Reporting Information, by Segment [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:to="lab_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_8f07beb7-8436-4bee-8c62-d52303c51187_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-Average Grant Fair Value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_82e1a9d8-e575-464d-b22e-1a15887ea08c_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeAxis" xlink:to="lab_us-gaap_SubsequentEventTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_693083b6-a98e-48a2-abfb-52d47b722dae_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareAbstract" xlink:to="lab_us-gaap_EarningsPerShareAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquityAbstract_e481f624-0ba3-4997-9e7a-46dc08fc8d92_terseLabel_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity [Abstract]</link:label>
    <link:label id="lab_us-gaap_EquityAbstract_label_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityAbstract" xlink:to="lab_us-gaap_EquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryRawMaterialsNetOfReserves_91acddb5-4a76-4623-ad19-05d52262226a_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Raw materials</link:label>
    <link:label id="lab_us-gaap_InventoryRawMaterialsNetOfReserves_label_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Raw Materials, Net of Reserves</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:to="lab_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_0e4546ec-8ac0-41a0-a5bd-b91a634257cf_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Retained earnings</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings (Accumulated Deficit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_79fdf69c-7a32-4c43-a731-e60eee5b45f2_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forfeited or expired, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_4c8f6c4e-8a49-4b82-8ceb-dea2883afae2_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Inventories</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInInventories" xlink:to="lab_us-gaap_IncreaseDecreaseInInventories" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrSecuritiesAggAvailAmt_terseLabel_en-US" xlink:label="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Available</link:label>
    <link:label id="lab_ecd_TrdArrSecuritiesAggAvailAmt_label_en-US" xlink:label="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement, Securities Aggregate Available Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrSecuritiesAggAvailAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:to="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsAdjsMember_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments</link:label>
    <link:label id="lab_ecd_EqtyAwrdsAdjsMember_label_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsAdjsMember" xlink:to="lab_ecd_EqtyAwrdsAdjsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_40bf0ef5-63b6-4c2e-8b8b-d4662870e647_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, liability</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiability" xlink:to="lab_us-gaap_OperatingLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardUndrlygSecuritiesAmt_terseLabel_en-US" xlink:label="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Underlying Securities</link:label>
    <link:label id="lab_ecd_AwardUndrlygSecuritiesAmt_label_en-US" xlink:label="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Underlying Securities Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardUndrlygSecuritiesAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:to="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PerformanceSharesMember_135bf078-7c16-416c-b93c-21e04ef6fe2a_terseLabel_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Performance Shares</link:label>
    <link:label id="lab_us-gaap_PerformanceSharesMember_label_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Performance Shares [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PerformanceSharesMember" xlink:to="lab_us-gaap_PerformanceSharesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_RetirementAllowance_4de22a98-c234-407f-8cd2-a5d97ad762ef_terseLabel_en-US" xlink:label="lab_cgnx_RetirementAllowance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign retirement obligations</link:label>
    <link:label id="lab_cgnx_RetirementAllowance_label_en-US" xlink:label="lab_cgnx_RetirementAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Allowance</link:label>
    <link:label id="lab_cgnx_RetirementAllowance_documentation_en-US" xlink:label="lab_cgnx_RetirementAllowance" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Retirement allowance Japan.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RetirementAllowance" xlink:href="cgnx-20241231.xsd#cgnx_RetirementAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RetirementAllowance" xlink:to="lab_cgnx_RetirementAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DividendsCommonStockCash_09e117be-7b61-4793-ac31-0609db51089c_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DividendsCommonStockCash" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Payment of dividends ($0.305 per common share)</link:label>
    <link:label id="lab_us-gaap_DividendsCommonStockCash_label_en-US" xlink:label="lab_us-gaap_DividendsCommonStockCash" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends, Common Stock, Cash</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCommonStockCash" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsCommonStockCash"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsCommonStockCash" xlink:to="lab_us-gaap_DividendsCommonStockCash" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AmendmentFlag_3573a67d-a6ad-48d1-9c2e-f6341f9774c3_terseLabel_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:label id="lab_dei_AmendmentFlag_label_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AmendmentFlag" xlink:to="lab_dei_AmendmentFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_94649db2-df0a-4d5c-becb-241d36bd2a00_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Loss (gain) on disposal of property, plant, and equipment</link:label>
    <link:label id="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_label_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gain (Loss) on Disposition of Property Plant Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:to="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_a5bf3226-1b7b-4013-97f4-12a787b7392d_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated other comprehensive loss consists of foreign currency translation adjustments, net of tax</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_94adac9d-76c5-4100-9ff2-97e308a9c57e_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockAppreciationRightsSARSMember_terseLabel_en-US" xlink:label="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Appreciation Rights (SARs)</link:label>
    <link:label id="lab_us-gaap_StockAppreciationRightsSARSMember_label_en-US" xlink:label="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Appreciation Rights (SARs) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockAppreciationRightsSARSMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:to="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_GBP_141d9888-dec5-4774-a65d-636085534057_terseLabel_en-US" xlink:label="lab_currency_GBP" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">British Pound [Member]</link:label>
    <link:label id="lab_currency_GBP_label_en-US" xlink:label="lab_currency_GBP" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">United Kingdom, Pounds</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_GBP" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_GBP"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_GBP" xlink:to="lab_currency_GBP" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_d04d9745-0017-46e2-8cf0-f5febd014cfe_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Events [Abstract]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Events [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsAbstract" xlink:to="lab_us-gaap_SubsequentEventsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_1090aa6b-b1f8-4470-84f0-bbde179e4c62_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Measurements, Fair Value Hierarchy [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember_label_en-US" xlink:label="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Joerg Kuechen, Rule Trading Arrangement, Common Stock Purchase [Member]</link:label>
    <link:label id="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember_documentation_en-US" xlink:label="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Joerg Kuechen, Rule Trading Arrangement, Common Stock Purchase</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:href="cgnx-20241231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:to="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RecoveryOfErrCompDisclosureLineItems_label_en-US" xlink:label="lab_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Recovery of Erroneously Awarded Compensation Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RecoveryOfErrCompDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="lab_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2020Member_0463da83-fe89-4810-8ca0-710b49037c64_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2020Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Repurchase Program March 2020 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2020Member_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2020Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Repurchase Program March 2020 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2020Member_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2020Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Repurchase Program March 2020</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member" xlink:href="cgnx-20241231.xsd#cgnx_RepurchaseProgramMarch2020Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramMarch2020Member" xlink:to="lab_cgnx_RepurchaseProgramMarch2020Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_2bf6bca3-4f2f-4124-b7e5-33344b733a3d_periodStartLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning Balance</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_87505c24-4e8b-4388-b3d2-4e18b059bc06_periodEndLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Ending Balance</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard and Extended Product Warranty Accrual</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrual" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyAccrual"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrual" xlink:to="lab_us-gaap_ProductWarrantyAccrual" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressPostalZipCode_a726adfc-1610-4a52-82f4-c7cf716c3449_terseLabel_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:label id="lab_dei_EntityAddressPostalZipCode_label_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressPostalZipCode" xlink:to="lab_dei_EntityAddressPostalZipCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdvertisingExpense_f280b54e-7c1a-4926-8c89-cb03a6a3dc23_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Advertising costs</link:label>
    <link:label id="lab_us-gaap_AdvertisingExpense_label_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Advertising Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingExpense" xlink:to="lab_us-gaap_AdvertisingExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_f794c733-03c9-4ddf-bacd-f86235417dc5_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Dividends Payable, Date of Record</link:label>
    <link:label id="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_label_en-US" xlink:label="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends Payable, Date of Record</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:to="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_NatureOfOperationsPolicyTextBlock_86ee5511-3830-451d-961f-e232564e4beb_terseLabel_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Nature of Operations</link:label>
    <link:label id="lab_cgnx_NatureOfOperationsPolicyTextBlock_label_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Nature Of Operations [Policy Text Block]</link:label>
    <link:label id="lab_cgnx_NatureOfOperationsPolicyTextBlock_documentation_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Nature of Operations.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NatureOfOperationsPolicyTextBlock" xlink:href="cgnx-20241231.xsd#cgnx_NatureOfOperationsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NatureOfOperationsPolicyTextBlock" xlink:to="lab_cgnx_NatureOfOperationsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets_42f45ec3-bc7e-43b9-be00-8f2a3aadf06f_negatedTerseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Non deductible federal and state liabilities</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets_label_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Amortization Of Intangible Assets</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Liabilities, Amortization Of Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets" xlink:to="lab_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_9443307b-d10d-49e9-8ec3-0e8f4ae4fc91_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_f86d1704-49a1-4377-a112-f455e78fc245_totalLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, at Carrying Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_016a515c-9a36-4743-8959-05189a45afd3_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current investments, amortized cost</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Amortized Cost, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember_terseLabel_en-US" xlink:label="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested</link:label>
    <link:label id="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember_label_en-US" xlink:label="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:to="lab_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorName_19c6b58f-24df-4e8f-b185-1e9b3b9fef4c_terseLabel_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Auditor Name</link:label>
    <link:label id="lab_dei_AuditorName_label_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Auditor Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorName" xlink:to="lab_dei_AuditorName" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_5aca9e59-40f0-430f-8787-37b557fd9bce_terseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer Contracts Liability, Current</link:label>
    <link:label id="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_label_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Contracts Liability Current [Roll Forward]</link:label>
    <link:label id="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_documentation_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer Contracts Liability Current [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:href="cgnx-20241231.xsd#cgnx_CustomerContractsLiabilityCurrentRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:to="lab_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_631eaf36-b531-4fca-be39-9565ad2c4fe9_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forfeited or expired, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_def59e5e-c7f4-455e-92ae-1587fdc85890_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current:</link:label>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember_terseLabel_en-US" xlink:label="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested</link:label>
    <link:label id="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember_label_en-US" xlink:label="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:to="lab_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_779a70fc-f81a-4f4b-bd33-86a7e8b77c6d_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maturities and sales of investments</link:label>
    <link:label id="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds from Sale, Maturity and Collection of Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:to="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_bb1b20ff-59cf-4617-88d2-38e0dd0a6bc9_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Useful Life</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Useful Life</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_91416ad4-3307-4895-8fc9-a0c4f0adb509_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_b6dde8c1-ef06-484d-903b-63eec43b598e_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToPeoCompFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AdjToPeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment To PEO Compensation, Footnote</link:label>
    <link:label id="lab_ecd_AdjToPeoCompFnTextBlock_label_en-US" xlink:label="lab_ecd_AdjToPeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment To PEO Compensation, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToPeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToPeoCompFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToPeoCompFnTextBlock" xlink:to="lab_ecd_AdjToPeoCompFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FireMember_812b3416-426b-4a5a-be18-9ee3871c3f34_terseLabel_en-US" xlink:label="lab_us-gaap_FireMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fire</link:label>
    <link:label id="lab_us-gaap_FireMember_label_en-US" xlink:label="lab_us-gaap_FireMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fire [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FireMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FireMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FireMember" xlink:to="lab_us-gaap_FireMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_A88000SquareFootPremisesMember_a8477c73-29a2-4971-bd25-5b4a2b0620e8_terseLabel_en-US" xlink:label="lab_cgnx_A88000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">88,000 Square-Foot Premises</link:label>
    <link:label id="lab_cgnx_A88000SquareFootPremisesMember_label_en-US" xlink:label="lab_cgnx_A88000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">88,000 Square-Foot Premises [Member]</link:label>
    <link:label id="lab_cgnx_A88000SquareFootPremisesMember_documentation_en-US" xlink:label="lab_cgnx_A88000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">88,000 Square-Foot Premises</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A88000SquareFootPremisesMember" xlink:href="cgnx-20241231.xsd#cgnx_A88000SquareFootPremisesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_A88000SquareFootPremisesMember" xlink:to="lab_cgnx_A88000SquareFootPremisesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MoritexCorporationMember_26c86346-879b-42b3-8fd2-4389cd564fe5_terseLabel_en-US" xlink:label="lab_cgnx_MoritexCorporationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Moritex Corporation</link:label>
    <link:label id="lab_cgnx_MoritexCorporationMember_label_en-US" xlink:label="lab_cgnx_MoritexCorporationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Moritex Corporation [Member]</link:label>
    <link:label id="lab_cgnx_MoritexCorporationMember_documentation_en-US" xlink:label="lab_cgnx_MoritexCorporationMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Moritex Corporation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MoritexCorporationMember" xlink:to="lab_cgnx_MoritexCorporationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_dc3b1b0c-87df-4207-95c3-632630ded592_terseLabel_en-US" xlink:label="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cognex Corporation 2023 Stock Option And Incentive Plan</link:label>
    <link:label id="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_label_en-US" xlink:label="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cognex Corporation 2023 Stock Option And Incentive Plan [Member]</link:label>
    <link:label id="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_documentation_en-US" xlink:label="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Cognex Corporation 2023 Stock Option And Incentive Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:href="cgnx-20241231.xsd#cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:to="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Other Measure</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Other Measure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsOtherMeasureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StateAdministrationOfTaxationChinaMember_9cb95f2a-1670-45a8-b1c9-b61ee2b1196c_terseLabel_en-US" xlink:label="lab_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State Administration of Taxation, China [Member]</link:label>
    <link:label id="lab_us-gaap_StateAdministrationOfTaxationChinaMember_label_en-US" xlink:label="lab_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">State Administration of Taxation, China [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAdministrationOfTaxationChinaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:to="lab_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_301fb29d-e927-4b9b-918f-7010ddee1473_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock, Class of Stock [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock, Class of Stock [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable" xlink:to="lab_us-gaap_ScheduleOfStockByClassTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year</link:label>
    <link:label id="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember_label_en-US" xlink:label="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:to="lab_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_56b6a194-9239-46d6-9a2e-5029e063f779_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average common and common-equivalent shares outstanding:</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Assets_c461b175-5c41-43fc-ab77-d7c7d666b821_totalLabel_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total assets</link:label>
    <link:label id="lab_us-gaap_Assets_label_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Assets" xlink:to="lab_us-gaap_Assets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_4d48e26b-e6ea-4e13-b994-2697683f235e_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cost of revenue</link:label>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_label_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost of Goods and Services Sold</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfGoodsAndServicesSold" xlink:to="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_f3a3e3ed-73d1-44e4-9269-31a1d76eaccd_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Advertising Costs</link:label>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Advertising Cost [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:to="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAbstract_62ac2b81-338e-48bd-bb26-3fd1aaa92ec5_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents [Abstract]</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAbstract_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract" xlink:to="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_78699524-2d7c-4aea-b992-2245015c9e65_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Purchases of property, plant, and equipment</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_0ac49b38-07fa-4beb-98b3-b559fb7d384a_terseLabel_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other liabilities</link:label>
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Liabilities, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:to="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_c98dce53-55f8-402f-a8f3-1467919b0c03_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Movement in Standard Product Warranty Accrual [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_label_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Movement in Standard Product Warranty Accrual [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MovementInStandardProductWarrantyAccrualRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:to="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Violation of Home Country Law, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Violation of Home Country Law, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_2e7c5c88-6ead-4f5b-baaf-86bd6f80335d_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commitments and contingencies (Note 11)</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingencies" xlink:to="lab_us-gaap_CommitmentsAndContingencies" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_8f9f8f04-b5aa-47ca-b77c-37d4e9d25994_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-Based Compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_dd1b5673-9aea-4f9b-8f06-15b169b051f5_negatedLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Reclassification of net realized (gain) loss into current operations</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_459e7059-9bbb-43ab-8e67-a9561a634a58_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_18f1962b-50e5-4efe-9066-5f2737f5dca6_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Net realized gains reclassified into current operations</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_7ea4fb7a-5445-4e67-b3d2-92e19de8d2a5_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reconciliation of the United States Federal Statutory Corporate Tax Rate to the Company's Effective Tax Rate or Income Tax Provision</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_3111fe6d-6ccc-4ba8-949d-39c9ac2f0512_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net unrealized losses on available-for-sale investments, net of tax</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">AOCI, Debt Securities, Available-for-Sale, Adjustment, after Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrTerminationDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrTerminationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Termination Date</link:label>
    <link:label id="lab_ecd_TrdArrTerminationDate_label_en-US" xlink:label="lab_ecd_TrdArrTerminationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Termination Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrTerminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrTerminationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrTerminationDate" xlink:to="lab_ecd_TrdArrTerminationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_a731527f-49cc-4bc4-ac56-dd9d6b39e215_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_239a5867-0e14-4bbf-b676-60fcd9e917b1_terseLabel_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentrations of Risk</link:label>
    <link:label id="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_label_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentrations Of Risk Policy [Policy Text Block]</link:label>
    <link:label id="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_documentation_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Concentrations of Risk.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:href="cgnx-20241231.xsd#cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:to="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_24414ccf-0289-4603-8c85-eaea872b2774_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2026</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NondesignatedMember_fb984f75-2478-43c1-a570-0b52465eb325_terseLabel_en-US" xlink:label="lab_us-gaap_NondesignatedMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Not Designated as Hedging Instrument [Member]</link:label>
    <link:label id="lab_us-gaap_NondesignatedMember_label_en-US" xlink:label="lab_us-gaap_NondesignatedMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Not Designated as Hedging Instrument [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NondesignatedMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NondesignatedMember" xlink:to="lab_us-gaap_NondesignatedMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember_label_en-US" xlink:label="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Joerg Kuechen, Rule Trading Arrangement, Common Stock Sale [Member]</link:label>
    <link:label id="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember_documentation_en-US" xlink:label="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Joerg Kuechen, Rule Trading Arrangement, Common Stock Sale</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:href="cgnx-20241231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:to="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossAbstract_e4cd654a-6d28-4a38-a995-a0aaf0260068_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred tax assets:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Gross [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGrossAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:to="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_0e1b8001-b2f6-407c-8078-df72def4e9b4_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reduction of accumulated depreciation due to disposals</link:label>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_label_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Depreciation, Depletion and Amortization, Sale or Disposal of Property, Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:to="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_9a8fe38f-aec4-4c3b-81d9-74a101d71b21_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfOneYear_48c49b04-2863-4e9c-bb36-236cf788ddab_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of one year</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfOneYear_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Contributions Vest At End Of One Year</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfOneYear_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Company Contributions Vest At End Of One Year</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:href="cgnx-20241231.xsd#cgnx_CompanyContributionsVestAtEndOfOneYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetIncomeLoss_a429a37d-fa2e-4dca-82c2-010deb137f57_totalLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_bf52b57d-b27b-44ff-8903-a39f732610e2_terseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_label_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Income (Loss) Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss" xlink:to="lab_us-gaap_NetIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TradingArrAxis_terseLabel_en-US" xlink:label="lab_ecd_TradingArrAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trading Arrangement:</link:label>
    <link:label id="lab_ecd_TradingArrAxis_label_en-US" xlink:label="lab_ecd_TradingArrAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TradingArrAxis" xlink:to="lab_ecd_TradingArrAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PvpTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PvpTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure, Table</link:label>
    <link:label id="lab_ecd_PvpTableTextBlock_label_en-US" xlink:label="lab_ecd_PvpTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pay vs Performance [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PvpTableTextBlock" xlink:to="lab_ecd_PvpTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OffsettingAssetsTableTextBlock_7cec0260-e084-453c-983c-f4ccd993a770_terseLabel_en-US" xlink:label="lab_us-gaap_OffsettingAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Offsetting Assets</link:label>
    <link:label id="lab_us-gaap_OffsettingAssetsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_OffsettingAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Offsetting Assets [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OffsettingAssetsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OffsettingAssetsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OffsettingAssetsTableTextBlock" xlink:to="lab_us-gaap_OffsettingAssetsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Excluding Value Reported in Compensation Table</link:label>
    <link:label id="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember_label_en-US" xlink:label="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="lab_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFileNumber_859a12cd-08d3-470a-8647-71ab8658416c_terseLabel_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:label id="lab_dei_EntityFileNumber_label_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFileNumber" xlink:to="lab_dei_EntityFileNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock_e228281b-ce94-4c31-b332-4a04ea203682_terseLabel_en-US" xlink:label="lab_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Realized Gain (Loss) on Investments</link:label>
    <link:label id="lab_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Realized Gain (Loss) on Investments [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RealizedGainLossOnInvestmentsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock" xlink:to="lab_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InsuranceRecoveries_f4e11bfb-10a2-457f-9b4e-ffcf63877df5_terseLabel_en-US" xlink:label="lab_us-gaap_InsuranceRecoveries" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Insurance Recoveries</link:label>
    <link:label id="lab_us-gaap_InsuranceRecoveries_label_en-US" xlink:label="lab_us-gaap_InsuranceRecoveries" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insurance Recoveries</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InsuranceRecoveries" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InsuranceRecoveries"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InsuranceRecoveries" xlink:to="lab_us-gaap_InsuranceRecoveries" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementAbstract_201d0e12-cff0-406f-b3cd-4f5498bbb268_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementAbstract" xlink:to="lab_us-gaap_IncomeStatementAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressAddressLine1_be45a836-0878-418a-917d-065e0a77ea47_terseLabel_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:label id="lab_dei_EntityAddressAddressLine1_label_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressAddressLine1" xlink:to="lab_dei_EntityAddressAddressLine1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentFederalTaxExpenseBenefit_c08783d7-bae4-451f-8473-bbafe6725164_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Federal</link:label>
    <link:label id="lab_us-gaap_CurrentFederalTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Federal Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentFederalTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_53f4249d-7976-4ec5-ba5e-581f1201496a_terseLabel_en-US" xlink:label="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effect of foreign exchange rate changes on cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_label_en-US" xlink:label="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseTermOfContract_92b797a7-8990-4642-9a8f-5267c96a1c17_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Term of Contract</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseTermOfContract_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Term of Contract</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:to="lab_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryIndName_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryIndName_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryIndName" xlink:to="lab_ecd_ForgoneRecoveryIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_13b18072-a9b5-4799-9f9f-b7554f7f7709_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, weighted average remaining lease term (years)</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Weighted Average Remaining Lease Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_ce9cef1d-6d6f-48c8-b766-52f36ad323c2_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Increase (Decrease) Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_RevenuePaymentTerms_6b6ac32e-b63f-44fc-9250-bec8b22cba6b_terseLabel_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue, payment terms</link:label>
    <link:label id="lab_cgnx_RevenuePaymentTerms_label_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue, Payment Terms</link:label>
    <link:label id="lab_cgnx_RevenuePaymentTerms_documentation_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Revenue, Payment Terms</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RevenuePaymentTerms" xlink:href="cgnx-20241231.xsd#cgnx_RevenuePaymentTerms"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RevenuePaymentTerms" xlink:to="lab_cgnx_RevenuePaymentTerms" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_2e4a2afe-2836-4333-bd97-4932bc91d950_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Change in deferred income taxes</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Deferred Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:to="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_2b1bef76-1eba-44ca-83cd-272714f14016_terseLabel_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vote entitled for each common share outstanding</link:label>
    <link:label id="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_label_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Vote Entitled For Each Common Share Outstanding</link:label>
    <link:label id="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_documentation_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Vote entitled for each common share outstanding.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:href="cgnx-20241231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:to="lab_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentPolicyTextBlock_7fcad6df-9d9d-445f-8204-7c2f56c0c44c_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, and Investments</link:label>
    <link:label id="lab_us-gaap_InvestmentPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_InvestmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentPolicyTextBlock" xlink:to="lab_us-gaap_InvestmentPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMnpiCnsdrdFlag_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Considered</link:label>
    <link:label id="lab_ecd_AwardTmgMnpiCnsdrdFlag_label_en-US" xlink:label="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Considered [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiCnsdrdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:to="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredRevenueRefundPayments1_171b3a7c-79df-441f-bcc9-742f32c1c25c_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredRevenueRefundPayments1" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Deferred Revenue, Refund Payments</link:label>
    <link:label id="lab_us-gaap_DeferredRevenueRefundPayments1_label_en-US" xlink:label="lab_us-gaap_DeferredRevenueRefundPayments1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Revenue, Refund Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueRefundPayments1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueRefundPayments1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredRevenueRefundPayments1" xlink:to="lab_us-gaap_DeferredRevenueRefundPayments1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_cfad6b28-5dd9-4088-aeac-1c8b46ca9352_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Reductions as a result of tax positions taken in prior periods</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryDisclosureAbstract_43c3dd86-0495-4f8a-bfbe-d2861596da60_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_InventoryDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_InventoryDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryDisclosureAbstract" xlink:to="lab_us-gaap_InventoryDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingAggtErrCompAmt_terseLabel_en-US" xlink:label="lab_ecd_OutstandingAggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding Aggregate Erroneous Compensation Amount</link:label>
    <link:label id="lab_ecd_OutstandingAggtErrCompAmt_label_en-US" xlink:label="lab_ecd_OutstandingAggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Outstanding Aggregate Erroneous Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingAggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingAggtErrCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingAggtErrCompAmt" xlink:to="lab_ecd_OutstandingAggtErrCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoActuallyPaidCompAmt_terseLabel_en-US" xlink:label="lab_ecd_PeoActuallyPaidCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO Actually Paid Compensation Amount</link:label>
    <link:label id="lab_ecd_PeoActuallyPaidCompAmt_label_en-US" xlink:label="lab_ecd_PeoActuallyPaidCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO Actually Paid Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoActuallyPaidCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoActuallyPaidCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoActuallyPaidCompAmt" xlink:to="lab_ecd_PeoActuallyPaidCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToCompAxis_terseLabel_en-US" xlink:label="lab_ecd_AdjToCompAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation:</link:label>
    <link:label id="lab_ecd_AdjToCompAxis_label_en-US" xlink:label="lab_ecd_AdjToCompAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment to Compensation [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToCompAxis" xlink:to="lab_ecd_AdjToCompAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsReceivableMember_702d73d9-3b88-4f86-8d88-efc7dd8f5e3d_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts Receivable [Member]</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableMember_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableMember" xlink:to="lab_us-gaap_AccountsReceivableMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AgencyBondsMember_d9207e2c-33b7-4e89-b0cc-101d1cb96d06_terseLabel_en-US" xlink:label="lab_cgnx_AgencyBondsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Agency Bonds [Member]</link:label>
    <link:label id="lab_cgnx_AgencyBondsMember_label_en-US" xlink:label="lab_cgnx_AgencyBondsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Agency Bonds [Member]</link:label>
    <link:label id="lab_cgnx_AgencyBondsMember_documentation_en-US" xlink:label="lab_cgnx_AgencyBondsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Agency bond.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember" xlink:href="cgnx-20241231.xsd#cgnx_AgencyBondsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AgencyBondsMember" xlink:to="lab_cgnx_AgencyBondsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_b979073a-dcab-4f66-ad62-ed20038a784c_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated other comprehensive loss, net of tax</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss), Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PnsnAdjsSvcCstMember_terseLabel_en-US" xlink:label="lab_ecd_PnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pension Adjustments Service Cost</link:label>
    <link:label id="lab_ecd_PnsnAdjsSvcCstMember_label_en-US" xlink:label="lab_ecd_PnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension Adjustments Service Cost [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsSvcCstMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PnsnAdjsSvcCstMember" xlink:to="lab_ecd_PnsnAdjsSvcCstMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_c52ff3ae-7fa0-4e61-bac8-f0ae2c0dc296_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basic (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_22d893ec-3ac6-4131-a949-bfd7cb53dd82_verboseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Basic weighted-average common shares outstanding</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Basic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock_terseLabel_en-US" xlink:label="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Price or TSR Estimation Method</link:label>
    <link:label id="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock_label_en-US" xlink:label="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Price or TSR Estimation Method [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_StkPrcOrTsrEstimationMethodTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:to="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_392e897e-163e-4474-9e8a-89b39aae8706_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax effect of unrealized gain (loss) on available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_463e8e5e-24aa-4b55-83a7-97d6105ee868_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Tax effect of unrealized gain on available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_c43d313d-29ab-4ee7-81ce-6e33c9b972f6_negatedLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Unrealized Losses, Greater than 12 Months</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_b3351eb1-95e4-46b9-b960-195226b0caf3_verboseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment acquired</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_2329f428-f326-4e90-963e-d38cd91dada8_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, plant and equipment</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscIndName_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscIndName_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:to="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_fcd7682e-37ce-43fd-8894-d36895e68936_verboseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Total Revenue</link:label>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_label_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue Benchmark [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueNetMember" xlink:to="lab_us-gaap_SalesRevenueNetMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_99f32c64-6725-4db1-b5ca-d3e7fc102351_negatedLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Unrealized Losses, Less than 12 months</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFilerCategory_ee943ce3-f1fd-488f-8a4b-445a3d30155b_terseLabel_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:label id="lab_dei_EntityFilerCategory_label_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Filer Category</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFilerCategory" xlink:to="lab_dei_EntityFilerCategory" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemTable_5506704c-dd14-467f-bc09-7f16d0983167_terseLabel_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unusual or Infrequent Item, or Both [Table]</link:label>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemTable_label_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unusual or Infrequent Item, or Both [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnusualOrInfrequentItemTable" xlink:to="lab_us-gaap_UnusualOrInfrequentItemTable" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeMember_693e771f-338c-4120-8217-af0a24ef1b22_terseLabel_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Range [Domain]</link:label>
    <link:label id="lab_srt_RangeMember_label_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statistical Measurement [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeMember" xlink:to="lab_srt_RangeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_6ebf2366-9e5b-4d3c-b9a7-6fc30767cbb8_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Gross Unrealized Losses</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativesFairValueLineItems_719d598a-a550-4293-a42e-3a143dee661a_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativesFairValueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivatives, Fair Value [Line Items]</link:label>
    <link:label id="lab_us-gaap_DerivativesFairValueLineItems_label_en-US" xlink:label="lab_us-gaap_DerivativesFairValueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivatives, Fair Value [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesFairValueLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativesFairValueLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativesFairValueLineItems" xlink:to="lab_us-gaap_DerivativesFairValueLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_012259fa-7c4f-454a-8323-c29f47ddb720_terseLabel_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Components of Cash, Cash Equivalents and Investments</link:label>
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_label_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Components Of Cash Cash Equivalents And Investments Table [Table Text Block]</link:label>
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_documentation_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Components of cash cash equivalents and investments.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:href="cgnx-20241231.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:to="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_ce4e90a7-622f-4ea3-9e6d-4d090445821f_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Notional Amounts of Outstanding Derivative Positions</link:label>
    <link:label id="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Notional Amounts of Outstanding Derivative Positions [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingInformationLineItems_a2a3bca4-d059-445f-929f-57640c7b1426_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingInformationLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segment Reporting Information [Line Items]</link:label>
    <link:label id="lab_us-gaap_SegmentReportingInformationLineItems_label_en-US" xlink:label="lab_us-gaap_SegmentReportingInformationLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segment Reporting Information [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingInformationLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems" xlink:to="lab_us-gaap_SegmentReportingInformationLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllTradingArrangementsMember_terseLabel_en-US" xlink:label="lab_ecd_AllTradingArrangementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Trading Arrangements</link:label>
    <link:label id="lab_ecd_AllTradingArrangementsMember_label_en-US" xlink:label="lab_ecd_AllTradingArrangementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Trading Arrangements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllTradingArrangementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="lab_ecd_AllTradingArrangementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_6a061a40-bdeb-4f98-b26b-53ec2d5f753a_negatedTerseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Audit Settlement, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Audit Settlement, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Audit Settlement, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Net Income</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Net Income [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsNetIncomeTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_1bc5fbdd-821e-47dc-b0c1-6aa692725a7f_negatedTerseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Reserve for income taxes</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_label_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Reserve for Income Taxes</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Reserve for Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:href="cgnx-20241231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:to="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_87047653-acc4-4842-a1ea-aef92454c5e3_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vesting period for stock option plans</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Rule10b51ArrAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Adopted</link:label>
    <link:label id="lab_ecd_Rule10b51ArrAdoptedFlag_label_en-US" xlink:label="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:to="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTable_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTable_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Awards Close in Time to MNPI Disclosures [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeLineItems_731ba696-748e-4c27-ba97-ef008c5c55f5_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative [Line Items]</link:label>
    <link:label id="lab_us-gaap_DerivativeLineItems_label_en-US" xlink:label="lab_us-gaap_DerivativeLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLineItems" xlink:to="lab_us-gaap_DerivativeLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_eba8c286-a0ee-407f-810b-c7ab3340f8b4_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]</link:label>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_383c71a3-0ea0-4596-93d8-4011956d6b75_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax paid net</link:label>
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_label_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Taxes Paid, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxesPaidNet" xlink:to="lab_us-gaap_IncomeTaxesPaidNet" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_JPY_465bc306-04e1-4df0-b572-bc41950fa64a_terseLabel_en-US" xlink:label="lab_currency_JPY" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Japanese Yen [Member]</link:label>
    <link:label id="lab_currency_JPY_label_en-US" xlink:label="lab_currency_JPY" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Japan, Yen</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_JPY" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_JPY"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_JPY" xlink:to="lab_currency_JPY" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillPurchaseAccountingAdjustments_01878346-8e4a-4eaa-9e35-7d26d8c07ab0_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill, Measurement Period Adjustment</link:label>
    <link:label id="lab_us-gaap_GoodwillPurchaseAccountingAdjustments_label_en-US" xlink:label="lab_us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill, Measurement Period Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillPurchaseAccountingAdjustments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:to="lab_us-gaap_GoodwillPurchaseAccountingAdjustments" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PayVsPerformanceDisclosureLineItems_label_en-US" xlink:label="lab_ecd_PayVsPerformanceDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pay vs Performance Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PayVsPerformanceDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="lab_ecd_PayVsPerformanceDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_BacNinhVietnamMember_4fe0969d-243f-4d3e-acae-10363ddd6b0a_terseLabel_en-US" xlink:label="lab_cgnx_BacNinhVietnamMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Bac Ninh, Vietnam</link:label>
    <link:label id="lab_cgnx_BacNinhVietnamMember_label_en-US" xlink:label="lab_cgnx_BacNinhVietnamMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Bac Ninh, Vietnam [Member]</link:label>
    <link:label id="lab_cgnx_BacNinhVietnamMember_documentation_en-US" xlink:label="lab_cgnx_BacNinhVietnamMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Bac Ninh, Vietnam</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BacNinhVietnamMember" xlink:href="cgnx-20241231.xsd#cgnx_BacNinhVietnamMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BacNinhVietnamMember" xlink:to="lab_cgnx_BacNinhVietnamMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeerGroupTotalShareholderRtnAmt_terseLabel_en-US" xlink:label="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Peer Group Total Shareholder Return Amount</link:label>
    <link:label id="lab_ecd_PeerGroupTotalShareholderRtnAmt_label_en-US" xlink:label="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Peer Group Total Shareholder Return Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupTotalShareholderRtnAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:to="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_ba1d37ea-2120-4bb9-b6b9-cd05e1e6d6d8_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated forfeiture rate for unvested options for all non-senior management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_label_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Estimated Forfeiture Rate For Unvested Options For All Non Senior Management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_documentation_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Estimated forfeiture rate for unvested options for all non-senior management.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:href="cgnx-20241231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:to="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeTable_b25cc7f2-5f72-43e6-88ae-bf462fdacac8_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative [Table]</link:label>
    <link:label id="lab_us-gaap_DerivativeTable_label_en-US" xlink:label="lab_us-gaap_DerivativeTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeTable" xlink:to="lab_us-gaap_DerivativeTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_5d5ed4fe-a572-4b8b-ab09-decfdb03d5de_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred:</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_0d07d50c-6556-4d74-87c8-8a16e0778114_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Derivative Instruments in Statement of Financial Position, Fair Value</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Derivative Instruments in Statement of Financial Position, Fair Value [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:to="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_4353ac28-03da-4f62-811d-0d932adb397d_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Other Operating Assets and Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:to="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OtherPerfMeasureAmt_terseLabel_en-US" xlink:label="lab_ecd_OtherPerfMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other Performance Measure, Amount</link:label>
    <link:label id="lab_ecd_OtherPerfMeasureAmt_label_en-US" xlink:label="lab_ecd_OtherPerfMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Performance Measure, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OtherPerfMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OtherPerfMeasureAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OtherPerfMeasureAmt" xlink:to="lab_ecd_OtherPerfMeasureAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchMember_0bdc6559-9c31-40c5-9fd0-6150140ce37d_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research Tax Credit Carryforward [Member]</link:label>
    <link:label id="lab_us-gaap_ResearchMember_label_en-US" xlink:label="lab_us-gaap_ResearchMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research Tax Credit Carryforward [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchMember" xlink:to="lab_us-gaap_ResearchMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_5a5206e6-73f8-43f7-949b-59fa3a9983bd_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2027</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillLineItems_df908070-c845-4183-aca3-8f6008fd4102_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill [Line Items]</link:label>
    <link:label id="lab_us-gaap_GoodwillLineItems_label_en-US" xlink:label="lab_us-gaap_GoodwillLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillLineItems" xlink:to="lab_us-gaap_GoodwillLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeasesTextBlock_0c143e69-f54a-4bbb-9dc2-cc4d581eaf2a_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeasesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Leases</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeasesTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeasesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Leases [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeasesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeasesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="lab_us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_67ffe961-169b-4b4f-940a-1b669b20a858_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, shares outstanding (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesOutstanding" xlink:to="lab_us-gaap_CommonStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_bf53319b-707a-4219-a7f9-d25d8ee3525e_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current investment, allowance for credit loss</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_740ddb36-8466-4809-ad6f-352411bc0465_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares available for grant under stock option plans</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_48ba77b4-1029-4938-a5a5-3d52e4bff6c8_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current operating lease liabilities</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InterestReceivable_06bfd6b2-c394-4bc8-b181-a7c0758c34ac_terseLabel_en-US" xlink:label="lab_us-gaap_InterestReceivable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Interest Receivable</link:label>
    <link:label id="lab_us-gaap_InterestReceivable_label_en-US" xlink:label="lab_us-gaap_InterestReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Interest Receivable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestReceivable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InterestReceivable" xlink:to="lab_us-gaap_InterestReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_96546550-4b28-42ec-8fce-f0ecec2a1757_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross realized losses</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Realized Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_c68593df-44ee-44e3-99e6-4bbe388750d8_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred revenue and customer deposits</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_a49d449f-3201-438d-97d8-afe90b006b67_periodStartLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning balance</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_75228689-e0e1-4c6d-a5ae-91f2b3289d4a_periodEndLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">End balance</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_8e14b52d-be55-4e14-a693-09e7a16cb9ec_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research and Development</link:label>
    <link:label id="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research, Development, and Computer Software, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:to="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_f6374ac6-f0fd-440b-b3bd-4e9f514fde89_terseLabel_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_label_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityTaxIdentificationNumber" xlink:to="lab_dei_EntityTaxIdentificationNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_HardwareAndSoftwareMember_d79d52ad-202e-4072-a532-54644f395350_terseLabel_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Computer Hardware And Software [Member]</link:label>
    <link:label id="lab_cgnx_HardwareAndSoftwareMember_label_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hardware And Software [Member]</link:label>
    <link:label id="lab_cgnx_HardwareAndSoftwareMember_documentation_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Hardware and software.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_HardwareAndSoftwareMember" xlink:href="cgnx-20241231.xsd#cgnx_HardwareAndSoftwareMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_HardwareAndSoftwareMember" xlink:to="lab_cgnx_HardwareAndSoftwareMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_49816fc7-f4c3-402b-b355-0df489d0f25e_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible Asset, Finite-Lived [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Asset, Finite-Lived [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_b8d3605b-09bf-4608-a00a-eed91734a956_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additions as a result of tax positions taken in prior periods</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_a2180497-4bd7-46cf-bf07-dbe5df74dc58_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Derivative liability gross amount offset</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_label_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Liability, Subject to Master Netting Arrangement, Collateral, Right to Reclaim Cash Offset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:to="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_96455b65-9760-40c1-a32e-02da0e38ebfb_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Foreign Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_OtherGeographicAreaMember_cf3b6403-83f9-4957-914c-9a814d31df18_terseLabel_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other [Member]</link:label>
    <link:label id="lab_cgnx_OtherGeographicAreaMember_label_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Geographic Area [Member]</link:label>
    <link:label id="lab_cgnx_OtherGeographicAreaMember_documentation_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Other Geographic Area [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherGeographicAreaMember" xlink:href="cgnx-20241231.xsd#cgnx_OtherGeographicAreaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherGeographicAreaMember" xlink:to="lab_cgnx_OtherGeographicAreaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_USTreasurySecuritiesMember_113f4f46-6f13-4140-940e-4fe57d2d93a4_terseLabel_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Treasury Bills [Member]</link:label>
    <link:label id="lab_us-gaap_USTreasurySecuritiesMember_label_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">US Treasury Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_USTreasurySecuritiesMember" xlink:to="lab_us-gaap_USTreasurySecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PlanNameAxis_e05e4577-ea7e-4950-8794-631e1f4750de_terseLabel_en-US" xlink:label="lab_us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:label id="lab_us-gaap_PlanNameAxis_label_en-US" xlink:label="lab_us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PlanNameAxis" xlink:to="lab_us-gaap_PlanNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_c5e7345f-fa9e-4ba9-9ec9-0a073a89c3fb_terseLabel_en-US" xlink:label="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SAC Sirius Advanced Cybernetics GmbH</link:label>
    <link:label id="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_label_en-US" xlink:label="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SAC Sirius Advanced Cybernetics GmbH [Member]</link:label>
    <link:label id="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_documentation_en-US" xlink:label="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">SAC Sirius Advanced Cybernetics GmbH</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:href="cgnx-20241231.xsd#cgnx_SACSiriusAdvancedCyberneticsGmbHMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:to="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_8de8e638-5b98-433c-a996-b1d883dba216_terseLabel_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effective maturity of investments</link:label>
    <link:label id="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_label_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Debt Maturities, Effective Term, Maximum</link:label>
    <link:label id="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_documentation_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Available-for-sale Securities, Debt Maturities, Effective Term, Maximum</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:href="cgnx-20241231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:to="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_b81d2e72-0bad-4a7f-81d9-8437ba493353_terseLabel_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_label_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementEquityComponentsAxis" xlink:to="lab_us-gaap_StatementEquityComponentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_65c08acb-57a8-4ba1-89a2-c4de92dd6bcb_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Total</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_225c5d91-cd3f-4938-b24a-f0b17b2aab37_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Total</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy_dc044cf5-abeb-4095-ab0f-dc0ae88fc5b7_terseLabel_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts Receivable</link:label>
    <link:label id="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy_label_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:to="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssetNotionalAmount_ef015ed1-68ad-4f3d-95b0-b9636b7b4ef5_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetNotionalAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Asset, Notional Amount</link:label>
    <link:label id="lab_us-gaap_DerivativeAssetNotionalAmount_label_en-US" xlink:label="lab_us-gaap_DerivativeAssetNotionalAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Asset, Notional Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssetNotionalAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssetNotionalAmount" xlink:to="lab_us-gaap_DerivativeAssetNotionalAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_d6fa6260-1940-4407-a500-9432689ca79e_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Derivative Asset gross amount offset</link:label>
    <link:label id="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_label_en-US" xlink:label="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Asset, Subject to Master Netting Arrangement, Collateral, Obligation to Return Cash, Offset Against Derivative Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:to="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionAcquireeDomain_971be566-3a8d-41de-bbd6-39c827b7afe1_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionAcquireeDomain_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="lab_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_b2fdce7b-9408-4da2-952e-60711ccb9e47_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Outstanding, aggregate intrinsic value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentTypeCategorizationMember_234a7156-5916-438f-bc44-d0f1cafc6159_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentTypeCategorizationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment Type Categorization [Domain]</link:label>
    <link:label id="lab_us-gaap_InvestmentTypeCategorizationMember_label_en-US" xlink:label="lab_us-gaap_InvestmentTypeCategorizationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember" xlink:to="lab_us-gaap_InvestmentTypeCategorizationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareDilutedAbstract_411feac2-90fb-463d-94d9-facd122ef65a_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDilutedAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Diluted earnings per weighted-average common and common-equivalent share (1):</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareDilutedAbstract_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDilutedAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Diluted [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDilutedAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDilutedAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDilutedAbstract" xlink:to="lab_us-gaap_EarningsPerShareDilutedAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings_2286abc2-dade-43ff-b0f9-66b6e476bfe9_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Repatriation of Foreign Earnings, Amount</link:label>
    <link:label id="lab_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings_label_en-US" xlink:label="lab_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Repatriation of Foreign Earnings, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings" xlink:to="lab_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DevelopedTechnologyRightsMember_6b74d28e-5188-4add-8a9b-cf50087728fa_terseLabel_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Completed Technologies [Member]</link:label>
    <link:label id="lab_us-gaap_DevelopedTechnologyRightsMember_label_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Developed Technology Rights [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DevelopedTechnologyRightsMember" xlink:to="lab_us-gaap_DevelopedTechnologyRightsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_StatementGeographicalAxis_c78be004-08f6-4f83-ac43-9ae8ec7e3341_terseLabel_en-US" xlink:label="lab_srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:label id="lab_srt_StatementGeographicalAxis_label_en-US" xlink:label="lab_srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_StatementGeographicalAxis" xlink:to="lab_srt_StatementGeographicalAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet_f8f9be91-9d5c-411c-93c5-343bdd81ec48_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Net, Noncurrent</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:to="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_eaf8ab1b-3564-4c91-a981-9e7428a006d2_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2029</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_e51228ff-fdfc-4518-bbf1-c80c191e35ff_terseLabel_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Noncurrent Liability</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_label_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Noncurrent Liability</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_documentation_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Noncurrent Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:href="cgnx-20241231.xsd#cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:to="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_1650f30d-29a1-4069-815d-8d490d40f607_negatedLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Repurchase of common stock</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_da94724d-2f60-424e-a10e-3b61a0aa9b2c_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Repurchased During Period, Value</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_label_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Repurchased During Period, Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodValue" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodValue" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember_terseLabel_en-US" xlink:label="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table</link:label>
    <link:label id="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember_label_en-US" xlink:label="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:to="lab_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_e9d851f4-7da0-4ef6-8765-c55a10347ba0_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Economic hedge forward contracts</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Contract, Asset, Fair Value Disclosure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:to="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_22cb0286-1789-41ef-bb9b-b08dce10c0f3_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Other Noncurrent Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_2ce49ccc-4471-49c9-b72e-df0ec4f5f367_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-sale [Line Items]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedIncomeTaxesNoncurrent_fe19c807-fd3b-47ee-81fe-159cf251a33a_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current accrued income taxes</link:label>
    <link:label id="lab_us-gaap_AccruedIncomeTaxesNoncurrent_label_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Income Taxes, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedIncomeTaxesNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:to="lab_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseExpense_c7b33cfb-cf78-4fbf-9840-cbb5added6cd_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease expense</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseExpense_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseExpense" xlink:to="lab_us-gaap_OperatingLeaseExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedBonusesCurrent_f7e9a0fc-3d0f-44ea-9257-2ee4323b3376_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedBonusesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Incentive compensation</link:label>
    <link:label id="lab_us-gaap_AccruedBonusesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedBonusesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Bonuses, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedBonusesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedBonusesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedBonusesCurrent" xlink:to="lab_us-gaap_AccruedBonusesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_13aef3c1-573d-45a5-95a5-d1755da4211d_totalLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Fair Value</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Unrealized Loss Position</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_e9414237-891f-4173-843b-0d1fd9144624_periodStartLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents at beginning of year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_5abc8640-bb35-4102-a8fd-6678ddff5710_periodEndLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents at end of year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_BusinessCombinationEnterpriseValue_4b6c792a-7e99-4b8a-9860-ae63810aa742_terseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationEnterpriseValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Enterprise value</link:label>
    <link:label id="lab_cgnx_BusinessCombinationEnterpriseValue_label_en-US" xlink:label="lab_cgnx_BusinessCombinationEnterpriseValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Enterprise Value</link:label>
    <link:label id="lab_cgnx_BusinessCombinationEnterpriseValue_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationEnterpriseValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Business Combination, Enterprise Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationEnterpriseValue" xlink:href="cgnx-20241231.xsd#cgnx_BusinessCombinationEnterpriseValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationEnterpriseValue" xlink:to="lab_cgnx_BusinessCombinationEnterpriseValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_babd5c65-acaa-4bd4-b0d5-933f858da72c_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax expense related to rate revaluation on state tax assets</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Settlement, State and Local, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_2bd72409-fa63-4cfb-a138-505a9964ec6c_negatedLabel_en-US" xlink:label="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Amortization of discounts or premiums on investments</link:label>
    <link:label id="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_label_en-US" xlink:label="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accretion (Amortization) of Discounts and Premiums, Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:to="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_6073febc-58f2-4896-96e1-5394b7cb0542_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Foreign Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_6efa4b8c-6490-4125-a2a4-4e5c1e5d4eea_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current assets:</link:label>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrentAbstract" xlink:to="lab_us-gaap_AssetsCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ConsolidationItemsAxis_583419c5-ed55-43ee-ad38-87f7008e268a_terseLabel_en-US" xlink:label="lab_srt_ConsolidationItemsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Consolidation Items [Axis]</link:label>
    <link:label id="lab_srt_ConsolidationItemsAxis_label_en-US" xlink:label="lab_srt_ConsolidationItemsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidation Items [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ConsolidationItemsAxis" xlink:to="lab_srt_ConsolidationItemsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_e3ef2a20-c12e-4a4c-bd61-1512c5c07465_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_label_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value of Financial Instruments, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Disqualification of Tax Benefits, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery due to Disqualification of Tax Benefits, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductsAndServicesDomain_243d861e-ac48-45ef-a656-7569ef7b50b9_terseLabel_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:label id="lab_srt_ProductsAndServicesDomain_label_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductsAndServicesDomain" xlink:to="lab_srt_ProductsAndServicesDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_6ed1ac0c-1a00-4c69-a469-26f3ce2fa0d9_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillRollForward_6b62c5b3-2631-4e73-8f2c-fb8c938bee3a_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_GoodwillRollForward_label_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillRollForward" xlink:to="lab_us-gaap_GoodwillRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_87e55c6e-0d36-4812-ae80-d0fa9ec86fe9_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract" xlink:to="lab_us-gaap_FairValueDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_bd372caf-7440-4460-a372-b6d140e0f84f_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock, shares outstanding (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesOutstanding" xlink:to="lab_us-gaap_PreferredStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_SecurityExchangeName_45729ffd-71b2-47d4-bf08-f2a8048c34d4_terseLabel_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:label id="lab_dei_SecurityExchangeName_label_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_SecurityExchangeName" xlink:to="lab_dei_SecurityExchangeName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_8040596a-5ba7-4864-b766-420b0f22e8c2_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercised, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_d1720903-c943-450c-becf-354639e2a660_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_f2b2b701-fc0e-4e06-884c-092cebdc3d11_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State</link:label>
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current State and Local Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockOptionPlanExpense_e9cdec62-9622-4899-952f-2ba2f543af9d_terseLabel_en-US" xlink:label="lab_us-gaap_StockOptionPlanExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_StockOptionPlanExpense_label_en-US" xlink:label="lab_us-gaap_StockOptionPlanExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock or Unit Option Plan Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockOptionPlanExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockOptionPlanExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockOptionPlanExpense" xlink:to="lab_us-gaap_StockOptionPlanExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LaborAndRelatedExpense_c8f7be20-6080-4d7f-8c6e-e59a9373fcd6_terseLabel_en-US" xlink:label="lab_us-gaap_LaborAndRelatedExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Labor and Related Expense</link:label>
    <link:label id="lab_us-gaap_LaborAndRelatedExpense_label_en-US" xlink:label="lab_us-gaap_LaborAndRelatedExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Labor and Related Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LaborAndRelatedExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LaborAndRelatedExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LaborAndRelatedExpense" xlink:to="lab_us-gaap_LaborAndRelatedExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ResearchDevelopmentAndEngineeringExpensesMember_5a2b3cbf-cb8c-41a7-a65c-638bd0bd86c7_terseLabel_en-US" xlink:label="lab_cgnx_ResearchDevelopmentAndEngineeringExpensesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research, Development and Engineering Expenses</link:label>
    <link:label id="lab_cgnx_ResearchDevelopmentAndEngineeringExpensesMember_label_en-US" xlink:label="lab_cgnx_ResearchDevelopmentAndEngineeringExpensesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research, Development and Engineering Expenses [Member]</link:label>
    <link:label id="lab_cgnx_ResearchDevelopmentAndEngineeringExpensesMember_documentation_en-US" xlink:label="lab_cgnx_ResearchDevelopmentAndEngineeringExpensesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Research, Development and Engineering Expenses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ResearchDevelopmentAndEngineeringExpensesMember" xlink:href="cgnx-20241231.xsd#cgnx_ResearchDevelopmentAndEngineeringExpensesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ResearchDevelopmentAndEngineeringExpensesMember" xlink:to="lab_cgnx_ResearchDevelopmentAndEngineeringExpensesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_05b7744b-0d97-4744-8ff5-6ceae238518b_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, State</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, State</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, State</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:to="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_c405eeb2-e695-4f68-b9cd-8cb526362b72_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Economic hedge forward contracts</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Currency Contracts, Liability, Fair Value Disclosure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:to="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_b2d41b7c-06a9-44aa-ba71-33a9b594ae81_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, aggregate intrinsic value</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_label_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Aggregate Intrinsic Value</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_documentation_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share based compensation arrangement by share based payment award options exercisable aggregate intrinsic value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:href="cgnx-20241231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:to="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Forgone Recovery, Explanation of Impracticability</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Forgone Recovery, Explanation of Impracticability [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:to="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_5e5345c2-89fd-4a60-8aeb-7cabc4b43645_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Research, development, and engineering expenses</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_d166c73e-8bf3-4c33-80df-e4b2e9fa067e_totalLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Research, development, and engineering expenses</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Research and Development Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RealizedInvestmentGainsLosses_2a4745ab-dad5-4932-b1e5-4e5cc603a832_terseLabel_en-US" xlink:label="lab_us-gaap_RealizedInvestmentGainsLosses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net realized gains (losses)</link:label>
    <link:label id="lab_us-gaap_RealizedInvestmentGainsLosses_label_en-US" xlink:label="lab_us-gaap_RealizedInvestmentGainsLosses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Realized Investment Gains (Losses)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RealizedInvestmentGainsLosses" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RealizedInvestmentGainsLosses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RealizedInvestmentGainsLosses" xlink:to="lab_us-gaap_RealizedInvestmentGainsLosses" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsegmentsAxis_3b0f4982-83a3-4182-9663-024e28ebab10_terseLabel_en-US" xlink:label="lab_us-gaap_SubsegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsegments [Axis]</link:label>
    <link:label id="lab_us-gaap_SubsegmentsAxis_label_en-US" xlink:label="lab_us-gaap_SubsegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsegments [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsegmentsAxis" xlink:to="lab_us-gaap_SubsegmentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_b3258323-3d1b-4902-a696-6b98e89cf3d0_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_251ae27e-d58d-4ac4-aefe-9cd11d5f3474_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_4a4c9632-0276-4bd5-a15f-dba32c17dc8f_periodStartLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Beginning Balance, shares (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_31e51d65-1085-464e-9c63-70299361f0d8_periodEndLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance, shares (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares, Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued" xlink:to="lab_us-gaap_CommonStockSharesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_5600b047-2d8f-4ffb-abf7-35d3d638cb33_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued income taxes</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Income Taxes Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_a6826221-0203-4379-a539-048581377e00_verboseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Maximum percentage of revenue accountability</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskPercentage1" xlink:to="lab_us-gaap_ConcentrationRiskPercentage1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_5d39f4e8-12d0-4ee9-a358-12defd05edc4_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, Foreign</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, Foreign</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_2d038ea7-a28f-44b3-b814-23dc4c6bc0b9_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xml:lang="en-US">Unrealized Losses</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Unrealized Loss Position, Accumulated Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeLiabilities_acd542b2-6972-4af0-af1e-172f00ed58bf_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net amount of liabilities presented</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilities_b1070598-b3ee-4851-af2c-9c1b6bd67054_totalLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net amount of liabilities presented</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilities_label_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilities" xlink:to="lab_us-gaap_DerivativeLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Adopted</link:label>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag_label_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Policies and Procedures Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:to="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_16922c0d-3ea1-41f6-a744-773c8fb1eaf5_negatedLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Less: accumulated depreciation</link:label>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Cash_f5710168-6f4e-4473-a845-a17969634981_terseLabel_en-US" xlink:label="lab_us-gaap_Cash" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash</link:label>
    <link:label id="lab_us-gaap_Cash_label_en-US" xlink:label="lab_us-gaap_Cash" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Cash"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Cash" xlink:to="lab_us-gaap_Cash" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_1e8d87bb-ac62-476c-9f0a-fca189adb25a_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Valuation Allowance by Deferred Tax Asset [Axis]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Valuation Allowance by Deferred Tax Asset [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceByDeferredTaxAssetAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis" xlink:to="lab_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_EuropeMember_8ac60eb9-2470-4442-9912-e3d27d758348_terseLabel_en-US" xlink:label="lab_srt_EuropeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Europe [Member]</link:label>
    <link:label id="lab_srt_EuropeMember_ccc6b42a-a39d-466c-9803-4604937f246a_verboseLabel_en-US" xlink:label="lab_srt_EuropeMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Europe [Member]</link:label>
    <link:label id="lab_srt_EuropeMember_label_en-US" xlink:label="lab_srt_EuropeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Europe [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EuropeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_EuropeMember" xlink:to="lab_srt_EuropeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_4233281c-076f-4edb-bb05-2a5dad5ea269_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Common stock, shares authorized (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesAuthorized" xlink:to="lab_us-gaap_CommonStockSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_19022e20-c405-4f11-a56c-2a8366a47387_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, and Investments</link:label>
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_label_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:to="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_5d7b1fa5-58cc-4932-a745-c07a9f17e9c4_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Net payments related to business acquisitions (Note 21)</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_2ea55fbc-271f-4d76-b980-bc44802bfe7a_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payments related to business acquisitions</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Businesses, Net of Cash Acquired</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_dd559bcf-9a9a-4067-8076-58911b78f0f4_negatedTerseLabel_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Recognition of revenue deferred in prior period</link:label>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_label_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Current And Prior Period Revenue Recognized</link:label>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_documentation_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract with Customer, Liability, Current And Prior Period Revenue Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:href="cgnx-20241231.xsd#cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:to="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityVoluntaryFilers_ebb1f602-db8a-4b0b-a6c0-037037f6c495_terseLabel_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:label id="lab_dei_EntityVoluntaryFilers_label_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityVoluntaryFilers"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityVoluntaryFilers" xlink:to="lab_dei_EntityVoluntaryFilers" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_HedgingDesignationDomain_3803a2c9-1188-4e1f-ad73-e4c936612563_terseLabel_en-US" xlink:label="lab_us-gaap_HedgingDesignationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Hedging Designation [Domain]</link:label>
    <link:label id="lab_us-gaap_HedgingDesignationDomain_label_en-US" xlink:label="lab_us-gaap_HedgingDesignationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hedging Designation [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_HedgingDesignationDomain" xlink:to="lab_us-gaap_HedgingDesignationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_8a30cd6b-cc74-4de9-8a04-7754896ea77a_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Deferred income tax expense (benefit), Total</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedSalariesCurrent_1309e959-b1fa-41bf-8779-c42d6c7f289e_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedSalariesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Salaries and payroll taxes</link:label>
    <link:label id="lab_us-gaap_AccruedSalariesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedSalariesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Salaries, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedSalariesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedSalariesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedSalariesCurrent" xlink:to="lab_us-gaap_AccruedSalariesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_9387eb99-33a8-400c-8276-efedac378fe8_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_a734ea66-11fd-4372-9166-289d2a060e56_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Exercise of Option, Tax Benefit</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Exercise of Option, Tax Benefit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_55708a91-7660-44d2-a3fc-e38d6348e4e2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Write-offs, net of recoveries</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_label_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss, Writeoff</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_4df83435-187d-4e5c-8637-40727d1ec8a8_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Other comprehensive income (loss), net of tax</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_c4eca612-4481-4c34-afb8-0ff468ae3511_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Measurements, Recurring</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Recurring [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsRecurringMember" xlink:to="lab_us-gaap_FairValueMeasurementsRecurringMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_7ab5eca8-5054-49a3-9112-eef7e43c4b02_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable, allowance for credit losses of $827 and $583 in 2024 and 2023, respectively</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, after Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableNetCurrent" xlink:to="lab_us-gaap_AccountsReceivableNetCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_52f62b6b-af0e-48ea-bdc6-00c6e2f2528f_terseLabel_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_label_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_HUF_7dc48356-8255-4813-b6a5-a70936abee2b_terseLabel_en-US" xlink:label="lab_currency_HUF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Hungarian Forint [Member]</link:label>
    <link:label id="lab_currency_HUF_label_en-US" xlink:label="lab_currency_HUF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hungary, Forint</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_HUF" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_HUF"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_HUF" xlink:to="lab_currency_HUF" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_1516f81a-e30d-4bae-9f20-1e11082622c4_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Greater than 12 Months</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_4412ccf9-44c7-45da-832c-7eb0f3ea833d_terseLabel_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Treasury notes</link:label>
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Treasury Bills Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Treasury bills fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure" xlink:href="cgnx-20241231.xsd#cgnx_TreasuryBillsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TreasuryBillsFairValueDisclosure" xlink:to="lab_cgnx_TreasuryBillsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_ed47004b-b094-4185-a2df-dd6c396c7ecd_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PnsnAdjsPrrSvcCstMember_terseLabel_en-US" xlink:label="lab_ecd_PnsnAdjsPrrSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pension Adjustments Prior Service Cost</link:label>
    <link:label id="lab_ecd_PnsnAdjsPrrSvcCstMember_label_en-US" xlink:label="lab_ecd_PnsnAdjsPrrSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension Adjustments Prior Service Cost [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsPrrSvcCstMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:to="lab_ecd_PnsnAdjsPrrSvcCstMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_18d065f6-e7b5-47a5-9895-510a1bf99342_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company match percent</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Defined Contribution Plan, Employer Matching Contribution, Percent of Match</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:to="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_14df3712-17a4-4f95-b26a-a4d91642ecf2_terseLabel_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_label_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Contract Liability Foreign Exchange Rate Changes</link:label>
    <link:label id="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_documentation_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Contract Liability Foreign Exchange Rate Changes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:href="cgnx-20241231.xsd#cgnx_ContractLiabilityForeignExchangeRateChanges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:to="lab_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PnsnBnftsAdjFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PnsnBnftsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Pension Benefits Adjustments, Footnote</link:label>
    <link:label id="lab_ecd_PnsnBnftsAdjFnTextBlock_label_en-US" xlink:label="lab_ecd_PnsnBnftsAdjFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Pension Benefits Adjustments, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnBnftsAdjFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:to="lab_ecd_PnsnBnftsAdjFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock_terseLabel_en-US" xlink:label="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Vs Peer Group</link:label>
    <link:label id="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock_label_en-US" xlink:label="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Total Shareholder Return Vs Peer Group [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnVsPeerGroupTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:to="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentAnnualReport_c25e7c1a-25ab-4d13-92f3-c6e03332e4ac_terseLabel_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Annual Report</link:label>
    <link:label id="lab_dei_DocumentAnnualReport_label_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Annual Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentAnnualReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentAnnualReport" xlink:to="lab_dei_DocumentAnnualReport" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_a02ef89e-7d79-4bb5-93e6-e1773b248cdf_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vested (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_bc3307ce-0a08-4517-82fd-db986e6c878a_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Vested</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_4afa7a16-aef8-4e9b-94ef-b16727d594fc_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Risk-free rate</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AmortizationOfIntangibleAssets_1933f344-6e03-4e9a-b198-648ddaa330a8_terseLabel_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amortization of intangible assets</link:label>
    <link:label id="lab_us-gaap_AmortizationOfIntangibleAssets_label_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amortization of Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AmortizationOfIntangibleAssets" xlink:to="lab_us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_8edcbb05-9323-4459-b5c6-75fe20f697b2_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_label_en-US" xlink:label="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:to="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_78566206-6793-4965-b81d-aabff5fe50c9_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_label_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingPoliciesAbstract" xlink:to="lab_us-gaap_AccountingPoliciesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_90987cd5-65cb-4db8-acab-51d1d8d057ad_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Contingencies</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:to="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_0daf2faf-a6d5-4bba-882a-6d5dd8f2e353_verboseLabel_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_label_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseholdImprovementsMember" xlink:to="lab_us-gaap_LeaseholdImprovementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CapitalizedContractCostGross_0f641c3c-4902-42e4-a372-5c1b58fb1e74_terseLabel_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Capitalized Contract Cost, Gross</link:label>
    <link:label id="lab_us-gaap_CapitalizedContractCostGross_label_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Capitalized Contract Cost, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalizedContractCostGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CapitalizedContractCostGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CapitalizedContractCostGross" xlink:to="lab_us-gaap_CapitalizedContractCostGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationDisclosureTextBlock_30890e23-cc7b-4dda-acfa-3d0680de23b3_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisitions</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="lab_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_c912c0d6-456a-459b-abf7-8ac382fca9ac_terseLabel_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_label_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CurrentFiscalYearEndDate" xlink:to="lab_dei_CurrentFiscalYearEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_6dc7660e-62cb-4725-b519-42d26e950646_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts receivable, allowance for credit losses</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_ab457ab7-3a3f-45fa-a9fb-789dc2dbe146_periodStartLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Balance&#160;at Beginning of Period</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_690b3656-616e-4746-98ec-d3640b87f977_periodEndLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Balance&#160;at End of Period</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesBalance" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoName_terseLabel_en-US" xlink:label="lab_ecd_PeoName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">PEO Name</link:label>
    <link:label id="lab_ecd_PeoName_label_en-US" xlink:label="lab_ecd_PeoName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">PEO Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoName" xlink:to="lab_ecd_PeoName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GuaranteesAbstract_5aff480b-cfe7-455f-9633-2ef6f67d7639_terseLabel_en-US" xlink:label="lab_us-gaap_GuaranteesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Guarantees [Abstract]</link:label>
    <link:label id="lab_us-gaap_GuaranteesAbstract_label_en-US" xlink:label="lab_us-gaap_GuaranteesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Guarantees [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GuaranteesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GuaranteesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GuaranteesAbstract" xlink:to="lab_us-gaap_GuaranteesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_18277142-ab12-42a0-804a-c0ddb31bae29_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Award [Domain]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_66ca4f14-88ec-4b4e-8e88-f5c5e18548f1_verboseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Cash acquired</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_2e113e04-a2d1-4b75-8d1e-f8b4d7378095_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_36cc3c8d-6e86-4c04-babe-0b7f3b02ba2a_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-Based Compensation Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember_10e02ffb-6336-4ace-b065-878205ab421a_terseLabel_en-US" xlink:label="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Distribution Networks and Customer Relationships</link:label>
    <link:label id="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember_label_en-US" xlink:label="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Distribution Networks and Customer Relationships [Member]</link:label>
    <link:label id="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember_documentation_en-US" xlink:label="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Distribution Networks and Customer Relationships</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:href="cgnx-20241231.xsd#cgnx_DistributionNetworksAndCustomerRelationshipsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:to="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Company Selected Measure</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Company Selected Measure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxAssetsNet_419ac5a8-4828-4b1c-a4ff-88a2e1097c13_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxAssetsNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxAssetsNet_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxAssetsNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Income Tax Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxAssetsNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxAssetsNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxAssetsNet" xlink:to="lab_us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoMember_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-PEO NEO</link:label>
    <link:label id="lab_ecd_NonPeoNeoMember_label_en-US" xlink:label="lab_ecd_NonPeoNeoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-PEO NEO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoMember" xlink:to="lab_ecd_NonPeoNeoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_7e8890fc-8230-4cf0-9878-271ca10033e3_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Useful Life</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Useful Life</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_958e6206-7779-461b-8df7-abd655140feb_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalMember" xlink:to="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillDisclosureTextBlock_a589493b-7042-4777-89d7-9469c6e9b8b9_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_GoodwillDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillDisclosureTextBlock" xlink:to="lab_us-gaap_GoodwillDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_15e62fba-c2d6-4d6d-9512-f98ed22e7d3d_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Unbilled revenue</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Contract with Customer, Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:to="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_cbb3a219-5508-4edc-9b3a-afb3f57e2e84_terseLabel_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Employee Savings Plan</link:label>
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retirement Benefits [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:to="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfStockLineItems_c54a345f-cf47-4b88-9d3d-d5d4f9410f44_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Class of Stock [Line Items]</link:label>
    <link:label id="lab_us-gaap_ClassOfStockLineItems_label_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Class of Stock [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfStockLineItems" xlink:to="lab_us-gaap_ClassOfStockLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_51d72fd5-4145-4709-a084-3053f1c7e8ad_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Current investments, amortized cost</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Amortized Cost, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_0178f06b-ea7c-4c4f-a621-12fe537cd415_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Deferred income tax liabilities</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_SGD_523354b8-62a5-4bef-8e17-dfa40182084e_terseLabel_en-US" xlink:label="lab_currency_SGD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Singapore Dollar [Member]</link:label>
    <link:label id="lab_currency_SGD_label_en-US" xlink:label="lab_currency_SGD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Singapore, Dollars</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_SGD" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_SGD"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_SGD" xlink:to="lab_currency_SGD" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_d958465a-1fd1-49d1-980c-e69e420f1918_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements</link:label>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_9b7ac535-be2b-4bf2-b934-795908946795_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unbilled revenue</link:label>
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_label_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unbilled Receivables, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnbilledReceivablesCurrent" xlink:to="lab_us-gaap_UnbilledReceivablesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StandardProductWarrantyPolicy_f0de873f-603b-4dee-a3cc-b93ef3a946a6_terseLabel_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Warranty Obligations</link:label>
    <link:label id="lab_us-gaap_StandardProductWarrantyPolicy_label_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard Product Warranty, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardProductWarrantyPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardProductWarrantyPolicy" xlink:to="lab_us-gaap_StandardProductWarrantyPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_b8b57a23-cf30-4490-b761-74da1efe57c2_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_0686b8f6-9ed2-463c-add1-d0a0fd16adb2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Amortization</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_d8faeb2b-e948-4395-b39e-975552615044_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Calculation of Weighted Average Shares</link:label>
    <link:label id="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Weighted Average Number of Shares [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MeasureName_terseLabel_en-US" xlink:label="lab_ecd_MeasureName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_MeasureName_label_en-US" xlink:label="lab_ecd_MeasureName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measure Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MeasureName" xlink:to="lab_ecd_MeasureName" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_1569cb47-57d5-42c4-aa34-aefdf99d5a0c_terseLabel_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_label_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityInteractiveDataCurrent" xlink:to="lab_dei_EntityInteractiveDataCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm_c7bfef87-7ecf-449a-87b8-5e3720443d61_terseLabel_en-US" xlink:label="lab_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecorded Uncontditional Purchase Obligation, Renewal Term</link:label>
    <link:label id="lab_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm_label_en-US" xlink:label="lab_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecorded Uncontditional Purchase Obligation, Renewal Term</link:label>
    <link:label id="lab_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm_documentation_en-US" xlink:label="lab_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Unrecorded Uncontditional Purchase Obligation, Renewal Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm" xlink:href="cgnx-20241231.xsd#cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm" xlink:to="lab_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedVacationCurrent_7994810e-7c28-428d-83c9-00f3f345c724_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedVacationCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Vacation</link:label>
    <link:label id="lab_us-gaap_AccruedVacationCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedVacationCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Vacation, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedVacationCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedVacationCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedVacationCurrent" xlink:to="lab_us-gaap_AccruedVacationCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_12c05104-7495-4cdc-88f2-fe9dc9d67c65_verboseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_15babe85-3797-45f1-a179-957311fb3580_terseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer Contracts And Relationships [Member]</link:label>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_label_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Contracts And Relationships [Member]</link:label>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_documentation_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer Contracts And Relationships [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember" xlink:href="cgnx-20241231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CustomerContractsAndRelationshipsMember" xlink:to="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_b76b278c-deb7-456f-921a-fe8d1629c5fb_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Assets and Liabilities Measured at Fair Value on a Recurring Basis</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_cb1d639d-43de-45d7-897f-654be14bf0ad_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable" xlink:to="lab_us-gaap_DisaggregationOfRevenueTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_USTreasuryBillSecuritiesMember_851e1f8e-521f-4cbe-a521-6b45e1f97365_verboseLabel_en-US" xlink:label="lab_us-gaap_USTreasuryBillSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Treasury Bills [Member]</link:label>
    <link:label id="lab_us-gaap_USTreasuryBillSecuritiesMember_label_en-US" xlink:label="lab_us-gaap_USTreasuryBillSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">US Treasury Bill Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasuryBillSecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_USTreasuryBillSecuritiesMember" xlink:to="lab_us-gaap_USTreasuryBillSecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_0924a941-c845-478a-90a3-2e5e32f6cbfd_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Available-for-sale investments:</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Available-for-Sale Securities Adjustment, Net of Tax, Portion Attributable to Parent [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:to="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue_68aabc8e-95ba-4173-8b8d-a2c7df3aa4ae_terseLabel_en-US" xlink:label="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Redeemed or Called During Period, Value</link:label>
    <link:label id="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue_label_en-US" xlink:label="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Redeemed or Called During Period, Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:to="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_98c17a8d-15d9-49a0-98f8-00f6db67746b_terseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_label_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_47ab90f3-b802-439f-9895-d7eba75e5d9c_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Reductions relating to settlements with taxing authorities</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGross_3fe965d7-98cf-4b4e-9110-0f500fccd4f2_terseLabel_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Gross</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGross_label_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Gross</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGross_documentation_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGross" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGross" xlink:href="cgnx-20241231.xsd#cgnx_UnrecognizedTaxBenefitsGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_UnrecognizedTaxBenefitsGross" xlink:to="lab_cgnx_UnrecognizedTaxBenefitsGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_c67722c9-6af1-45ea-9449-300d64afbf47_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss)</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:to="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_4606ba6e-cfb8-4954-9281-b6e843d14eb9_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_4ef76a35-6742-42d7-a99f-4c7fa4e65fa2_terseLabel_en-US" xlink:label="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule II - Valuation and Qualifying Accounts</link:label>
    <link:label id="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_label_en-US" xlink:label="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:to="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorFirmId_56177642-6c94-4e47-8141-db70819dad7f_terseLabel_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Auditor Firm ID</link:label>
    <link:label id="lab_dei_AuditorFirmId_label_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Auditor Firm ID</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorFirmId"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorFirmId" xlink:to="lab_dei_AuditorFirmId" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_1b9bd169-90b2-4fbb-8f2f-859c442dab74_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred income tax assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_a655ef01-1af3-45ab-87e0-b93edb986572_totalLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Income tax expense</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_36112deb-fdf6-4061-b1e5-267222114c5b_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Operating income</link:label>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_d5529272-788d-495a-be0b-92abf0e4a442_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating income</link:label>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_label_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingIncomeLoss" xlink:to="lab_us-gaap_OperatingIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_cef21c99-f851-4425-a19b-033d60cfe2af_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Capitalization of R&amp;D expenses</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Capitalization Of Research And Development Expenses</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Capitalization Of Research And Development Expenses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:to="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_13fe9c40-a09d-4314-9da2-ebb4f5726e34_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Losses on currency swaps, net of gains on long-term intercompany loans</link:label>
    <link:label id="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_label_en-US" xlink:label="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment for Long-Term Intra-Entity Transaction, after Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:to="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NumberOfReportableSegments_8b5e2e19-d3ba-4b85-8aa8-066b21524395_terseLabel_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Number of reportable segments</link:label>
    <link:label id="lab_us-gaap_NumberOfReportableSegments_label_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Number of Reportable Segments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NumberOfReportableSegments" xlink:to="lab_us-gaap_NumberOfReportableSegments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_b055ae46-ae42-4f08-b029-ffd4574e6ee3_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total liabilities and shareholders' equity</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities and Equity</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_b7591b16-1221-4972-9d02-0bd5a8236abc_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Subsequent Events</link:label>
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Subsequent Events [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsTextBlock" xlink:to="lab_us-gaap_SubsequentEventsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Rule10b51ArrTrmntdFlag_terseLabel_en-US" xlink:label="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Terminated</link:label>
    <link:label id="lab_ecd_Rule10b51ArrTrmntdFlag_label_en-US" xlink:label="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrTrmntdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:to="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_062ff93c-07db-4109-9b47-e764021574e7_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_label_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_87465cb8-7d4b-4440-9d8c-65f73220d92f_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign net operating losses</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards, Foreign</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_HedgingDesignationAxis_64bc995a-ced9-4018-ac86-9d5be378103d_terseLabel_en-US" xlink:label="lab_us-gaap_HedgingDesignationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Hedging Designation [Axis]</link:label>
    <link:label id="lab_us-gaap_HedgingDesignationAxis_label_en-US" xlink:label="lab_us-gaap_HedgingDesignationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Hedging Designation [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_HedgingDesignationAxis" xlink:to="lab_us-gaap_HedgingDesignationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_82c3efaa-3f66-4df6-a93d-badbcd8c231c_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instruments and Hedging Activities Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:to="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsOfDividends_a1a3c6db-7967-4a9d-aa87-1a0e218bbf58_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividends" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Payments of dividends</link:label>
    <link:label id="lab_us-gaap_PaymentsOfDividends_label_en-US" xlink:label="lab_us-gaap_PaymentsOfDividends" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments of Dividends</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividends" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDividends"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfDividends" xlink:to="lab_us-gaap_PaymentsOfDividends" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_7e892e14-a1c8-4839-a930-13e0aa0145c8_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_a1a7c3a2-088a-4a30-9ff3-26ea7d049733_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Performance Restricted Stock Units</link:label>
    <link:label id="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_UndrlygSecurityMktPriceChngPct_terseLabel_en-US" xlink:label="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Underlying Security Market Price Change</link:label>
    <link:label id="lab_ecd_UndrlygSecurityMktPriceChngPct_label_en-US" xlink:label="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Underlying Security Market Price Change, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_UndrlygSecurityMktPriceChngPct"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:to="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardNameDomain_0ba94fe2-644d-45d4-880f-5ef0ef07d3a4_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardNameDomain_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain" xlink:to="lab_us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_IndividualAxis_terseLabel_en-US" xlink:label="lab_ecd_IndividualAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Individual:</link:label>
    <link:label id="lab_ecd_IndividualAxis_label_en-US" xlink:label="lab_ecd_IndividualAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Individual [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_IndividualAxis" xlink:to="lab_ecd_IndividualAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_e8b8b5d6-93d8-4098-942e-0ff5cfc1dc21_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disposals in period</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Disposals</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_b1bdb99e-2bfe-43de-88fe-5589b7dc03d4_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Loss [Member]</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">AOCI Attributable to Parent [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_d0a5b012-00f8-45d5-8674-03afcc01e518_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryNet_f8534f22-d286-487b-b77a-2afbf60d867d_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryNet_21f7186c-0652-40b7-808c-bc7334dc4c7a_totalLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryNet_label_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNet" xlink:to="lab_us-gaap_InventoryNet" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductOrServiceAxis_e5f07a76-85a7-421c-8f93-60d3e2532d35_terseLabel_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:label id="lab_srt_ProductOrServiceAxis_label_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductOrServiceAxis" xlink:to="lab_srt_ProductOrServiceAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_0b17c832-e904-4030-8ab1-391ab3cd6368_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementLineItems_9d139221-7f30-4297-b74a-084439a73730_terseLabel_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:label id="lab_us-gaap_StatementLineItems_label_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementLineItems" xlink:to="lab_us-gaap_StatementLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BuildingImprovementsMember_7610b76c-773e-401b-8164-fffe3cabd833_terseLabel_en-US" xlink:label="lab_us-gaap_BuildingImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Building Improvements [Member]</link:label>
    <link:label id="lab_us-gaap_BuildingImprovementsMember_label_en-US" xlink:label="lab_us-gaap_BuildingImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Building Improvements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BuildingImprovementsMember" xlink:to="lab_us-gaap_BuildingImprovementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_2e145e4e-4c3d-4511-8088-9349e046b190_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Total Shareholder Return</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Compensation Actually Paid vs. Total Shareholder Return [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_5aeebc5f-9901-4a38-b6f1-9b1e031bcb9a_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Dividends Payable, Date Declared</link:label>
    <link:label id="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_label_en-US" xlink:label="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends Payable, Date Declared</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:to="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationConsiderationTransferred1_79559f3f-b9c2-48e2-b144-26f01f1763b9_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Purchase price</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationConsiderationTransferred1_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Consideration Transferred</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferred1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="lab_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativesPolicyTextBlock_99b25c81-7321-4e6f-8275-6c0e85f796c1_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instruments</link:label>
    <link:label id="lab_us-gaap_DerivativesPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_DerivativesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivatives, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativesPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativesPolicyTextBlock" xlink:to="lab_us-gaap_DerivativesPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MinimumMember_081ea5a3-3cdd-4aa3-bec5-491ea09447a3_terseLabel_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Minimum [Member]</link:label>
    <link:label id="lab_srt_MinimumMember_label_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MinimumMember" xlink:to="lab_srt_MinimumMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrAdoptionDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrAdoptionDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adoption Date</link:label>
    <link:label id="lab_ecd_TrdArrAdoptionDate_label_en-US" xlink:label="lab_ecd_TrdArrAdoptionDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Adoption Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrAdoptionDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrAdoptionDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrAdoptionDate" xlink:to="lab_ecd_TrdArrAdoptionDate" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_ba289617-1f40-4836-b378-78669d614ffa_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Estimated Forfeiture Rate for Unvested Options for CEO</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_label_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Estimated Forfeiture Rate for Unvested Options for CEO</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_documentation_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Estimated Forfeiture Rate for Unvested Options for CEO</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:href="cgnx-20241231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:to="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_02f2ba72-dd74-47ad-b3cf-8c5fdfec5cd9_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax benefit of foreign currency translation adjustment</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_4ce16ef7-818b-4a8d-9c1f-62d793679518_terseLabel_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increases to the allowance for credit losses</link:label>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_label_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounts Receivable, Credit Loss Expense (Reversal)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProvisionForDoubtfulAccounts" xlink:to="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementBusinessSegmentsAxis_41435d75-edb7-4465-81a5-b1c115d864cf_terseLabel_en-US" xlink:label="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Segments [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementBusinessSegmentsAxis_label_en-US" xlink:label="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Segments [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis" xlink:to="lab_us-gaap_StatementBusinessSegmentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year</link:label>
    <link:label id="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember_label_en-US" xlink:label="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:to="lab_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_1df82943-0708-4f64-94bd-2da2ef46ba6e_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax expense at U.S. federal statutory corporate tax rate</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeInstrumentRiskAxis_4c4e4d31-a4b9-4315-996e-7ffce008a6f1_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentRiskAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Instrument [Axis]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentRiskAxis_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentRiskAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Instrument [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentRiskAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentRiskAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentRiskAxis" xlink:to="lab_us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryLineItems_72db1373-7453-470d-88b7-75842e00db0f_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Inventory [Line Items]</link:label>
    <link:label id="lab_us-gaap_InventoryLineItems_label_en-US" xlink:label="lab_us-gaap_InventoryLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryLineItems" xlink:to="lab_us-gaap_InventoryLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardExrcPrice_terseLabel_en-US" xlink:label="lab_ecd_AwardExrcPrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercise Price</link:label>
    <link:label id="lab_ecd_AwardExrcPrice_label_en-US" xlink:label="lab_ecd_AwardExrcPrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardExrcPrice" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardExrcPrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardExrcPrice" xlink:to="lab_ecd_AwardExrcPrice" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_StandardProductandServicesMember_0e8b3471-6a00-4f83-a487-daf2707e1bee_terseLabel_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Standard products and services</link:label>
    <link:label id="lab_cgnx_StandardProductandServicesMember_label_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard Product and Services [Member]</link:label>
    <link:label id="lab_cgnx_StandardProductandServicesMember_documentation_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Standard Product and Services [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductandServicesMember" xlink:href="cgnx-20241231.xsd#cgnx_StandardProductandServicesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StandardProductandServicesMember" xlink:to="lab_cgnx_StandardProductandServicesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_271561bd-4b03-4f55-a11b-0c105d57b674_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Constituents of Deferred Tax Assets</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrDuration_terseLabel_en-US" xlink:label="lab_ecd_TrdArrDuration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Arrangement Duration</link:label>
    <link:label id="lab_ecd_TrdArrDuration_label_en-US" xlink:label="lab_ecd_TrdArrDuration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trading Arrangement Duration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrDuration" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrDuration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrDuration" xlink:to="lab_ecd_TrdArrDuration" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_61d8ee24-14f2-488e-bc8a-272fe3bd25c5_terseLabel_en-US" xlink:label="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, liability, discounted present value</link:label>
    <link:label id="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_label_en-US" xlink:label="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Discounted Present Value</link:label>
    <link:label id="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_documentation_en-US" xlink:label="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Operating Lease, Liability, Discounted Present Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:href="cgnx-20241231.xsd#cgnx_OperatingLeaseLiabilityDiscountedPresentValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:to="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_8011ac92-6c21-4821-a020-2548b41d55a7_terseLabel_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation</link:label>
    <link:label id="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_label_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncurrent Deferred Tax Assets Deprecation</link:label>
    <link:label id="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_documentation_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Noncurrent deferred tax assets deprecation.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:href="cgnx-20241231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:to="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_e392326e-89bc-4ad6-92c7-4fc50d635a09_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shareholders&#8217; equity:</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity, Attributable to Parent [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityAbstract" xlink:to="lab_us-gaap_StockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_e2b27572-4d3e-4be0-bca5-4f150c58359a_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Less than 12 months</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DomesticCountryMember_a51e4f38-f012-44e7-8099-6cf566b4ecc6_terseLabel_en-US" xlink:label="lab_us-gaap_DomesticCountryMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Domestic Tax Jurisdiction [Member]</link:label>
    <link:label id="lab_us-gaap_DomesticCountryMember_label_en-US" xlink:label="lab_us-gaap_DomesticCountryMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Domestic Tax Jurisdiction [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DomesticCountryMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DomesticCountryMember" xlink:to="lab_us-gaap_DomesticCountryMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermInvestments_e9661399-c3ed-4a0d-9861-311afad16b8b_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-current investments, amortized cost of $345,033 and $250,790 in 2024 and 2023, respectively, allowance for credit losses of $0 in 2024 and 2023</link:label>
    <link:label id="lab_us-gaap_LongTermInvestments_544045ce-dfe0-484d-9559-c5362252adcf_totalLabel_en-US" xlink:label="lab_us-gaap_LongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Non-current investments</link:label>
    <link:label id="lab_us-gaap_LongTermInvestments_label_en-US" xlink:label="lab_us-gaap_LongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Long-Term Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermInvestments" xlink:to="lab_us-gaap_LongTermInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_670a2fa8-cb9b-4226-b57c-3ebeb8b61711_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Derivative Asset, Statement of Financial Position [Extensible Enumeration]</link:label>
    <link:label id="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_label_en-US" xlink:label="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Derivative Asset, Statement of Financial Position [Extensible Enumeration]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:to="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_7497d0f0-cc17-480b-a496-561ac91521d5_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">3-4 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After Three Years Before Four Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Available-for-sale securities, debt maturities after third year but before fourth year, fair value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MtrlTermsOfTrdArrTextBlock_terseLabel_en-US" xlink:label="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Material Terms of Trading Arrangement</link:label>
    <link:label id="lab_ecd_MtrlTermsOfTrdArrTextBlock_label_en-US" xlink:label="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Material Terms of Trading Arrangement [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MtrlTermsOfTrdArrTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:to="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_d07b04aa-d4d7-499c-b267-c791efaeb43f_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2028</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllIndividualsMember_terseLabel_en-US" xlink:label="lab_ecd_AllIndividualsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Individuals</link:label>
    <link:label id="lab_ecd_AllIndividualsMember_label_en-US" xlink:label="lab_ecd_AllIndividualsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Individuals [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="lab_ecd_AllIndividualsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CatastropheTextBlock_3e281f1a-8f6b-46f4-b566-6858e43631c2_terseLabel_en-US" xlink:label="lab_cgnx_CatastropheTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss from Fire</link:label>
    <link:label id="lab_cgnx_CatastropheTextBlock_label_en-US" xlink:label="lab_cgnx_CatastropheTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Catastrophe [Text Block]</link:label>
    <link:label id="lab_cgnx_CatastropheTextBlock_documentation_en-US" xlink:label="lab_cgnx_CatastropheTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Catastrophe</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CatastropheTextBlock" xlink:href="cgnx-20241231.xsd#cgnx_CatastropheTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CatastropheTextBlock" xlink:to="lab_cgnx_CatastropheTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BuildingMember_57eca7dc-4a11-454a-8794-77e32461b406_terseLabel_en-US" xlink:label="lab_us-gaap_BuildingMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Building [Member]</link:label>
    <link:label id="lab_us-gaap_BuildingMember_label_en-US" xlink:label="lab_us-gaap_BuildingMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Building [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BuildingMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BuildingMember" xlink:to="lab_us-gaap_BuildingMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_d59379c3-66bd-4319-b9dc-0d4608ed2a93_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Limitation on deduction for executive compensation</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Executive Compensation, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Executive Compensation, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_3597cbd8-68af-4125-ba54-f41ba0e81f28_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract" xlink:to="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8086bf6f-0246-46be-8512-8b810a799b66_terseLabel_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Maximum decrease in income tax expense due to release in reserves</link:label>
    <link:label id="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_label_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Maximum Decrease In Income Tax Expense Due To Release In Reserves</link:label>
    <link:label id="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_documentation_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Maximum decrease in income tax expense due to release in reserves.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:href="cgnx-20241231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:to="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_d9b8bd9e-b74f-455f-beaa-c19ad67d2430_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross Unrealized Losses and Fair Value for Available-for-Sale Investments</link:label>
    <link:label id="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Unrealized Loss on Investments [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_bd431ec8-00c1-4f10-bfa2-17c2459ce834_terseLabel_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other income (expense)</link:label>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_label_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Nonoperating Income (Expense)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherNonoperatingIncomeExpense" xlink:to="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_5dc0da3a-8f65-4ffc-92a8-aaa3d4d0ac0c_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_61424216-3794-4ef7-b123-c5748ef75574_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets, net</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets, Net (Excluding Goodwill)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_b76772be-01fd-46e3-a293-69c9ae67f0f2_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross Unrealized Gains</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain, before Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_89a80ad8-c79f-4f5e-b784-13aed6626310_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net payments from issuance of common stock under stock plans</link:label>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_label_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Including Option Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:to="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_a96c0dbb-e3d6-4547-82ac-ab57e23d02ad_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition, Transaction Costs</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition, Transaction Costs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:to="lab_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsFairValueDisclosureAbstract_1824a92f-5bb5-4dce-a7ac-0957eddc2ff3_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Assets:</link:label>
    <link:label id="lab_us-gaap_AssetsFairValueDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Fair Value Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsFairValueDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract" xlink:to="lab_us-gaap_AssetsFairValueDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_24af84fd-31f2-420a-9e94-e647703270ae_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares_229c48d9-2dc2-4ae5-afd4-5c0f427abb4f_terseLabel_en-US" xlink:label="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Redeemed or Called During Period, Shares</link:label>
    <link:label id="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares_label_en-US" xlink:label="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Redeemed or Called During Period, Shares</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodShares"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:to="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization_dc2710b0-9eec-45ba-a733-0a9a28daac0d_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cost, Depreciation and Amortization</link:label>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization_label_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cost, Depreciation and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization" xlink:to="lab_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardLineItems_97d2f0cf-c6d9-4c04-b0ab-a9a910272304_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Line Items]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardLineItems_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems" xlink:to="lab_us-gaap_TaxCreditCarryforwardLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_1ed90883-56f6-4786-9ea7-9b9ac866ed35_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Income Tax Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:to="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_InsuranceRecoveriesBusinessInterruption_983024e3-0b5a-422c-ba45-923c746e9fa3_terseLabel_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Insurance Recoveries, Business Interruption</link:label>
    <link:label id="lab_cgnx_InsuranceRecoveriesBusinessInterruption_label_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insurance Recoveries, Business Interruption</link:label>
    <link:label id="lab_cgnx_InsuranceRecoveriesBusinessInterruption_documentation_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Insurance Recoveries, Business Interruption</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:href="cgnx-20241231.xsd#cgnx_InsuranceRecoveriesBusinessInterruption"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:to="lab_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_06ffd06b-71c3-46b3-bd78-9dbe52ad3d4a_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:to="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_fa54a712-7746-4088-9092-3ef62f5847dc_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Expected volatility</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_b4009b2f-e522-4eb7-9fdd-3b1c8855b586_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Repurchase of common stock, shares</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_5251a53f-6242-4bed-9d3d-eafcc37e834e_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Repurchased During Period, Shares</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_label_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Repurchased During Period, Shares</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodShares" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodShares" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_c467d84d-b760-4787-a1e0-3f12f23b3f76_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign tax rate differential</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_bad9cec4-1dbf-412e-bf01-7f858aa42e14_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Foreign tax rate differential</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GainLossOnSaleOfInvestments_9940c4d2-eeab-40ac-b2cf-16d996a2875b_negatedLabel_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Realized (gain) loss on sale of investments</link:label>
    <link:label id="lab_us-gaap_GainLossOnSaleOfInvestments_label_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gain (Loss) on Sale of Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnSaleOfInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnSaleOfInvestments" xlink:to="lab_us-gaap_GainLossOnSaleOfInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_2c79d645-84d2-4743-9e4a-a9116878816d_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-lived intangible assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_1f666ee7-aaa3-46c3-a065-79075d7fb432_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Federal</link:label>
    <link:label id="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Federal Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_6e936e88-66f9-4bc2-8d3f-f6a6ac6d3650_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Constituents of Accrued Expenses</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Accrued Liabilities [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ShareRepurchaseProgramDomain_870064f5-51ba-4756-bbb6-58c66d5a7c02_terseLabel_en-US" xlink:label="lab_srt_ShareRepurchaseProgramDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share Repurchase Program [Domain]</link:label>
    <link:label id="lab_srt_ShareRepurchaseProgramDomain_label_en-US" xlink:label="lab_srt_ShareRepurchaseProgramDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Repurchase Program [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ShareRepurchaseProgramDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ShareRepurchaseProgramDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ShareRepurchaseProgramDomain" xlink:to="lab_srt_ShareRepurchaseProgramDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_67c9e608-bf62-4ea5-b0d8-fe330bfc9b6b_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash, Cash Equivalents, and Investments</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_GreaterChinaMember_bea35733-01c7-429f-863a-9d1b6be7a28e_terseLabel_en-US" xlink:label="lab_cgnx_GreaterChinaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Greater China [Member]</link:label>
    <link:label id="lab_cgnx_GreaterChinaMember_9da07f95-a952-44fd-bfea-0c4510773236_verboseLabel_en-US" xlink:label="lab_cgnx_GreaterChinaMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Greater China [Member]</link:label>
    <link:label id="lab_cgnx_GreaterChinaMember_label_en-US" xlink:label="lab_cgnx_GreaterChinaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Greater China [Member]</link:label>
    <link:label id="lab_cgnx_GreaterChinaMember_documentation_en-US" xlink:label="lab_cgnx_GreaterChinaMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Greater China [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember" xlink:href="cgnx-20241231.xsd#cgnx_GreaterChinaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GreaterChinaMember" xlink:to="lab_cgnx_GreaterChinaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_4dab8be0-8750-41fa-91a2-e185f120a9d7_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_b30abbbc-41a9-44dd-91e9-e70e2b90fc1f_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of three years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Contributions Vest At End Of Three Years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of three years.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:href="cgnx-20241231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_a97722d7-75c7-4e86-9732-7cf5a0f3894a_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, after Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MeasureAxis_terseLabel_en-US" xlink:label="lab_ecd_MeasureAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Measure:</link:label>
    <link:label id="lab_ecd_MeasureAxis_label_en-US" xlink:label="lab_ecd_MeasureAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measure [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MeasureAxis" xlink:to="lab_ecd_MeasureAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_f90e3f6b-dde3-4af6-a951-d04aaa28ae49_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additions as a result of tax positions taken in the current period</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncompeteAgreementsMember_285a3ab4-b137-4657-9d08-003cb227a190_terseLabel_en-US" xlink:label="lab_us-gaap_NoncompeteAgreementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-compete agreements</link:label>
    <link:label id="lab_us-gaap_NoncompeteAgreementsMember_label_en-US" xlink:label="lab_us-gaap_NoncompeteAgreementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Noncompete Agreements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncompeteAgreementsMember" xlink:to="lab_us-gaap_NoncompeteAgreementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_4be1f891-3dea-4211-b6ef-17843b7c51f1_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Authorized shares (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesAuthorized" xlink:to="lab_us-gaap_PreferredStockSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_country_KP_c7755b36-ade1-4ff5-aa32-720ecd425cd5_terseLabel_en-US" xlink:label="lab_country_KP" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF</link:label>
    <link:label id="lab_country_KP_label_en-US" xlink:label="lab_country_KP" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_KP" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_KP"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_KP" xlink:to="lab_country_KP" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_61850ff5-d48a-4694-944e-efa0835030dd_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Net of Forfeitures</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_bd674f27-e815-4af7-ac47-87119414ea7f_terseLabel_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Small Business</link:label>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_label_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityEmergingGrowthCompany" xlink:to="lab_dei_EntityEmergingGrowthCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_53b4b7b3-0a09-4612-9b3e-fdd6c60849a3_terseLabel_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Minimum age to be eligible to defined contribution plan</link:label>
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_label_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Minimum Age To Be Eligible To Defined Contribution Plan</link:label>
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_documentation_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Minimum age to be eligible to defined contribution plan.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:href="cgnx-20241231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:to="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_36d54d24-9cd4-49db-bb72-b50fd5d516b3_terseLabel_en-US" xlink:label="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase in compensation expense due to revised estimated forfeiture rates</link:label>
    <link:label id="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_label_en-US" xlink:label="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) In Compensation Expense Due To Revised Estimated Forfeiture Rates</link:label>
    <link:label id="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_documentation_en-US" xlink:label="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Increase (decrease) in compensation expense due to revised estimated forfeiture rates.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:href="cgnx-20241231.xsd#cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:to="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonGaapMeasureDescriptionTextBlock_terseLabel_en-US" xlink:label="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-GAAP Measure Description</link:label>
    <link:label id="lab_ecd_NonGaapMeasureDescriptionTextBlock_label_en-US" xlink:label="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Non-GAAP Measure Description [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonGaapMeasureDescriptionTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:to="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_A27000SquareFootPremisesMember_ff9b8034-fd4d-43b9-8723-7f1564458abe_terseLabel_en-US" xlink:label="lab_cgnx_A27000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">27,000 Square-Foot Premises</link:label>
    <link:label id="lab_cgnx_A27000SquareFootPremisesMember_label_en-US" xlink:label="lab_cgnx_A27000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">27,000 Square-Foot Premises [Member]</link:label>
    <link:label id="lab_cgnx_A27000SquareFootPremisesMember_documentation_en-US" xlink:label="lab_cgnx_A27000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">27,000 Square-Foot Premises</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A27000SquareFootPremisesMember" xlink:href="cgnx-20241231.xsd#cgnx_A27000SquareFootPremisesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_A27000SquareFootPremisesMember" xlink:to="lab_cgnx_A27000SquareFootPremisesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SovereignDebtSecuritiesMember_d0b3e5d6-a885-4861-ab71-1efea5f5677e_terseLabel_en-US" xlink:label="lab_us-gaap_SovereignDebtSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Sovereign Bonds [Member]</link:label>
    <link:label id="lab_us-gaap_SovereignDebtSecuritiesMember_label_en-US" xlink:label="lab_us-gaap_SovereignDebtSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Sovereign Debt Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SovereignDebtSecuritiesMember" xlink:to="lab_us-gaap_SovereignDebtSecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquityComponentDomain_e2a43243-d821-4ca7-87d3-007dfcec4be2_terseLabel_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:label id="lab_us-gaap_EquityComponentDomain_label_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityComponentDomain" xlink:to="lab_us-gaap_EquityComponentDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_111a8b09-4496-4d37-9c63-fbad40f8af09_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Preferred stock par value (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_label_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Preferred Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_4e1bfd00-1691-4710-a7c4-d61bc74539a4_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax benefit related to GILTI adjustments</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, GILTI, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_ae7aa57f-e8b1-485c-9fcc-160be2e9b8a3_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of four years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Contributions Vest At End Of Four Years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Company contributions vest at end of four years.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:href="cgnx-20241231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:type="arc" order="1"/>
    <link:label id="lab_country_JP_778d0d30-b1ea-421d-877e-b58090f1ab67_terseLabel_en-US" xlink:label="lab_country_JP" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">JAPAN</link:label>
    <link:label id="lab_country_JP_label_en-US" xlink:label="lab_country_JP" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">JAPAN</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_JP" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_JP"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_JP" xlink:to="lab_country_JP" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Additional402vDisclosureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_Additional402vDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Additional 402(v) Disclosure</link:label>
    <link:label id="lab_ecd_Additional402vDisclosureTextBlock_label_en-US" xlink:label="lab_ecd_Additional402vDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Additional 402(v) Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Additional402vDisclosureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Additional402vDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Additional402vDisclosureTextBlock" xlink:to="lab_ecd_Additional402vDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_Customer1Member_6a05f1ff-2f2b-4666-8a20-7e95d9bbb680_terseLabel_en-US" xlink:label="lab_cgnx_Customer1Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer 1 [Member]</link:label>
    <link:label id="lab_cgnx_Customer1Member_label_en-US" xlink:label="lab_cgnx_Customer1Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer 1 [Member]</link:label>
    <link:label id="lab_cgnx_Customer1Member_documentation_en-US" xlink:label="lab_cgnx_Customer1Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Customer 1</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer1Member" xlink:href="cgnx-20241231.xsd#cgnx_Customer1Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Customer1Member" xlink:to="lab_cgnx_Customer1Member" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityShellCompany_1ffef5c4-8cf5-4926-9500-bc0062ba883f_terseLabel_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:label id="lab_dei_EntityShellCompany_label_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Shell Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityShellCompany" xlink:to="lab_dei_EntityShellCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_b28197f1-7cb6-4fc5-8e82-d76f4107d692_terseLabel_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_label_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityIncorporationStateCountryCode" xlink:to="lab_dei_EntityIncorporationStateCountryCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_d97af572-529c-45b8-b5b2-076419bcadb5_terseLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Comprehensive Income</link:label>
    <link:label id="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Comprehensive Income, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:to="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDomain_80690464-ba53-4a58-b291-abf9181e992d_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDomain_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementTable_4d7ed892-1e67-446c-a8f4-3259487b17dd_terseLabel_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:label id="lab_us-gaap_StatementTable_label_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementTable" xlink:to="lab_us-gaap_StatementTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_f09c5de6-3393-4df2-b5b8-70db48c8de37_terseLabel_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Offset to Tax Attributes</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_label_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Offset to Tax Attributes</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_documentation_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Offset to Tax Attributes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:href="cgnx-20241231.xsd#cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:to="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementFrequencyDomain_c6ebc654-9e9d-482f-8c6b-8344044b85b0_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value, Measurement Frequency [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementFrequencyDomain_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Measurement Frequency [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="lab_us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SignificantAccountingPoliciesTextBlock_28ac198a-95d8-4a45-bbc1-257d40f08d36_terseLabel_en-US" xlink:label="lab_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Summary of Significant Accounting Policies</link:label>
    <link:label id="lab_us-gaap_SignificantAccountingPoliciesTextBlock_label_en-US" xlink:label="lab_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Significant Accounting Policies [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SignificantAccountingPoliciesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="lab_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ConsolidationItemsDomain_f3109387-1b33-4a9a-a3ed-9149c27c5e60_terseLabel_en-US" xlink:label="lab_srt_ConsolidationItemsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Consolidation Items [Domain]</link:label>
    <link:label id="lab_srt_ConsolidationItemsDomain_label_en-US" xlink:label="lab_srt_ConsolidationItemsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidation Items [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ConsolidationItemsDomain" xlink:to="lab_srt_ConsolidationItemsDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_017421c7-db34-48f4-9d33-e2d684b411f8_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total fair values of stock options vested</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_label_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Based Compensation Arrangement By Share Based Payment Award Options Vested Fair Value</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_documentation_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Share based compensation arrangement by share based payment award options vested fair value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:href="cgnx-20241231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:to="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_c1410f63-0e45-4fa8-8086-3c373f03fedc_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_0af82335-23c1-4db6-9a65-07bc7f0e3076_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Quoted&#160;Prices&#160;in Active Markets for Identical Assets (Level&#160;1)</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 1 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel1Member" xlink:to="lab_us-gaap_FairValueInputsLevel1Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_1fbbfd52-4723-4dc7-b289-7e93fe617c88_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency translation gain (loss)</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_2116415d-09e5-432b-a8b4-0425e23590a7_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency translation adjustments, net of tax</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrent_990f6feb-47c0-4667-825e-674002843b7c_totalLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current assets</link:label>
    <link:label id="lab_us-gaap_AssetsCurrent_label_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrent" xlink:to="lab_us-gaap_AssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_74c5d426-06ed-4bbb-9fb8-76f19c43b0e4_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract" xlink:to="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_c41ddda2-4955-4743-a2fb-542f8fe6ba79_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Discrete tax expense related to tax return filings</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Settlement, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_26de26b2-9a28-47cf-bb5c-41adc04a7400_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Accrued Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:to="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherInventoryPurchasedGoods_765a1c46-5398-4712-9cf5-9c0b60d61783_terseLabel_en-US" xlink:label="lab_us-gaap_OtherInventoryPurchasedGoods" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other Inventory, Purchased Goods, Gross</link:label>
    <link:label id="lab_us-gaap_OtherInventoryPurchasedGoods_label_en-US" xlink:label="lab_us-gaap_OtherInventoryPurchasedGoods" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Inventory, Purchased Goods, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherInventoryPurchasedGoods" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherInventoryPurchasedGoods"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherInventoryPurchasedGoods" xlink:to="lab_us-gaap_OtherInventoryPurchasedGoods" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_92857f37-b0e1-41c4-87d6-2e8a4f70fa38_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Exercisable, Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ExtraordinaryAndUnusualItemsAbstract_label_en-US" xlink:label="lab_us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unusual or Infrequent Items, or Both [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:to="lab_us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_430bc415-6a7f-411d-be1e-62d888e4a087_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_df166556-46df-4922-8a3e-a04ed094750e_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Weighted-average grant-date fair values of stock options granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_1fcb255a-7364-48cc-93c3-e23de4679e01_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Table]</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount_57b8f036-0bbe-4537-90a3-dab5b4cfb737_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unrecorded Unconditional Purchase Obligation, Including Lease Not yet Commenced, Total</link:label>
    <link:label id="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount_label_en-US" xlink:label="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecorded Unconditional Purchase Obligation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount" xlink:to="lab_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_bc9008fc-d2d3-4185-9828-661fdd8d44a7_terseLabel_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_label_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityWellKnownSeasonedIssuer" xlink:to="lab_dei_EntityWellKnownSeasonedIssuer" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherIntangibleAssetsMember_abc03943-992e-4810-8d3f-85822038469c_terseLabel_en-US" xlink:label="lab_us-gaap_OtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Non-compete Agreements [Member]</link:label>
    <link:label id="lab_us-gaap_OtherIntangibleAssetsMember_label_en-US" xlink:label="lab_us-gaap_OtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Intangible Assets [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherIntangibleAssetsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherIntangibleAssetsMember" xlink:to="lab_us-gaap_OtherIntangibleAssetsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_EUR_2748087d-6e00-4fa8-9abc-b79b1bc9febe_terseLabel_en-US" xlink:label="lab_currency_EUR" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Euro [Member]</link:label>
    <link:label id="lab_currency_EUR_label_en-US" xlink:label="lab_currency_EUR" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Euro Member Countries, Euro</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_EUR" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_EUR"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_EUR" xlink:to="lab_currency_EUR" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_760bb976-9869-4f0f-8caa-e4b803184777_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_3076cb31-3615-44a1-821e-850a26aa5945_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign tax structure deferred tax asset</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Foreign Tax Structure Change</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Foreign Tax Structure Change</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:to="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_2291725b-2d77-4455-934c-e85a726cb1ba_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2028</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_9b999b9f-5e3e-4afa-bcb7-e14512730bf2_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reserve for income taxes</link:label>
    <link:label id="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_label_en-US" xlink:label="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liability for Uncertainty in Income Taxes, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:to="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CorporateBondsFairValueDisclosure_1aa849bb-b07b-4f52-bc12-1db053816c02_terseLabel_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Corporate bonds</link:label>
    <link:label id="lab_cgnx_CorporateBondsFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Corporate Bonds Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_CorporateBondsFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Corporate bonds fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure" xlink:href="cgnx-20241231.xsd#cgnx_CorporateBondsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CorporateBondsFairValueDisclosure" xlink:to="lab_cgnx_CorporateBondsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_IndemnificationProvisionsTextBlock_c8b50caf-b8bf-4c4c-978e-a864656612ed_terseLabel_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Indemnification Provisions</link:label>
    <link:label id="lab_cgnx_IndemnificationProvisionsTextBlock_label_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Indemnification Provisions [Text Block]</link:label>
    <link:label id="lab_cgnx_IndemnificationProvisionsTextBlock_documentation_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Indemnification provisions are a potential liability whereby the Company indemnifies certain directors, officers, and employees (current or former) against expenses incurred by them in relation to specific legal proceedings. The company also indemnifies other parties for specific situations.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IndemnificationProvisionsTextBlock" xlink:href="cgnx-20241231.xsd#cgnx_IndemnificationProvisionsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IndemnificationProvisionsTextBlock" xlink:to="lab_cgnx_IndemnificationProvisionsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CurrencytranslationadjustmentAbstract_72e209a6-a7bc-4296-8a45-c10ea034154a_terseLabel_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign currency translation adjustments:</link:label>
    <link:label id="lab_cgnx_CurrencytranslationadjustmentAbstract_label_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Currency translation adjustment [Abstract]</link:label>
    <link:label id="lab_cgnx_CurrencytranslationadjustmentAbstract_documentation_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Currency translation adjustment [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CurrencytranslationadjustmentAbstract" xlink:href="cgnx-20241231.xsd#cgnx_CurrencytranslationadjustmentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract" xlink:to="lab_cgnx_CurrencytranslationadjustmentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_b2a7ba1e-c123-4631-97df-d861881e6045_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease, weighted average discount rate (percent)</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Weighted Average Discount Rate, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_0749fc42-79be-4a1e-8f25-f1d4db9282e9_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net cash used in financing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_b2d90a36-b95c-4c57-b088-d8ec283d8569_terseLabel_en-US" xlink:label="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_label_en-US" xlink:label="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Standard and Extended Product Warranty Accrual, Foreign Currency Translation Gain (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:to="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_4aebda7e-41c0-4d43-a4b9-691b1feb5afb_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Accounting Changes and Error Corrections [Abstract]</link:label>
    <link:label id="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_label_en-US" xlink:label="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accounting Changes and Error Corrections [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:to="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_LossGainFromCatastrophes_085036d7-c01e-4718-9e99-c80c433e0830_terseLabel_en-US" xlink:label="lab_cgnx_LossGainFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Loss (recovery) from fire</link:label>
    <link:label id="lab_cgnx_LossGainFromCatastrophes_label_en-US" xlink:label="lab_cgnx_LossGainFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Loss (Gain) From Catastrophes</link:label>
    <link:label id="lab_cgnx_LossGainFromCatastrophes_documentation_en-US" xlink:label="lab_cgnx_LossGainFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Loss (Gain) From Catastrophes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LossGainFromCatastrophes" xlink:href="cgnx-20241231.xsd#cgnx_LossGainFromCatastrophes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LossGainFromCatastrophes" xlink:to="lab_cgnx_LossGainFromCatastrophes" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityRegistrantName_c533f34a-8712-4912-8e1f-cdf7f255633f_terseLabel_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:label id="lab_dei_EntityRegistrantName_label_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityRegistrantName" xlink:to="lab_dei_EntityRegistrantName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesGross_43388bcc-fc5a-4d17-bbdd-6ae5d5097e60_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash paid in purchase price</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesGross_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Businesses, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireBusinessesGross" xlink:to="lab_us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToNonPeoNeoCompFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Adjustment to Non-PEO NEO Compensation Footnote</link:label>
    <link:label id="lab_ecd_AdjToNonPeoNeoCompFnTextBlock_label_en-US" xlink:label="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Adjustment to Non-PEO NEO Compensation Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToNonPeoNeoCompFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:to="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DepreciationDepletionAndAmortization_1c468f5a-6221-457d-b17a-500438df82af_terseLabel_en-US" xlink:label="lab_us-gaap_DepreciationDepletionAndAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Depreciation, Depletion and Amortization</link:label>
    <link:label id="lab_us-gaap_DepreciationDepletionAndAmortization_label_en-US" xlink:label="lab_us-gaap_DepreciationDepletionAndAmortization" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Depreciation, Depletion and Amortization</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DepreciationDepletionAndAmortization" xlink:to="lab_us-gaap_DepreciationDepletionAndAmortization" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemDomain_d78bf712-0ef2-4a83-854b-e7d8609f14cb_terseLabel_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Unusual or Infrequent Item, or Both [Domain]</link:label>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemDomain_label_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unusual or Infrequent Item, or Both [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnusualOrInfrequentItemDomain" xlink:to="lab_us-gaap_UnusualOrInfrequentItemDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GrossProfit_c1796e6b-5ed1-403e-acfc-5a1f27e66e98_totalLabel_en-US" xlink:label="lab_us-gaap_GrossProfit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Gross margin</link:label>
    <link:label id="lab_us-gaap_GrossProfit_2763f47d-3332-427b-9a7f-2a61b5b2097e_terseLabel_en-US" xlink:label="lab_us-gaap_GrossProfit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Gross margin</link:label>
    <link:label id="lab_us-gaap_GrossProfit_label_en-US" xlink:label="lab_us-gaap_GrossProfit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Gross Profit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GrossProfit" xlink:to="lab_us-gaap_GrossProfit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_a853624a-1be0-4132-a885-4b3692d4804c_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Intangible Assets</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Intangible Assets Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="lab_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_6809d7b0-7520-4cf8-a499-661f11ad9034_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Net change related to foreign currency translation adjustments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:to="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_467e93ef-7750-4e54-a433-8ce67d2f5ab0_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State</link:label>
    <link:label id="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred State and Local Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_ddc488c0-58bd-44f2-91ea-6ce5f6a8b967_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changes in Warranty Obligations</link:label>
    <link:label id="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Product Warranty Liability [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardGrantDateFairValue_terseLabel_en-US" xlink:label="lab_ecd_AwardGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value as of Grant Date</link:label>
    <link:label id="lab_ecd_AwardGrantDateFairValue_label_en-US" xlink:label="lab_ecd_AwardGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardGrantDateFairValue" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardGrantDateFairValue" xlink:to="lab_ecd_AwardGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_fe3094f2-ebc8-44cd-bb08-abedaacb9f50_verboseLabel_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Revenue from a single customer, percentage</link:label>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_label_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer Concentration Risk [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerConcentrationRiskMember" xlink:to="lab_us-gaap_CustomerConcentrationRiskMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_b1d42fba-3bdd-4889-b518-d1784bd734b1_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Options vested or expected to vest, aggregate intrinsic value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_5ddf7546-3362-42e9-b8da-ab1e66350e17_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Significant&#160;Other Observable Inputs (Level&#160;2)</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Inputs, Level 2 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel2Member" xlink:to="lab_us-gaap_FairValueInputsLevel2Member" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_SegmentGeographicalDomain_9224f18f-290d-478a-b8aa-0381b54334b3_terseLabel_en-US" xlink:label="lab_srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:label id="lab_srt_SegmentGeographicalDomain_label_en-US" xlink:label="lab_srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_SegmentGeographicalDomain" xlink:to="lab_srt_SegmentGeographicalDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_119a9363-be42-4b01-9412-07e06b3e4286_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_6169637f-f015-4887-a41b-8839c159715a_totalLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total deferred tax assets</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, With Jurisdictional Netting, Gross</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, With Jurisdictional Netting, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:to="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_f8749fc1-a859-42e7-941d-6bf8843608bd_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-Based Compensation Expense</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConsolidationPolicyTextBlock_b9e6fac1-127e-48ea-bcce-662b51731c5d_terseLabel_en-US" xlink:label="lab_us-gaap_ConsolidationPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Basis of Consolidation</link:label>
    <link:label id="lab_us-gaap_ConsolidationPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ConsolidationPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Consolidation, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConsolidationPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConsolidationPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConsolidationPolicyTextBlock" xlink:to="lab_us-gaap_ConsolidationPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_83e22c5a-79a6-43eb-aef7-542873056245_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">4-5 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After Four Years Before Five Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Available-for-sale securities, debt maturities after fourth year but before fifth year, fair value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDateAxis_terseLabel_en-US" xlink:label="lab_ecd_RestatementDateAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restatement Determination Date:</link:label>
    <link:label id="lab_ecd_RestatementDateAxis_label_en-US" xlink:label="lab_ecd_RestatementDateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restatement Determination Date [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDateAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDateAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDateAxis" xlink:to="lab_ecd_RestatementDateAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_Security12bTitle_3ac90d0b-40d5-41c7-85c3-1bf1e67ea11c_terseLabel_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:label id="lab_dei_Security12bTitle_label_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_Security12bTitle" xlink:to="lab_dei_Security12bTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_947e59e1-3ad2-4569-90f7-597ca0ffa561_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis" xlink:to="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFinStmtErrorCorrectionFlag_5973a8e4-cf4b-4767-b72f-51ca873d7cca_terseLabel_en-US" xlink:label="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Financial Statement Error Correction [Flag]</link:label>
    <link:label id="lab_dei_DocumentFinStmtErrorCorrectionFlag_label_en-US" xlink:label="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Financial Statement Error Correction [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFinStmtErrorCorrectionFlag" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFinStmtErrorCorrectionFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFinStmtErrorCorrectionFlag" xlink:to="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_InvestmentDurationAxis_88b4d7d2-c01b-43b4-a845-8716ae2c3104_terseLabel_en-US" xlink:label="lab_cgnx_InvestmentDurationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Investment Duration [Axis]</link:label>
    <link:label id="lab_cgnx_InvestmentDurationAxis_label_en-US" xlink:label="lab_cgnx_InvestmentDurationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Investment Duration [Axis]</link:label>
    <link:label id="lab_cgnx_InvestmentDurationAxis_documentation_en-US" xlink:label="lab_cgnx_InvestmentDurationAxis" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Investment Duration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationAxis" xlink:href="cgnx-20241231.xsd#cgnx_InvestmentDurationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_InvestmentDurationAxis" xlink:to="lab_cgnx_InvestmentDurationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_70a729bb-112f-4948-b942-a8d74871fa27_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Disclosure of Compensation Related Costs, Share-based Payments [Abstract]</link:label>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameDomain_f5899d4f-fabc-42ec-ac95-4b239648223f_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Authority, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameDomain_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="lab_us-gaap_IncomeTaxAuthorityNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_72979d54-8e44-4c16-9fe3-6a5906d20074_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">State income taxes, net of federal benefit</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_151c2252-608f-4799-a62f-6a60acf05dba_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Constituents of accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Accrued Liabilities, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_f5c2472e-6a1e-44ae-8ebc-acf3b8ef5100_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AuditInformationAbstract_label_en-US" xlink:label="lab_cgnx_AuditInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Audit Information [Abstract]</link:label>
    <link:label id="lab_cgnx_AuditInformationAbstract_documentation_en-US" xlink:label="lab_cgnx_AuditInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Audit Information</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AuditInformationAbstract" xlink:href="cgnx-20241231.xsd#cgnx_AuditInformationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AuditInformationAbstract" xlink:to="lab_cgnx_AuditInformationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_69a5427d-4ce9-41e8-a19c-63fe12d0f8e7_terseLabel_en-US" xlink:label="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restructuring Charges</link:label>
    <link:label id="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_label_en-US" xlink:label="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Costs Associated with Exit or Disposal Activity or Restructuring [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:to="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_AllCurrenciesDomain_d1208a7d-fa39-47d9-b245-8c0e0dc0fdb9_terseLabel_en-US" xlink:label="lab_currency_AllCurrenciesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">All Currencies [Domain]</link:label>
    <link:label id="lab_currency_AllCurrenciesDomain_label_en-US" xlink:label="lab_currency_AllCurrenciesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">All Currencies [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_AllCurrenciesDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_AllCurrenciesDomain" xlink:to="lab_currency_AllCurrenciesDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_8a3c8fe8-9074-4d7f-afef-6dd02ff91061_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Cash flows from financing activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_5ee75703-e438-4e18-81a3-0b186d93b844_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskLineItems" xlink:to="lab_us-gaap_ConcentrationRiskLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_f5951f5f-17d8-44fb-95c2-43fe5bd4d409_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Net income (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Earnings Per Share, Basic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic" xlink:to="lab_us-gaap_EarningsPerShareBasic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeasePayments_9832b12d-901f-4384-8732-918a28caa0f3_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Operating lease payments</link:label>
    <link:label id="lab_us-gaap_OperatingLeasePayments_label_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Operating Lease, Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasePayments" xlink:to="lab_us-gaap_OperatingLeasePayments" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMnpiDiscTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Disclosure</link:label>
    <link:label id="lab_ecd_AwardTmgMnpiDiscTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Award Timing MNPI Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiDiscTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:to="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherLiabilitiesDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Liabilities Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract" xlink:to="lab_us-gaap_OtherLiabilitiesDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_1cb0b543-a244-4bed-9d95-f699cf69c45f_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_87cb959a-e88f-4f95-b737-4ec92e17892a_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax credit carryforwards</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards, Domestic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TrademarksMember_0ce466ea-40d9-443f-af36-4ce8085ebb43_terseLabel_en-US" xlink:label="lab_us-gaap_TrademarksMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Trademarks</link:label>
    <link:label id="lab_us-gaap_TrademarksMember_label_en-US" xlink:label="lab_us-gaap_TrademarksMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Trademarks [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TrademarksMember" xlink:to="lab_us-gaap_TrademarksMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardTable_d1e85c00-4569-48cf-866b-e419d4e63eff_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Table]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardTable_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable" xlink:to="lab_us-gaap_TaxCreditCarryforwardTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtPnsnAdjsSvcCstMember_terseLabel_en-US" xlink:label="lab_ecd_AggtPnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Aggregate Pension Adjustments Service Cost</link:label>
    <link:label id="lab_ecd_AggtPnsnAdjsSvcCstMember_label_en-US" xlink:label="lab_ecd_AggtPnsnAdjsSvcCstMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Aggregate Pension Adjustments Service Cost [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtPnsnAdjsSvcCstMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:to="lab_ecd_AggtPnsnAdjsSvcCstMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTable_358c8185-0db0-4a32-9c1b-45ee94614a32_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Goodwill [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Goodwill [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable" xlink:to="lab_us-gaap_ScheduleOfGoodwillTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_4df652c7-abc5-4793-af90-a69238b9d625_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_8bc8ecbd-02a6-48df-b2ed-afe3f8992581_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total current liabilities</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrent" xlink:to="lab_us-gaap_LiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_f5fa075e-841b-4b5b-940a-efe4c20ea21f_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Total unrecognized compensation expense related to non-vested stock options</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ShareRepurchaseProgramAxis_ae2ce9a7-e983-4494-8784-1bfceac1222d_terseLabel_en-US" xlink:label="lab_srt_ShareRepurchaseProgramAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Share Repurchase Program [Axis]</link:label>
    <link:label id="lab_srt_ShareRepurchaseProgramAxis_label_en-US" xlink:label="lab_srt_ShareRepurchaseProgramAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share Repurchase Program [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ShareRepurchaseProgramAxis" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ShareRepurchaseProgramAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ShareRepurchaseProgramAxis" xlink:to="lab_srt_ShareRepurchaseProgramAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_d30125bc-5008-4542-b057-2f4288b5277a_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2025</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_f62db760-8716-4182-8a0d-2635126ac4f4_terseLabel_en-US" xlink:label="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Changes in the Reserve for Income Taxes, Excluding Interest and Penalties</link:label>
    <link:label id="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_label_en-US" xlink:label="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Summary of Income Tax Contingencies [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SummaryOfIncomeTaxContingenciesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:to="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_e07f1ec2-1c0f-486d-b236-235192fe0d6b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_bbb8996a-a53c-4ed9-baee-49c084b77bfc_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2-3 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Available For Sale Securities Debt Maturities After Two Years Before Three Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Available-for-sale securities, debt maturities after second year but before third year, fair value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationsPolicy_91a519a1-a327-4e89-b8a1-cab690badce3_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisitions</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationsPolicy_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combinations Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationsPolicy" xlink:to="lab_us-gaap_BusinessCombinationsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UncollectibleReceivablesMember_d2fd4047-6149-48af-b401-3356c7a4832e_terseLabel_en-US" xlink:label="lab_us-gaap_UncollectibleReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Reserve for Uncollectible Accounts Receivable and Sales Return [Member]</link:label>
    <link:label id="lab_us-gaap_UncollectibleReceivablesMember_label_en-US" xlink:label="lab_us-gaap_UncollectibleReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Uncollectible Receivables [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UncollectibleReceivablesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UncollectibleReceivablesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UncollectibleReceivablesMember" xlink:to="lab_us-gaap_UncollectibleReceivablesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAmortizationOfDeferredCharges_bec62f6b-600e-4402-8ae6-acf56a28da9b_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAmortizationOfDeferredCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amortization of Other Deferred Charges</link:label>
    <link:label id="lab_us-gaap_OtherAmortizationOfDeferredCharges_label_en-US" xlink:label="lab_us-gaap_OtherAmortizationOfDeferredCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Amortization of Other Deferred Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAmortizationOfDeferredCharges" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAmortizationOfDeferredCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAmortizationOfDeferredCharges" xlink:to="lab_us-gaap_OtherAmortizationOfDeferredCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_country_SG_170627b6-a88a-4d1f-80b9-dc2be16bfd89_terseLabel_en-US" xlink:label="lab_country_SG" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">SINGAPORE</link:label>
    <link:label id="lab_country_SG_label_en-US" xlink:label="lab_country_SG" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">SINGAPORE</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_SG" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_SG"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_SG" xlink:to="lab_country_SG" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_f8ac32eb-6a84-4fd0-98e4-72000fb74463_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock-Based Compensation</link:label>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressCityOrTown_b9381612-8360-4ee2-8b92-b25bbf3e4d1e_terseLabel_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:label id="lab_dei_EntityAddressCityOrTown_label_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressCityOrTown" xlink:to="lab_dei_EntityAddressCityOrTown" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeLeasesPolicyTextBlock_f0e8198c-801b-4750-8375-6af03220d7fa_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Leases</link:label>
    <link:label id="lab_us-gaap_LesseeLeasesPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Leases [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_0ea9ee71-e1a3-42f0-ade7-69d92b9fe487_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Summary of Stock Option Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_d0d9793b-fce0-464e-b605-cd84116b1404_verboseLabel_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_5cf7be6b-4096-4482-baae-cf4bee807673_terseLabel_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Allocated Share-based Compensation Expense</link:label>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_label_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Payment Arrangement, Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_99fc9ac4-dd55-4c51-baef-aa650407e719_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income tax penalties and interest expense</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_50161a3a-4292-4b6f-9de1-2523c2f2c3f5_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Granted, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_2c279cfe-1334-4543-b00c-cdb79dee0e1c_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Forfeited or expired</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionAxis_19dadaac-c7d6-4a6f-82b3-e2b4ac16a953_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionAxis_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionAxis" xlink:to="lab_us-gaap_BusinessAcquisitionAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_9c3e9638-c334-408f-a29b-c57a93464002_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Amortized Intangible Assets</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AreaOfRealEstateProperty_282182d0-c8ac-41f6-8fc2-3ef449869992_terseLabel_en-US" xlink:label="lab_us-gaap_AreaOfRealEstateProperty" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Area of Real Estate Property</link:label>
    <link:label id="lab_us-gaap_AreaOfRealEstateProperty_label_en-US" xlink:label="lab_us-gaap_AreaOfRealEstateProperty" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Area of Real Estate Property</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AreaOfRealEstateProperty" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AreaOfRealEstateProperty"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AreaOfRealEstateProperty" xlink:to="lab_us-gaap_AreaOfRealEstateProperty" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember_terseLabel_en-US" xlink:label="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year</link:label>
    <link:label id="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember_label_en-US" xlink:label="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:to="lab_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCountryMember_8ac254a1-655e-41b6-95cd-ef87abd3aafe_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCountryMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign Tax Jurisdiction [Member]</link:label>
    <link:label id="lab_us-gaap_ForeignCountryMember_label_en-US" xlink:label="lab_us-gaap_ForeignCountryMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Foreign Tax Jurisdiction [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCountryMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCountryMember" xlink:to="lab_us-gaap_ForeignCountryMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_3503b9af-e469-42f7-b9e5-47f224b77239_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Liabilities:</link:label>
    <link:label id="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Liabilities, Fair Value Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:to="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_TaxCreditCarryforwardMember_9b4fba32-6d33-4da2-9bcf-f3e6e57f328c_terseLabel_en-US" xlink:label="lab_cgnx_TaxCreditCarryforwardMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward</link:label>
    <link:label id="lab_cgnx_TaxCreditCarryforwardMember_label_en-US" xlink:label="lab_cgnx_TaxCreditCarryforwardMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward [Member]</link:label>
    <link:label id="lab_cgnx_TaxCreditCarryforwardMember_documentation_en-US" xlink:label="lab_cgnx_TaxCreditCarryforwardMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Tax Credit Carryforward</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TaxCreditCarryforwardMember" xlink:href="cgnx-20241231.xsd#cgnx_TaxCreditCarryforwardMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TaxCreditCarryforwardMember" xlink:to="lab_cgnx_TaxCreditCarryforwardMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_7cba3bb5-8005-4d2e-82a6-d8ea14363b68_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Revenue from Contract with Customer [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalYearFocus_05b82698-a56f-4bd8-8b67-fe722788cdcc_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalYearFocus_label_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalYearFocus" xlink:to="lab_dei_DocumentFiscalYearFocus" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ProductCostOfRevenueMember_95e1b5bf-2f18-4971-8561-4da408cf212f_terseLabel_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product cost of revenue [Member]</link:label>
    <link:label id="lab_cgnx_ProductCostOfRevenueMember_label_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Cost Of Revenue [Member]</link:label>
    <link:label id="lab_cgnx_ProductCostOfRevenueMember_documentation_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Product cost of revenue.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductCostOfRevenueMember" xlink:href="cgnx-20241231.xsd#cgnx_ProductCostOfRevenueMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ProductCostOfRevenueMember" xlink:to="lab_cgnx_ProductCostOfRevenueMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrent_c04e1288-2461-4ce7-a3ed-a8b52ecde1b4_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Other Accrued Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAccruedLiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="lab_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_0a915565-12d7-4198-8b6c-6cefda836efd_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Foreign income from continuing operations before taxes</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Foreign</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_eff3e1a0-dea0-41bb-96a4-154e7668710b_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_e5335f00-e8cb-45fa-84cd-a9224382ff3d_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2029</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentPeriodEndDate_4cbf6a30-257f-4337-bbb9-b0b6cd42b839_terseLabel_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:label id="lab_dei_DocumentPeriodEndDate_label_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentPeriodEndDate" xlink:to="lab_dei_DocumentPeriodEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_f4466185-0902-4a9a-a862-d3acd9a9925e_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Finished goods</link:label>
    <link:label id="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_label_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Inventory, Finished Goods, Net of Reserves</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:to="lab_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_395ed419-de20-412f-baaa-6d3c4b0b73c7_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, Payments, Due</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_279f7e9a-9a6f-442d-a748-05864f8c144f_totalLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xml:lang="en-US">Total</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_f1197c2f-48b5-46d4-aa3f-91d19bd13a5e_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xml:lang="en-US">Nonvested beginning balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_bf917af5-1068-484a-b8b1-6ef4a0fb9dec_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xml:lang="en-US">Nonvested ending balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTradingArrLineItems_label_en-US" xlink:label="lab_ecd_InsiderTradingArrLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Insider Trading Arrangements [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingArrLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingArrLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="lab_ecd_InsiderTradingArrLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_StockRepurchaseProgramBuybackExciseTax_824fea58-3326-42e7-98e4-e5855c4cceeb_terseLabel_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Stock Repurchase Program, Buyback Excise Tax</link:label>
    <link:label id="lab_cgnx_StockRepurchaseProgramBuybackExciseTax_label_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Stock Repurchase Program, Buyback Excise Tax</link:label>
    <link:label id="lab_cgnx_StockRepurchaseProgramBuybackExciseTax_documentation_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Stock Repurchase Program, Buyback Excise Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:href="cgnx-20241231.xsd#cgnx_StockRepurchaseProgramBuybackExciseTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:to="lab_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_ba635958-4310-4958-9487-0f74d8a9b297_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">2027</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_913ac76a-c04b-4d13-bd8f-802d2540a4c9_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ComputerHardwareAndSoftwareMember_3b6ef825-798e-42cf-8c6c-430a57e57c7b_terseLabel_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Computer Hardware and Software [Member]</link:label>
    <link:label id="lab_cgnx_ComputerHardwareAndSoftwareMember_label_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Computer Hardware And Software [Member]</link:label>
    <link:label id="lab_cgnx_ComputerHardwareAndSoftwareMember_documentation_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Computer Hardware and Software Member.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember" xlink:href="cgnx-20241231.xsd#cgnx_ComputerHardwareAndSoftwareMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ComputerHardwareAndSoftwareMember" xlink:to="lab_cgnx_ComputerHardwareAndSoftwareMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_9efea2ae-dcae-45d2-b60e-35ce11cbd1ab_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_label_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Prepaid Expense and Other Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ProductWarrantyPeriod_514cc43d-9d85-475a-8ab2-3f1795536bd4_terseLabel_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Product Warranty Period</link:label>
    <link:label id="lab_cgnx_ProductWarrantyPeriod_label_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Product Warranty Period</link:label>
    <link:label id="lab_cgnx_ProductWarrantyPeriod_documentation_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xml:lang="en-US">Product warranty period.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductWarrantyPeriod" xlink:href="cgnx-20241231.xsd#cgnx_ProductWarrantyPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ProductWarrantyPeriod" xlink:to="lab_cgnx_ProductWarrantyPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentTransitionReport_1c646eed-9199-4f34-91e6-467723c809e7_terseLabel_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Document Transition Report</link:label>
    <link:label id="lab_dei_DocumentTransitionReport_label_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Document Transition Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentTransitionReport" xlink:to="lab_dei_DocumentTransitionReport" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_440d19bb-3f18-4331-b68b-3e9f1ab5edf9_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Unrecognized Tax Benefits Roll Forward</link:label>
    <link:label id="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_70ce419f-b191-46ae-bfd8-c2c72dc4b6d0_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xml:lang="en-US">Tax credits</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Credit, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_NameOfMajorCustomerDomain_17254712-2469-409b-81e0-d5c362b1f6f4_terseLabel_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Customer [Domain]</link:label>
    <link:label id="lab_srt_NameOfMajorCustomerDomain_label_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Customer [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_NameOfMajorCustomerDomain" xlink:to="lab_srt_NameOfMajorCustomerDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_a581f538-a652-4e7d-9527-3f44f56ce5cf_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Fair Value Measurements, Recurring and Nonrecurring [Table]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Fair Value, Recurring and Nonrecurring [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCurrentReportingStatus_0f9084bb-3d75-4e3d-81b1-8cc4dbdcc46a_terseLabel_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:label id="lab_dei_EntityCurrentReportingStatus_label_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCurrentReportingStatus" xlink:to="lab_dei_EntityCurrentReportingStatus" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsMember_d6230433-9aeb-4b70-aad4-36abd15c5bc8_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsMember_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsMember" xlink:to="lab_us-gaap_RetainedEarningsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameAxis_74a1fe03-9465-4c55-be5d-47ae54720a6a_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Income Tax Authority, Name [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameAxis_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Income Tax Authority, Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="lab_us-gaap_IncomeTaxAuthorityNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_af4c2a71-4518-4f0d-a4cb-257bd982f53c_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedStockUnitsRSUMember_11f3ffac-8066-411d-8ab2-f6b59a1b7446_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
    <link:label id="lab_us-gaap_RestrictedStockUnitsRSUMember_label_en-US" xlink:label="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:to="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_a5921d62-9f77-41d8-93c5-47c70d5534f5_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ExecutiveCategoryAxis_terseLabel_en-US" xlink:label="lab_ecd_ExecutiveCategoryAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Executive Category:</link:label>
    <link:label id="lab_ecd_ExecutiveCategoryAxis_label_en-US" xlink:label="lab_ecd_ExecutiveCategoryAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Executive Category [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ExecutiveCategoryAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ExecutiveCategoryAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ExecutiveCategoryAxis" xlink:to="lab_ecd_ExecutiveCategoryAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireInvestments_d3b788f5-83a6-494e-9cc3-df59a6264eba_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xml:lang="en-US">Purchases of investments</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireInvestments_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Payments to Acquire Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireInvestments" xlink:to="lab_us-gaap_PaymentsToAcquireInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_6d89fb31-3494-4deb-9dee-7cea22e1791f_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Constituents of Provision for Income Taxes</link:label>
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_e8a74e17-53da-4563-ae14-bbee60a90622_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xml:lang="en-US">Employee Service Share-based Compensation, Allocation of Recognized Period Costs, Report Line [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Statement of Income Location, Balance [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationDomain" xlink:to="lab_us-gaap_IncomeStatementLocationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CoSelectedMeasureName_terseLabel_en-US" xlink:label="lab_ecd_CoSelectedMeasureName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xml:lang="en-US">Company Selected Measure Name</link:label>
    <link:label id="lab_ecd_CoSelectedMeasureName_label_en-US" xlink:label="lab_ecd_CoSelectedMeasureName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xml:lang="en-US">Company Selected Measure Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CoSelectedMeasureName" xlink:to="lab_ecd_CoSelectedMeasureName" xlink:type="arc" order="1"/>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>13
<FILENAME>cgnx-20241231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2025 Workiva-->
<!--r:6abacc18-a2b7-49fc-a7c2-9a55de473aa7,g:b2bf2ad7-589f-41d7-85c1-902f84842ef8-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://cognex.com/role/CoverPage" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CoverPage"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CoverPage" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType_ca30b286-c5fe-470d-b9f8-84d722b17715" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_DocumentType_ca30b286-c5fe-470d-b9f8-84d722b17715" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport_f70c3752-7154-44a9-a92e-d053decb1bda" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentAnnualReport"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_DocumentAnnualReport_f70c3752-7154-44a9-a92e-d053decb1bda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate_b9749b57-7eb1-4eb7-97d7-3dbdfdb26799" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_DocumentPeriodEndDate_b9749b57-7eb1-4eb7-97d7-3dbdfdb26799" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport_ab038f54-ecbf-4013-9732-039126e68439" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentTransitionReport"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_DocumentTransitionReport_ab038f54-ecbf-4013-9732-039126e68439" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber_80164985-aa16-42ce-a1d2-8049598990f0" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityFileNumber_80164985-aa16-42ce-a1d2-8049598990f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName_84ee4065-1def-437a-aeb6-c3696210213f" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityRegistrantName_84ee4065-1def-437a-aeb6-c3696210213f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode_f6ba732e-bf74-472c-a603-ced7957ee365" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityIncorporationStateCountryCode_f6ba732e-bf74-472c-a603-ced7957ee365" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber_cbc8993e-7951-4a49-8918-ea85431c2686" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityTaxIdentificationNumber_cbc8993e-7951-4a49-8918-ea85431c2686" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1_5dc455cf-a16a-48d5-94a7-2ef57887ac2f" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityAddressAddressLine1_5dc455cf-a16a-48d5-94a7-2ef57887ac2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown_9ede4f2a-68f3-4865-a6e1-a4f661bd135d" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityAddressCityOrTown_9ede4f2a-68f3-4865-a6e1-a4f661bd135d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince_be5fa669-f841-490c-afde-aa52b1efe23b" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityAddressStateOrProvince_be5fa669-f841-490c-afde-aa52b1efe23b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode_0f177e69-67b8-459f-a6a9-f9e800c5f10a" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityAddressPostalZipCode_0f177e69-67b8-459f-a6a9-f9e800c5f10a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode_5f641cc1-5931-4705-8fd4-27773dda74ca" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_CityAreaCode_5f641cc1-5931-4705-8fd4-27773dda74ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber_d9c8ddfc-1ad7-4aac-8218-acfb432f2d74" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_LocalPhoneNumber_d9c8ddfc-1ad7-4aac-8218-acfb432f2d74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle_540b230c-d713-4399-9f24-abf27e26022c" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_Security12bTitle_540b230c-d713-4399-9f24-abf27e26022c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol_b09ab423-ccfb-48ca-90a3-c1fa98e8c6ea" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_TradingSymbol_b09ab423-ccfb-48ca-90a3-c1fa98e8c6ea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName_dd716790-2f04-4cec-95a3-17ebe0a4ffa4" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_SecurityExchangeName_dd716790-2f04-4cec-95a3-17ebe0a4ffa4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer_2baec839-4419-485c-bb69-7bd89f15da81" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityWellKnownSeasonedIssuer_2baec839-4419-485c-bb69-7bd89f15da81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers_e7f3d4ca-922d-4f42-928e-4d712b61fc89" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityVoluntaryFilers"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityVoluntaryFilers_e7f3d4ca-922d-4f42-928e-4d712b61fc89" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus_9c484c83-7a7f-4aec-975c-666e4b462bc9" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCurrentReportingStatus"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityCurrentReportingStatus_9c484c83-7a7f-4aec-975c-666e4b462bc9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent_bac26758-01fb-4624-a67c-16c35750ed92" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityInteractiveDataCurrent_bac26758-01fb-4624-a67c-16c35750ed92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory_448a8a99-ef5d-4483-ae5f-6130ee081e7c" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFilerCategory"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityFilerCategory_448a8a99-ef5d-4483-ae5f-6130ee081e7c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness_77e9ac83-d614-4e64-bf45-19dd6ccc7000" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntitySmallBusiness"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntitySmallBusiness_77e9ac83-d614-4e64-bf45-19dd6ccc7000" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany_f5507f84-cf85-4e8c-90f2-8be5b2746e82" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityEmergingGrowthCompany_f5507f84-cf85-4e8c-90f2-8be5b2746e82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag_dce76438-7980-4dc5-8832-14bf43b66d81" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_IcfrAuditorAttestationFlag_dce76438-7980-4dc5-8832-14bf43b66d81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany_f7ce8b81-fe0b-49c6-af21-7b068b48d4e1" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityShellCompany"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityShellCompany_f7ce8b81-fe0b-49c6-af21-7b068b48d4e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat_6fe20b85-bb82-410f-9a68-c4bca60426e8" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityPublicFloat"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityPublicFloat_6fe20b85-bb82-410f-9a68-c4bca60426e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_89a1d841-2cf1-4107-aa5d-83c84a8cfc38" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityCommonStockSharesOutstanding_89a1d841-2cf1-4107-aa5d-83c84a8cfc38" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey_0e13aca0-0a09-4759-8df9-12e954ec80aa" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_EntityCentralIndexKey_0e13aca0-0a09-4759-8df9-12e954ec80aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate_76a740bb-c16b-4daa-bd96-11cd1eb86135" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_CurrentFiscalYearEndDate_76a740bb-c16b-4daa-bd96-11cd1eb86135" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus_2ba96332-1415-48fd-bf3c-54a41b4cf498" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalYearFocus"/>
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_DocumentFiscalYearFocus_2ba96332-1415-48fd-bf3c-54a41b4cf498" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus_55f84c9f-9f66-47f4-acd0-14c4810a36d2" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:presentationArc order="32" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_DocumentFiscalPeriodFocus_55f84c9f-9f66-47f4-acd0-14c4810a36d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag_bd052d64-9556-46ef-8eb4-7706271b3745" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag"/>
    <link:presentationArc order="33" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_AmendmentFlag_bd052d64-9556-46ef-8eb4-7706271b3745" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFinStmtErrorCorrectionFlag_d11bf1a3-2331-4aca-8d09-b1de314cd622" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentFinStmtErrorCorrectionFlag"/>
    <link:presentationArc order="34" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d8fe8c43-0855-415a-93da-1ebfac518f48" xlink:to="loc_dei_DocumentFinStmtErrorCorrectionFlag_d11bf1a3-2331-4aca-8d09-b1de314cd622" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AuditInformation" xlink:type="simple" xlink:href="cgnx-20241231.xsd#AuditInformation"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AuditInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AuditInformationAbstract_264633dd-2a14-414e-8633-52b056c09bbf" xlink:href="cgnx-20241231.xsd#cgnx_AuditInformationAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName_54ade95c-e662-4929-a5c1-570a015674a9" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorName"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_AuditInformationAbstract_264633dd-2a14-414e-8633-52b056c09bbf" xlink:to="loc_dei_AuditorName_54ade95c-e662-4929-a5c1-570a015674a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation_d6cc4908-88e7-4508-a910-4b54ecf2fc38" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorLocation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_AuditInformationAbstract_264633dd-2a14-414e-8633-52b056c09bbf" xlink:to="loc_dei_AuditorLocation_d6cc4908-88e7-4508-a910-4b54ecf2fc38" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId_1ce440d4-f10e-4548-a55f-33faa2c307f8" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AuditorFirmId"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_AuditInformationAbstract_264633dd-2a14-414e-8633-52b056c09bbf" xlink:to="loc_dei_AuditorFirmId_1ce440d4-f10e-4548-a55f-33faa2c307f8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDSTATEMENTSOFOPERATIONS"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_b1929f3b-f7e0-4826-9216-a4ae77f01ed9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_b1929f3b-f7e0-4826-9216-a4ae77f01ed9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_f89f471c-609c-4218-854b-ca9e178f0b8d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_f89f471c-609c-4218-854b-ca9e178f0b8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_3882cc23-d8a3-49cc-811b-d6d95f52eb92" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_GrossProfit_3882cc23-d8a3-49cc-811b-d6d95f52eb92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_411d61f8-4f07-4ca4-910f-032368be0df8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_411d61f8-4f07-4ca4-910f-032368be0df8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_3acb1ae1-cfdf-417a-912f-e27f502e1537" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_3acb1ae1-cfdf-417a-912f-e27f502e1537" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LossGainFromCatastrophes_1854ec62-df08-4f83-a712-267d4a9b62d6" xlink:href="cgnx-20241231.xsd#cgnx_LossGainFromCatastrophes"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_cgnx_LossGainFromCatastrophes_1854ec62-df08-4f83-a712-267d4a9b62d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_f2d648e7-7d85-4f7a-b151-41ac7cc53183" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_RestructuringCharges_f2d648e7-7d85-4f7a-b151-41ac7cc53183" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_b4c1fd56-7c74-4023-94ea-c95ccce7fd85" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_OperatingIncomeLoss_b4c1fd56-7c74-4023-94ea-c95ccce7fd85" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_9b27fbaa-509c-4a6d-b110-398f9e6d123c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_9b27fbaa-509c-4a6d-b110-398f9e6d123c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_290399d7-b309-4c7e-9ae8-65b1ef15317b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_290399d7-b309-4c7e-9ae8-65b1ef15317b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_46dbf051-f46f-4a93-bc68-e4023118518e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_46dbf051-f46f-4a93-bc68-e4023118518e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_45d40e35-4b06-4918-a0a6-10e8e384eb39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_45d40e35-4b06-4918-a0a6-10e8e384eb39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_8fe1dbb1-605d-40a3-b2eb-42c78f4cee15" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_8fe1dbb1-605d-40a3-b2eb-42c78f4cee15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_63b438a9-5e84-4c3a-8bb1-afdcd7170214" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_NetIncomeLoss_63b438a9-5e84-4c3a-8bb1-afdcd7170214" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasicAbstract_b7744b94-2f7a-48fc-b50c-0e7451d54305" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasicAbstract"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_EarningsPerShareBasicAbstract_b7744b94-2f7a-48fc-b50c-0e7451d54305" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_4ff57ba1-b098-412f-9544-fa10831d6618" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareBasicAbstract_b7744b94-2f7a-48fc-b50c-0e7451d54305" xlink:to="loc_us-gaap_EarningsPerShareBasic_4ff57ba1-b098-412f-9544-fa10831d6618" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDilutedAbstract_b2e54cf5-7096-4b28-942d-b3b59096f84d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDilutedAbstract"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_EarningsPerShareDilutedAbstract_b2e54cf5-7096-4b28-942d-b3b59096f84d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_2bed2408-5fb6-4b80-81fb-a6da1f88930e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareDilutedAbstract_b2e54cf5-7096-4b28-942d-b3b59096f84d" xlink:to="loc_us-gaap_EarningsPerShareDiluted_2bed2408-5fb6-4b80-81fb-a6da1f88930e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_899045f0-4c65-41cd-9307-f03403b82ee2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_899045f0-4c65-41cd-9307-f03403b82ee2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_d64ba04f-e877-4c83-ace1-1022dffedf03" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_899045f0-4c65-41cd-9307-f03403b82ee2" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_d64ba04f-e877-4c83-ace1-1022dffedf03" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_adf471b5-0d99-46a7-ad94-634438e3c93f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_899045f0-4c65-41cd-9307-f03403b82ee2" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_adf471b5-0d99-46a7-ad94-634438e3c93f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_a99018a2-0a2f-422b-a989-702245f737f1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_2815e37a-5e46-4a21-ba45-a50e5100db7f" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_a99018a2-0a2f-422b-a989-702245f737f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_56d60da5-60ec-4f06-b1b1-b736a0972ff4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_f10c03c8-bfab-4518-9d55-c858d96d6b74" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_56d60da5-60ec-4f06-b1b1-b736a0972ff4" xlink:to="loc_us-gaap_NetIncomeLoss_f10c03c8-bfab-4518-9d55-c858d96d6b74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_a3a1b8fc-fa7e-4b49-8cd4-fb1cdb4076cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_56d60da5-60ec-4f06-b1b1-b736a0972ff4" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_a3a1b8fc-fa7e-4b49-8cd4-fb1cdb4076cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_330261fe-dcf3-487d-87df-7cb4f2f6398e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_a3a1b8fc-fa7e-4b49-8cd4-fb1cdb4076cf" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_330261fe-dcf3-487d-87df-7cb4f2f6398e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_3f339696-6cf9-425a-ba08-9d5eef1ce0d8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_a3a1b8fc-fa7e-4b49-8cd4-fb1cdb4076cf" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_3f339696-6cf9-425a-ba08-9d5eef1ce0d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_d7f2c709-80e3-4268-8706-a5fb077f9337" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_a3a1b8fc-fa7e-4b49-8cd4-fb1cdb4076cf" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_d7f2c709-80e3-4268-8706-a5fb077f9337" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CurrencytranslationadjustmentAbstract_d0c34a0d-1d03-4587-83dd-e0073728ce58" xlink:href="cgnx-20241231.xsd#cgnx_CurrencytranslationadjustmentAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_56d60da5-60ec-4f06-b1b1-b736a0972ff4" xlink:to="loc_cgnx_CurrencytranslationadjustmentAbstract_d0c34a0d-1d03-4587-83dd-e0073728ce58" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_87624a3a-cdea-4c35-ad72-362450d088bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract_d0c34a0d-1d03-4587-83dd-e0073728ce58" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_87624a3a-cdea-4c35-ad72-362450d088bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_dab447aa-23e5-4864-a57f-312067abbc00" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract_d0c34a0d-1d03-4587-83dd-e0073728ce58" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_dab447aa-23e5-4864-a57f-312067abbc00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_afda37f0-09cf-4f6f-a630-d32522ee1e7a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_56d60da5-60ec-4f06-b1b1-b736a0972ff4" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_afda37f0-09cf-4f6f-a630-d32522ee1e7a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_8bf92fa1-02fa-48b1-b715-b5cee97ec393" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_56d60da5-60ec-4f06-b1b1-b736a0972ff4" xlink:to="loc_us-gaap_ComprehensiveIncomeNetOfTax_8bf92fa1-02fa-48b1-b715-b5cee97ec393" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_6bf398d4-06b9-457d-bab9-5be54f496d65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_635d5c55-f446-4dc9-9c36-c441fd920e45" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_6bf398d4-06b9-457d-bab9-5be54f496d65" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_635d5c55-f446-4dc9-9c36-c441fd920e45" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDBALANCESHEETS"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_b1864fb0-276c-487d-92fd-fb1dac28a99f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_b1864fb0-276c-487d-92fd-fb1dac28a99f" xlink:to="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract_2767f3ca-e0df-493d-9e00-4fa6a9a7c829" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:to="loc_us-gaap_AssetsCurrentAbstract_2767f3ca-e0df-493d-9e00-4fa6a9a7c829" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_503b713f-87a1-425f-b911-5926c776f89d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2767f3ca-e0df-493d-9e00-4fa6a9a7c829" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_503b713f-87a1-425f-b911-5926c776f89d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_aa59f99f-4c9c-4cf0-b245-c1f97345df43" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2767f3ca-e0df-493d-9e00-4fa6a9a7c829" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_aa59f99f-4c9c-4cf0-b245-c1f97345df43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_ce6e8bba-9a8f-4fd8-b4e6-9e9ed4277e1b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2767f3ca-e0df-493d-9e00-4fa6a9a7c829" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_ce6e8bba-9a8f-4fd8-b4e6-9e9ed4277e1b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_7c7bb6ea-467b-4546-bf04-16ece51b3ceb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2767f3ca-e0df-493d-9e00-4fa6a9a7c829" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_7c7bb6ea-467b-4546-bf04-16ece51b3ceb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_4db2c58c-49af-48da-a333-182dea951113" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2767f3ca-e0df-493d-9e00-4fa6a9a7c829" xlink:to="loc_us-gaap_InventoryNet_4db2c58c-49af-48da-a333-182dea951113" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_0fe7ac73-6aff-432d-acf8-a5a8c0089713" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2767f3ca-e0df-493d-9e00-4fa6a9a7c829" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_0fe7ac73-6aff-432d-acf8-a5a8c0089713" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_7cb7f99e-5695-405b-bcb4-151c9f41d4a3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsCurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_2767f3ca-e0df-493d-9e00-4fa6a9a7c829" xlink:to="loc_us-gaap_AssetsCurrent_7cb7f99e-5695-405b-bcb4-151c9f41d4a3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_a987bc2b-3380-40cb-adad-aee2da34a2c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermInvestments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:to="loc_us-gaap_LongTermInvestments_a987bc2b-3380-40cb-adad-aee2da34a2c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_883a1f4b-bd87-4815-b384-989dc090f36c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_883a1f4b-bd87-4815-b384-989dc090f36c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_c2632b90-c67f-4a82-bf40-1870f5fe0cbf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_c2632b90-c67f-4a82-bf40-1870f5fe0cbf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_ae528949-e8e9-465f-8869-fd9c822d4917" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:to="loc_us-gaap_Goodwill_ae528949-e8e9-465f-8869-fd9c822d4917" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_2dfe8cc8-1ae6-458a-b15c-46adc4f7c5d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:to="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_2dfe8cc8-1ae6-458a-b15c-46adc4f7c5d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxAssetsNet_bb6b1c49-bdb8-4dd5-b125-de59610a7fb4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxAssetsNet"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:to="loc_us-gaap_DeferredIncomeTaxAssetsNet_bb6b1c49-bdb8-4dd5-b125-de59610a7fb4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_32239207-89d8-413c-8377-573d15f37ec1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_32239207-89d8-413c-8377-573d15f37ec1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_aef5fc96-afdb-42b8-b3c3-e02fea91662a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Assets"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_37e3b62f-cbd4-4001-a2c3-99ee3055d44d" xlink:to="loc_us-gaap_Assets_aef5fc96-afdb-42b8-b3c3-e02fea91662a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_b1864fb0-276c-487d-92fd-fb1dac28a99f" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract_84ee9955-ba6f-4ec9-92fd-9b76c657c6c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_LiabilitiesCurrentAbstract_84ee9955-ba6f-4ec9-92fd-9b76c657c6c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_373e3e01-71c5-4878-a99e-8690001aa475" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_84ee9955-ba6f-4ec9-92fd-9b76c657c6c5" xlink:to="loc_us-gaap_AccountsPayableCurrent_373e3e01-71c5-4878-a99e-8690001aa475" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_88391152-9c8e-4bec-a603-89ea69bc1d10" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_84ee9955-ba6f-4ec9-92fd-9b76c657c6c5" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_88391152-9c8e-4bec-a603-89ea69bc1d10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_a5c2708f-e5a6-4bf8-a2c1-aa9d3a40deae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedIncomeTaxesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_84ee9955-ba6f-4ec9-92fd-9b76c657c6c5" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_a5c2708f-e5a6-4bf8-a2c1-aa9d3a40deae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_b85a9ada-219d-4a4f-859e-ecd39b1798eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_84ee9955-ba6f-4ec9-92fd-9b76c657c6c5" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_b85a9ada-219d-4a4f-859e-ecd39b1798eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_cc337007-5b15-4b5c-8a7a-3a0e6f6f20f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_84ee9955-ba6f-4ec9-92fd-9b76c657c6c5" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_cc337007-5b15-4b5c-8a7a-3a0e6f6f20f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_707f51ef-d0e0-4534-8bcb-a094e7da3b2a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_84ee9955-ba6f-4ec9-92fd-9b76c657c6c5" xlink:to="loc_us-gaap_LiabilitiesCurrent_707f51ef-d0e0-4534-8bcb-a094e7da3b2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_05e695ed-8109-43c1-9e67-4735bd63070b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_05e695ed-8109-43c1-9e67-4735bd63070b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_3600f0b6-df1c-4d60-9de2-a03ad1268c53" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_3600f0b6-df1c-4d60-9de2-a03ad1268c53" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_7f4bc79b-cfe3-47b5-87c1-d2043017a986" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_7f4bc79b-cfe3-47b5-87c1-d2043017a986" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent_2650a3a2-199c-4300-b063-1addd489496d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedIncomeTaxesNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_AccruedIncomeTaxesNoncurrent_2650a3a2-199c-4300-b063-1addd489496d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_b8a1d658-8d7d-469c-a3c5-138cf976dca8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_b8a1d658-8d7d-469c-a3c5-138cf976dca8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_bfccfc56-3be1-4d0d-b418-c2919323e2ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Liabilities"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_Liabilities_bfccfc56-3be1-4d0d-b418-c2919323e2ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_8c096005-4a57-4878-86e9-15d4f6888ddf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_CommitmentsAndContingencies_8c096005-4a57-4878-86e9-15d4f6888ddf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_8a1d67e2-9ef1-49d8-bd66-55d95f8e2c04" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_8a1d67e2-9ef1-49d8-bd66-55d95f8e2c04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_1faffea2-aeda-4caf-a4e3-dbb0f86a2c65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_1faffea2-aeda-4caf-a4e3-dbb0f86a2c65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract_40926372-3b1b-4b8e-ad95-4a280bdb2a0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_StockholdersEquityAbstract_40926372-3b1b-4b8e-ad95-4a280bdb2a0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValueOutstanding_4b42a972-0ffc-4470-a960-4c3c6698a8b9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockValueOutstanding"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_40926372-3b1b-4b8e-ad95-4a280bdb2a0b" xlink:to="loc_us-gaap_PreferredStockValueOutstanding_4b42a972-0ffc-4470-a960-4c3c6698a8b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValueOutstanding_f511590a-24be-4c99-96eb-b622e0c6004a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockValueOutstanding"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_40926372-3b1b-4b8e-ad95-4a280bdb2a0b" xlink:to="loc_us-gaap_CommonStockValueOutstanding_f511590a-24be-4c99-96eb-b622e0c6004a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_a0c08b4e-5cfe-4cd5-9378-8dfd12280a39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalCommonStock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_40926372-3b1b-4b8e-ad95-4a280bdb2a0b" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_a0c08b4e-5cfe-4cd5-9378-8dfd12280a39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_f61c3e16-37ec-46c0-8f94-153fb81ec93f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_40926372-3b1b-4b8e-ad95-4a280bdb2a0b" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_f61c3e16-37ec-46c0-8f94-153fb81ec93f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_e8b76338-f075-4ecd-8bd3-5b93ce3eb021" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_40926372-3b1b-4b8e-ad95-4a280bdb2a0b" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_e8b76338-f075-4ecd-8bd3-5b93ce3eb021" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_a46d020f-0c79-4ca6-9d17-98ed9faef7bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_40926372-3b1b-4b8e-ad95-4a280bdb2a0b" xlink:to="loc_us-gaap_StockholdersEquity_a46d020f-0c79-4ca6-9d17-98ed9faef7bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_20df2968-017e-4e27-926c-9d786fa8f30c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_13ccaf45-1ede-431c-aa11-1e1ca258d9ae" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquity_20df2968-017e-4e27-926c-9d786fa8f30c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDBALANCESHEETSParenthetical"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_f2c71ebf-daf4-4aea-a2d0-24565e790bd6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_f2c71ebf-daf4-4aea-a2d0-24565e790bd6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_4fb27501-8f45-4421-9cca-103975a12f39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_4fb27501-8f45-4421-9cca-103975a12f39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_532eca98-d033-4c05-8172-7d9f48fdabcf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_532eca98-d033-4c05-8172-7d9f48fdabcf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_9cb2ef85-9664-401e-ace5-1bbb651f8e59" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_9cb2ef85-9664-401e-ace5-1bbb651f8e59" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_6f79c350-10c7-4bb8-9217-b45bc6ee6f16" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_6f79c350-10c7-4bb8-9217-b45bc6ee6f16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued_22a3ff26-7ace-40dd-bf07-4f89ede91823" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_PreferredStockSharesIssued_22a3ff26-7ace-40dd-bf07-4f89ede91823" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding_eae5db80-cc96-4698-a239-5ed671765e5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_PreferredStockSharesOutstanding_eae5db80-cc96-4698-a239-5ed671765e5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_0f3ed6cb-6a3a-482c-856d-f7b732f909d2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_0f3ed6cb-6a3a-482c-856d-f7b732f909d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_6d888aca-7b4f-45d7-b9d3-5fc26ee89501" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_6d888aca-7b4f-45d7-b9d3-5fc26ee89501" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_ccecd25e-0792-426c-80b5-cb43c39d33e9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_CommonStockSharesIssued_ccecd25e-0792-426c-80b5-cb43c39d33e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding_1ce7b166-bfd2-45fd-b296-ed529bfd4938" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_cc73fbda-6f0f-4cd0-b431-0310276d9c89" xlink:to="loc_us-gaap_CommonStockSharesOutstanding_1ce7b166-bfd2-45fd-b296-ed529bfd4938" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDSTATEMENTSOFCASHFLOWS"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract_d9391923-0b4d-4b7d-9aeb-7b080f5ae9cb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_ba0d6b68-12fe-42cc-b5b8-093e2dc7ca0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_d9391923-0b4d-4b7d-9aeb-7b080f5ae9cb" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_ba0d6b68-12fe-42cc-b5b8-093e2dc7ca0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_c9251a4c-74c0-4527-aedc-a688f14014d2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_ba0d6b68-12fe-42cc-b5b8-093e2dc7ca0a" xlink:to="loc_us-gaap_NetIncomeLoss_c9251a4c-74c0-4527-aedc-a688f14014d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_ba0d6b68-12fe-42cc-b5b8-093e2dc7ca0a" xlink:to="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockOptionPlanExpense_519860f1-a0be-4af0-abd0-4de351362e6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockOptionPlanExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_StockOptionPlanExpense_519860f1-a0be-4af0-abd0-4de351362e6c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_84e24f84-ada0-4560-aa26-050288b03e09" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Depreciation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_Depreciation_84e24f84-ada0-4560-aa26-050288b03e09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_a423bb6b-d785-4bfa-911c-2831429bc568" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_a423bb6b-d785-4bfa-911c-2831429bc568" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_6807c86f-d879-4dfb-aceb-32b485932ac4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_6807c86f-d879-4dfb-aceb-32b485932ac4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NonCashLossFromCatastrophes_6df5d5f7-4792-4f1b-867c-2b5c11593c54" xlink:href="cgnx-20241231.xsd#cgnx_NonCashLossFromCatastrophes"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_cgnx_NonCashLossFromCatastrophes_6df5d5f7-4792-4f1b-867c-2b5c11593c54" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges_54f1634a-a786-4b0a-95ab-ba824fe05710" xlink:href="cgnx-20241231.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_cgnx_ExcessAndObsoleteInventoryCharges_54f1634a-a786-4b0a-95ab-ba824fe05710" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_FairValueAdjustmentOnAcquiredInventories_a0c4447c-09d9-447d-b699-6bd7d4071f12" xlink:href="cgnx-20241231.xsd#cgnx_FairValueAdjustmentOnAcquiredInventories"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_cgnx_FairValueAdjustmentOnAcquiredInventories_a0c4447c-09d9-447d-b699-6bd7d4071f12" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_8573f5d5-26e6-48fd-ae8b-d6a2a519c851" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_8573f5d5-26e6-48fd-ae8b-d6a2a519c851" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_a5243c13-ad31-4ff6-8b68-f3a2108a3536" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnSaleOfInvestments"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_a5243c13-ad31-4ff6-8b68-f3a2108a3536" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_b31a987f-c9fa-4778-bbdf-3d7cec120959" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_b31a987f-c9fa-4778-bbdf-3d7cec120959" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_463622b4-990c-4d9c-b591-f95ac4595043" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_463622b4-990c-4d9c-b591-f95ac4595043" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_9b248c52-f828-4337-b79a-004fe187ba75" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_9b248c52-f828-4337-b79a-004fe187ba75" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_67931499-e513-4522-ad7d-c38c272af4a4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_67931499-e513-4522-ad7d-c38c272af4a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_2299b495-c47b-419b-a823-b1469b99b03b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_2299b495-c47b-419b-a823-b1469b99b03b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_3a576af1-2df0-4ebb-9f9b-b438cbd6f1a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_3a576af1-2df0-4ebb-9f9b-b438cbd6f1a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_ee29528e-a698-45e7-9f61-a1ed91ccfd19" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_ee29528e-a698-45e7-9f61-a1ed91ccfd19" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_9e0b620a-3b03-4e5c-a402-927085129058" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_9e0b620a-3b03-4e5c-a402-927085129058" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_2ea6b3a8-0ab3-47c6-abf3-7e1de1fda50b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_2ea6b3a8-0ab3-47c6-abf3-7e1de1fda50b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_daad7451-8ec2-406b-ae3e-92fd3909f224" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_d91780a3-0182-4c02-b299-8d6374e3a210" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_daad7451-8ec2-406b-ae3e-92fd3909f224" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_6792db17-b7e1-4f41-aeaf-ee452b33c555" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_ba0d6b68-12fe-42cc-b5b8-093e2dc7ca0a" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_6792db17-b7e1-4f41-aeaf-ee452b33c555" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_c1f3ebf4-e53d-4849-9076-249a1deabcf9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_d9391923-0b4d-4b7d-9aeb-7b080f5ae9cb" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_c1f3ebf4-e53d-4849-9076-249a1deabcf9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_a46280dc-6d6a-4ed4-9c62-58ead701a5b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireInvestments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_c1f3ebf4-e53d-4849-9076-249a1deabcf9" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_a46280dc-6d6a-4ed4-9c62-58ead701a5b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_6d8665b4-746f-4c12-b6f4-3dbf843e84d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_c1f3ebf4-e53d-4849-9076-249a1deabcf9" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_6d8665b4-746f-4c12-b6f4-3dbf843e84d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_c11d5374-9c54-4643-b7c7-708c9e361af5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_c1f3ebf4-e53d-4849-9076-249a1deabcf9" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_c11d5374-9c54-4643-b7c7-708c9e361af5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_7ae418eb-801b-4641-a4e3-9a1363bbac84" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_c1f3ebf4-e53d-4849-9076-249a1deabcf9" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_7ae418eb-801b-4641-a4e3-9a1363bbac84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_170ea9fd-eb1c-497b-8d85-b38ed895fb00" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_c1f3ebf4-e53d-4849-9076-249a1deabcf9" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_170ea9fd-eb1c-497b-8d85-b38ed895fb00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_fe52186c-1343-43ec-b6f7-66d92c00a3bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_d9391923-0b4d-4b7d-9aeb-7b080f5ae9cb" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_fe52186c-1343-43ec-b6f7-66d92c00a3bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_bfd6a10a-8bc8-45d9-afed-cd66db6d6ff7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_fe52186c-1343-43ec-b6f7-66d92c00a3bf" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_bfd6a10a-8bc8-45d9-afed-cd66db6d6ff7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_a211b99a-72b9-4ca4-968e-1550e4c2106b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_fe52186c-1343-43ec-b6f7-66d92c00a3bf" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_a211b99a-72b9-4ca4-968e-1550e4c2106b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_fa277ccc-8853-4c80-8355-88b5f311de7a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDividendsCommonStock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_fe52186c-1343-43ec-b6f7-66d92c00a3bf" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_fa277ccc-8853-4c80-8355-88b5f311de7a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_71d6a60c-178f-498c-b4df-6e555c1c0f0f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_fe52186c-1343-43ec-b6f7-66d92c00a3bf" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_71d6a60c-178f-498c-b4df-6e555c1c0f0f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_b516147a-a7ae-412a-b316-49c069a54191" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_d9391923-0b4d-4b7d-9aeb-7b080f5ae9cb" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_b516147a-a7ae-412a-b316-49c069a54191" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_ce191ae1-bf5c-4901-baee-84a5a93a3a3a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_d9391923-0b4d-4b7d-9aeb-7b080f5ae9cb" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_ce191ae1-bf5c-4901-baee-84a5a93a3a3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_8fa350c2-75a8-4a50-ba85-186ab093a43b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_d9391923-0b4d-4b7d-9aeb-7b080f5ae9cb" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_8fa350c2-75a8-4a50-ba85-186ab093a43b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_1e4bbd87-2348-444d-aef6-c90e8ca252f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_d9391923-0b4d-4b7d-9aeb-7b080f5ae9cb" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_1e4bbd87-2348-444d-aef6-c90e8ca252f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_c8b3edd0-6b9c-4c92-a1b4-753df076f953" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_0218d78a-d159-4398-97a3-c77d822157b2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_c8b3edd0-6b9c-4c92-a1b4-753df076f953" xlink:to="loc_us-gaap_StatementTable_0218d78a-d159-4398-97a3-c77d822157b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_f9436399-28d7-4f3f-a105-10a55a34e891" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_0218d78a-d159-4398-97a3-c77d822157b2" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_f9436399-28d7-4f3f-a105-10a55a34e891" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_f9436399-28d7-4f3f-a105-10a55a34e891" xlink:to="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_79555d99-94b1-4f66-aa6b-747615d47fed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:to="loc_us-gaap_CommonStockMember_79555d99-94b1-4f66-aa6b-747615d47fed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_4a867b13-7d29-4cc3-8590-01d7f9fa4153" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_4a867b13-7d29-4cc3-8590-01d7f9fa4153" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_2f9dad80-923d-4bca-8c92-c8c418e149bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RetainedEarningsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:to="loc_us-gaap_RetainedEarningsMember_2f9dad80-923d-4bca-8c92-c8c418e149bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_81c525b8-2b48-4af9-aa26-4f46022875bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_8e3d1e04-f1a3-497b-9509-53168b05efbb" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_81c525b8-2b48-4af9-aa26-4f46022875bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_1925c074-67aa-4e36-be99-2f1cf7d11c3b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_0218d78a-d159-4398-97a3-c77d822157b2" xlink:to="loc_us-gaap_StatementLineItems_1925c074-67aa-4e36-be99-2f1cf7d11c3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_1925c074-67aa-4e36-be99-2f1cf7d11c3b" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_4573c4a2-228d-437e-b0b3-a117891378fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockholdersEquity_4573c4a2-228d-437e-b0b3-a117891378fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_8dad052c-f5d5-474e-ac9c-af34af5b1b0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_CommonStockSharesIssued_8dad052c-f5d5-474e-ac9c-af34af5b1b0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_79eb311f-8d4d-4784-9081-45f79e77223f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_79eb311f-8d4d-4784-9081-45f79e77223f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_b7a5108e-db18-42b5-b374-24d29926b11f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_b7a5108e-db18-42b5-b374-24d29926b11f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_9fa9170f-b551-42c9-a13d-9dbf304535a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_9fa9170f-b551-42c9-a13d-9dbf304535a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_f864b4ed-1845-4207-b87b-0696662d3de3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_f864b4ed-1845-4207-b87b-0696662d3de3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_5a12e630-a1a9-4a2f-83fd-5be07aaccf9c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_5a12e630-a1a9-4a2f-83fd-5be07aaccf9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCommonStockCash_9b717e70-ede0-4541-8556-ab6fd6147b9a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsCommonStockCash"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_DividendsCommonStockCash_9b717e70-ede0-4541-8556-ab6fd6147b9a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_e36c8541-22f0-4fd7-a91d-2920cb2f9eb7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_NetIncomeLoss_e36c8541-22f0-4fd7-a91d-2920cb2f9eb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_7fbcacd4-38d4-4aae-883f-052c8938a44d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_7fbcacd4-38d4-4aae-883f-052c8938a44d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_7921ede6-e03e-442b-bc43-7e9ed9a8cf21" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_7921ede6-e03e-442b-bc43-7e9ed9a8cf21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_cb5777ab-523a-4ff7-b295-329e70223d71" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_cb5777ab-523a-4ff7-b295-329e70223d71" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_48ae6db2-0607-459d-80f5-fb88b52b7bd3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_48ae6db2-0607-459d-80f5-fb88b52b7bd3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_67ac9c9a-0d7d-4cfd-8139-c41664e1dd65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_StockholdersEquity_67ac9c9a-0d7d-4cfd-8139-c41664e1dd65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_9104ed09-9bf8-4635-bec0-adabc9982e86" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_bf1c6527-31b3-4fd6-800f-58701a94c3b9" xlink:to="loc_us-gaap_CommonStockSharesIssued_9104ed09-9bf8-4635-bec0-adabc9982e86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_7bcc6457-d73c-4def-8993-1b6794488a01" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_2155f923-b1f8-4458-9269-08d90e058cd2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_7bcc6457-d73c-4def-8993-1b6794488a01" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_2155f923-b1f8-4458-9269-08d90e058cd2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_582a7a1a-7248-45bc-a748-3b629f8cd6ff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_7bcc6457-d73c-4def-8993-1b6794488a01" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_582a7a1a-7248-45bc-a748-3b629f8cd6ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPolicies" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPolicies"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_761330d2-51d0-46f1-ae8d-08ed9d818f2e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SignificantAccountingPoliciesTextBlock_5f97822f-4af6-4946-8631-d08bc4740314" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SignificantAccountingPoliciesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_761330d2-51d0-46f1-ae8d-08ed9d818f2e" xlink:to="loc_us-gaap_SignificantAccountingPoliciesTextBlock_5f97822f-4af6-4946-8631-d08bc4740314" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncements" xlink:type="simple" xlink:href="cgnx-20241231.xsd#NewPronouncements"/>
  <link:presentationLink xlink:role="http://cognex.com/role/NewPronouncements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_78ce2cc4-1bb6-4fe5-9c25-2f7d058d6145" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_e3c038ce-c13d-4fdf-846c-349effb7fab9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_78ce2cc4-1bb6-4fe5-9c25-2f7d058d6145" xlink:to="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_e3c038ce-c13d-4fdf-846c-349effb7fab9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurements" xlink:type="simple" xlink:href="cgnx-20241231.xsd#FairValueMeasurements"/>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_0fbc3a37-053f-4474-b2de-8896a4a8f247" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresTextBlock_51eb8558-642b-43cd-af30-8f4c41553c8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_0fbc3a37-053f-4474-b2de-8896a4a8f247" xlink:to="loc_us-gaap_FairValueDisclosuresTextBlock_51eb8558-642b-43cd-af30-8f4c41553c8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestments" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestments"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestments" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_ac562897-4cf1-4efe-bbf6-650ce47bbbad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_c6be38c6-0461-43f9-a874-9b1f82d1a098" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_ac562897-4cf1-4efe-bbf6-650ce47bbbad" xlink:to="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_c6be38c6-0461-43f9-a874-9b1f82d1a098" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/Inventories" xlink:type="simple" xlink:href="cgnx-20241231.xsd#Inventories"/>
  <link:presentationLink xlink:role="http://cognex.com/role/Inventories" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_cabdb8ad-f0bd-4178-a702-880bad013072" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureTextBlock_71be6b79-d9bd-448e-9447-7f3587e736cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_cabdb8ad-f0bd-4178-a702-880bad013072" xlink:to="loc_us-gaap_InventoryDisclosureTextBlock_71be6b79-d9bd-448e-9447-7f3587e736cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipment" xlink:type="simple" xlink:href="cgnx-20241231.xsd#PropertyPlantandEquipment"/>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantandEquipment" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_ac9d3b59-a73b-4fa7-95c7-ef301a963f74" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_c0de018b-6dc4-493b-ae95-3b7a1f8a2133" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_ac9d3b59-a73b-4fa7-95c7-ef301a963f74" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_c0de018b-6dc4-493b-ae95-3b7a1f8a2133" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesLeases" xlink:type="simple" xlink:href="cgnx-20241231.xsd#LeasesLeases"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesLeases" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_ccac3a76-61d0-4618-89ff-7898848b46b8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeasesTextBlock_7ca35b80-c275-445d-b70e-2fe22ccd785a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeasesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_ccac3a76-61d0-4618-89ff-7898848b46b8" xlink:to="loc_us-gaap_LesseeOperatingLeasesTextBlock_7ca35b80-c275-445d-b70e-2fe22ccd785a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/Goodwill" xlink:type="simple" xlink:href="cgnx-20241231.xsd#Goodwill"/>
  <link:presentationLink xlink:role="http://cognex.com/role/Goodwill" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_edfb1e33-9951-46cb-b645-6e53675e2398" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillDisclosureTextBlock_d163598d-dec4-48e8-87d4-2cc18a9a5ca4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_edfb1e33-9951-46cb-b645-6e53675e2398" xlink:to="loc_us-gaap_GoodwillDisclosureTextBlock_d163598d-dec4-48e8-87d4-2cc18a9a5ca4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssets" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IntangibleAssets"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_5e9e9de9-cd7e-477b-842d-362f572fe477" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_4702d643-cb48-47cd-a2e4-49572f6b2d76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_5e9e9de9-cd7e-477b-842d-362f572fe477" xlink:to="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_4702d643-cb48-47cd-a2e4-49572f6b2d76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpenses" xlink:type="simple" xlink:href="cgnx-20241231.xsd#AccruedExpenses"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpenses" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_dcf1b1fd-c01a-4404-81f8-a386a77137c6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_10ff9990-c48d-4d2a-a35e-39eeedcd847c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_dcf1b1fd-c01a-4404-81f8-a386a77137c6" xlink:to="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_10ff9990-c48d-4d2a-a35e-39eeedcd847c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsandContingencies" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CommitmentsandContingencies"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CommitmentsandContingencies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_167b1d51-f81b-4425-99ad-6ed829eaa88f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_1de4348e-7b19-461d-9130-014dcdc3e720" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_167b1d51-f81b-4425-99ad-6ed829eaa88f" xlink:to="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_1de4348e-7b19-461d-9130-014dcdc3e720" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisions" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IndemnificationProvisions"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IndemnificationProvisions" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GuaranteesAbstract_abb34d5f-2d36-4753-bb61-38773f2d90e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GuaranteesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IndemnificationProvisionsTextBlock_ef5659c1-e652-4603-af5a-ead9616d2fb6" xlink:href="cgnx-20241231.xsd#cgnx_IndemnificationProvisionsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GuaranteesAbstract_abb34d5f-2d36-4753-bb61-38773f2d90e3" xlink:to="loc_cgnx_IndemnificationProvisionsTextBlock_ef5659c1-e652-4603-af5a-ead9616d2fb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstruments" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstruments"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstruments" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_7358181e-4e7e-4a30-8277-1d78857ca338" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_7c00639a-32d0-4ae4-a4ca-7293dc1e9395" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_7358181e-4e7e-4a30-8277-1d78857ca338" xlink:to="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_7c00639a-32d0-4ae4-a4ca-7293dc1e9395" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognition" xlink:type="simple" xlink:href="cgnx-20241231.xsd#RevenueRecognition"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognition" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_c8340f03-b745-4078-bcc3-3dfed2a7da8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_654a1d86-3702-4f03-aa39-8b6f12d631ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_c8340f03-b745-4078-bcc3-3dfed2a7da8a" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_654a1d86-3702-4f03-aa39-8b6f12d631ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquity" xlink:type="simple" xlink:href="cgnx-20241231.xsd#ShareholdersEquity"/>
  <link:presentationLink xlink:role="http://cognex.com/role/ShareholdersEquity" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_847f0c71-2b4c-4602-a879-63a5ffef01d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_f330921c-6d3c-4485-9d6d-013c554e47e8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_847f0c71-2b4c-4602-a879-63a5ffef01d6" xlink:to="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_f330921c-6d3c-4485-9d6d-013c554e47e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_1ef50eff-8616-4e96-a71c-c0f724e3b8d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockholdersEquityNoteDisclosureTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_847f0c71-2b4c-4602-a879-63a5ffef01d6" xlink:to="loc_us-gaap_StockholdersEquityNoteDisclosureTextBlock_1ef50eff-8616-4e96-a71c-c0f724e3b8d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensation" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensation"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_88ea9f81-14ae-477d-a229-84e596d649c3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_2eccb45d-721a-4921-93d2-c5be8612a112" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_88ea9f81-14ae-477d-a229-84e596d649c3" xlink:to="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_2eccb45d-721a-4921-93d2-c5be8612a112" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlan" xlink:type="simple" xlink:href="cgnx-20241231.xsd#EmployeeSavingsPlan"/>
  <link:presentationLink xlink:role="http://cognex.com/role/EmployeeSavingsPlan" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_4657e180-dae1-409d-b91f-5dde6d9b87e6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_c7fee0eb-92f2-4067-a7e4-4fbaf84bcf94" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_4657e180-dae1-409d-b91f-5dde6d9b87e6" xlink:to="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_c7fee0eb-92f2-4067-a7e4-4fbaf84bcf94" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxes" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxes"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_bbef3e93-1ad3-4a81-a081-97ca528bf982" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock_fc5f34f3-fe3e-4f5d-85cb-e7d34d84d2c0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_bbef3e93-1ad3-4a81-a081-97ca528bf982" xlink:to="loc_us-gaap_IncomeTaxDisclosureTextBlock_fc5f34f3-fe3e-4f5d-85cb-e7d34d84d2c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageShares" xlink:type="simple" xlink:href="cgnx-20241231.xsd#WeightedAverageShares"/>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageShares" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_5a2699de-d012-4c9d-9fd8-8868d1f8caca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock_47dd334b-4eb1-41bc-8be9-fe81f9f96891" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_5a2699de-d012-4c9d-9fd8-8868d1f8caca" xlink:to="loc_us-gaap_EarningsPerShareTextBlock_47dd334b-4eb1-41bc-8be9-fe81f9f96891" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformation" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SegmentandGeographicInformation"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentandGeographicInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_6020cfb0-78a0-46a1-9e5e-4d16caecef85" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock_1e9b936b-2b7f-46f9-ac4c-83e2cffcc0dc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_6020cfb0-78a0-46a1-9e5e-4d16caecef85" xlink:to="loc_us-gaap_SegmentReportingDisclosureTextBlock_1e9b936b-2b7f-46f9-ac4c-83e2cffcc0dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitions" xlink:type="simple" xlink:href="cgnx-20241231.xsd#BusinessAcquisitions"/>
  <link:presentationLink xlink:role="http://cognex.com/role/BusinessAcquisitions" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_1d9e7588-17a8-4e60-824a-2cc3d6bf7d2e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationDisclosureTextBlock_417b0175-d0f9-469c-a3b7-27d97a423d4e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_1d9e7588-17a8-4e60-824a-2cc3d6bf7d2e" xlink:to="loc_us-gaap_BusinessCombinationDisclosureTextBlock_417b0175-d0f9-469c-a3b7-27d97a423d4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LossfromFire" xlink:type="simple" xlink:href="cgnx-20241231.xsd#LossfromFire"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LossfromFire" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_dc1cb36e-720d-4739-941a-97dd26c5e08d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherLiabilitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CatastropheTextBlock_9b838d5a-3e81-4119-bae1-a87ac5887f72" xlink:href="cgnx-20241231.xsd#cgnx_CatastropheTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_dc1cb36e-720d-4739-941a-97dd26c5e08d" xlink:to="loc_cgnx_CatastropheTextBlock_9b838d5a-3e81-4119-bae1-a87ac5887f72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEvents" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SubsequentEvents"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SubsequentEvents" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract_96f979b3-a1c2-44f8-b273-ba7de956ba5c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock_664f2801-b493-4880-bd08-ddfe157d0b80" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_96f979b3-a1c2-44f8-b273-ba7de956ba5c" xlink:to="loc_us-gaap_SubsequentEventsTextBlock_664f2801-b493-4880-bd08-ddfe157d0b80" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts" xlink:type="simple" xlink:href="cgnx-20241231.xsd#ScheduleIIValuationandQualifyingAccounts"/>
  <link:presentationLink xlink:role="http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract_84ed79e4-5af6-4ff0-84af-dae795fc0075" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_63e112d4-7468-48fd-bc32-108978578d76" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract_84ed79e4-5af6-4ff0-84af-dae795fc0075" xlink:to="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_63e112d4-7468-48fd-bc32-108978578d76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesPolicies"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NatureOfOperationsPolicyTextBlock_541d5c5f-59b4-4a77-81fe-6372dc27c602" xlink:href="cgnx-20241231.xsd#cgnx_NatureOfOperationsPolicyTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_cgnx_NatureOfOperationsPolicyTextBlock_541d5c5f-59b4-4a77-81fe-6372dc27c602" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates_68e3948d-9a24-4e9e-99d7-f40e40319532" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UseOfEstimates"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_UseOfEstimates_68e3948d-9a24-4e9e-99d7-f40e40319532" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConsolidationPolicyTextBlock_1562854b-a1f9-4285-a00d-737bce8d6c3e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConsolidationPolicyTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_ConsolidationPolicyTextBlock_1562854b-a1f9-4285-a00d-737bce8d6c3e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_6e140d30-1100-418b-88b7-cf73b60fb8a9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_6e140d30-1100-418b-88b7-cf73b60fb8a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_cb2b90e8-68fb-44c0-8ded-c115d174eb5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_cb2b90e8-68fb-44c0-8ded-c115d174eb5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_6279bdc4-55ec-4205-ae5c-128148349cba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_6279bdc4-55ec-4205-ae5c-128148349cba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentPolicyTextBlock_04760611-ae53-4671-aa62-82b1916f470a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentPolicyTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_InvestmentPolicyTextBlock_04760611-ae53-4671-aa62-82b1916f470a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy_0c3a0080-25f5-4ca1-bbfa-0c5839ed7f3d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy_0c3a0080-25f5-4ca1-bbfa-0c5839ed7f3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock_ce3b7234-b6ed-462f-9f18-718391cc77d5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_InventoryPolicyTextBlock_ce3b7234-b6ed-462f-9f18-718391cc77d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_4ee5514d-2028-4d0e-9455-3c3a2ea11a1b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_4ee5514d-2028-4d0e-9455-3c3a2ea11a1b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InternalUseSoftwarePolicy_304687be-7c8d-4792-8538-0ccd3ed4f737" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InternalUseSoftwarePolicy"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_InternalUseSoftwarePolicy_304687be-7c8d-4792-8538-0ccd3ed4f737" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock_15b114a7-d4c4-46dc-bb5b-6f0b93687b86" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_LesseeLeasesPolicyTextBlock_15b114a7-d4c4-46dc-bb5b-6f0b93687b86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_9f3012bc-94c5-4a4a-bf67-6b2db3791993" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_9f3012bc-94c5-4a4a-bf67-6b2db3791993" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_58e3a80b-68e0-4cb3-9bb1-89ef9eb87e8a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_58e3a80b-68e0-4cb3-9bb1-89ef9eb87e8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyPolicy_805796f7-28f7-46fb-8943-20a79e9f239f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardProductWarrantyPolicy"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_StandardProductWarrantyPolicy_805796f7-28f7-46fb-8943-20a79e9f239f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_2943b2b4-ccd6-4192-a3c6-36ba4104d88a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesPolicyTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_2943b2b4-ccd6-4192-a3c6-36ba4104d88a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesPolicyTextBlock_ccc8d2e1-404f-4127-81eb-ebba1da8ac3f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativesPolicyTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_DerivativesPolicyTextBlock_ccc8d2e1-404f-4127-81eb-ebba1da8ac3f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRecognitionPolicyTextBlock_a2ba81e7-3e60-40ff-bf38-730d9ef680ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRecognitionPolicyTextBlock"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_RevenueRecognitionPolicyTextBlock_a2ba81e7-3e60-40ff-bf38-730d9ef680ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_86eb3233-818b-411a-99e0-7c7e2ed21e63" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_86eb3233-818b-411a-99e0-7c7e2ed21e63" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock_7d506454-f602-433c-9c02-898db3ec15a4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_AdvertisingCostsPolicyTextBlock_7d506454-f602-433c-9c02-898db3ec15a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_ccddf9c7-0fb3-46ae-b5c9-da6add385c6b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_ccddf9c7-0fb3-46ae-b5c9-da6add385c6b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock_54f1d04b-974b-4b65-9655-5ff192c476d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_IncomeTaxPolicyTextBlock_54f1d04b-974b-4b65-9655-5ff192c476d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerSharePolicyTextBlock_76d384b3-ac4d-4ec5-9fc2-ac7b3b9ea164" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerSharePolicyTextBlock"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_EarningsPerSharePolicyTextBlock_76d384b3-ac4d-4ec5-9fc2-ac7b3b9ea164" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_2975b56e-f826-4b2f-ae74-dc87cb185e38" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_2975b56e-f826-4b2f-ae74-dc87cb185e38" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_a04ca0ff-a6eb-461e-aa84-cf1704d13e3a" xlink:href="cgnx-20241231.xsd#cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_a04ca0ff-a6eb-461e-aa84-cf1704d13e3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsPolicy_82083b35-6b7a-4970-86d0-5144f796b364" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsPolicy"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_BusinessCombinationsPolicy_82083b35-6b7a-4970-86d0-5144f796b364" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_23edecca-1f49-4747-bf70-cab48ca7c815" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_23edecca-1f49-4747-bf70-cab48ca7c815" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_b0b45c41-7bd1-4c13-b1b1-d851774cc8d4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_828ea0d6-55e2-4e4d-b619-2cf9e902f5a5" xlink:to="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_b0b45c41-7bd1-4c13-b1b1-d851774cc8d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#FairValueMeasurementsTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurementsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_93f2bca3-95f5-418a-90c0-5e868a5d4fb0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_abe253aa-b5cc-4bec-8dd1-7ede81a23ddd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_93f2bca3-95f5-418a-90c0-5e868a5d4fb0" xlink:to="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_abe253aa-b5cc-4bec-8dd1-7ede81a23ddd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_39a29aa1-e51a-431b-b606-aa9b06656433" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_81f634ab-c719-4965-9572-e7be3dd35f84" xlink:href="cgnx-20241231.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_39a29aa1-e51a-431b-b606-aa9b06656433" xlink:to="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_81f634ab-c719-4965-9572-e7be3dd35f84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_4ccd86a3-f67a-4912-933e-126a804ef271" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_39a29aa1-e51a-431b-b606-aa9b06656433" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_4ccd86a3-f67a-4912-933e-126a804ef271" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_9718dccd-44aa-4c8a-8887-522b4615b5df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_39a29aa1-e51a-431b-b606-aa9b06656433" xlink:to="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_9718dccd-44aa-4c8a-8887-522b4615b5df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock_86e7e335-6d5c-462e-a28d-2f4b8bc30edf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RealizedGainLossOnInvestmentsTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_39a29aa1-e51a-431b-b606-aa9b06656433" xlink:to="loc_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock_86e7e335-6d5c-462e-a28d-2f4b8bc30edf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_6d6be255-c918-41fb-94be-0261594f9fd4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_39a29aa1-e51a-431b-b606-aa9b06656433" xlink:to="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_6d6be255-c918-41fb-94be-0261594f9fd4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/InventoriesTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#InventoriesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/InventoriesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_426d0423-1c6a-46e5-bc4a-4d6e14fc8efe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_b082420c-d3d1-405e-a019-23069e6eb589" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_426d0423-1c6a-46e5-bc4a-4d6e14fc8efe" xlink:to="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_b082420c-d3d1-405e-a019-23069e6eb589" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#PropertyPlantandEquipmentTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_7edb8c8e-c361-46ab-b8ee-38fd51975b33" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_2bb973fa-fc59-4d1b-8e26-92c80d415ecd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_7edb8c8e-c361-46ab-b8ee-38fd51975b33" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_2bb973fa-fc59-4d1b-8e26-92c80d415ecd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#LeasesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_e05cbe2f-18fc-436e-8ba4-9274d7391786" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_efcc296b-a401-4646-b95e-9d7e00ae88de" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_e05cbe2f-18fc-436e-8ba4-9274d7391786" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_efcc296b-a401-4646-b95e-9d7e00ae88de" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/GoodwillTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#GoodwillTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/GoodwillTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_f7fc2c2a-7769-49b1-a0d5-d8050eacd0b4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock_06b9c647-d712-487b-b87c-c291ac1dce61" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_f7fc2c2a-7769-49b1-a0d5-d8050eacd0b4" xlink:to="loc_us-gaap_ScheduleOfGoodwillTextBlock_06b9c647-d712-487b-b87c-c291ac1dce61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IntangibleAssetsTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_e2c3faef-bead-455c-8348-e9e168522054" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_bdba2a15-9c9e-44f2-b1e6-2fb31f9d8904" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_e2c3faef-bead-455c-8348-e9e168522054" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_bdba2a15-9c9e-44f2-b1e6-2fb31f9d8904" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_63649fb7-25f9-4fe3-a882-9a62e9fe74f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_e2c3faef-bead-455c-8348-e9e168522054" xlink:to="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_63649fb7-25f9-4fe3-a882-9a62e9fe74f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#AccruedExpensesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpensesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_5e0b58d8-4fc2-48fd-a63a-667206622976" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_af7f5e01-d8ba-44be-bf31-290c8f8403f6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_5e0b58d8-4fc2-48fd-a63a-667206622976" xlink:to="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_af7f5e01-d8ba-44be-bf31-290c8f8403f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_38503d3e-f81b-4976-a49f-35583db8b585" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_5e0b58d8-4fc2-48fd-a63a-667206622976" xlink:to="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_38503d3e-f81b-4976-a49f-35583db8b585" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_63b1dbf3-a5d1-42ac-bc39-a1c1ee532824" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_cac6ca6c-171e-496c-869b-8931c5a869d8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_63b1dbf3-a5d1-42ac-bc39-a1c1ee532824" xlink:to="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_cac6ca6c-171e-496c-869b-8931c5a869d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_09c3deb7-7ef8-45c8-83ef-e0d531ce0948" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_63b1dbf3-a5d1-42ac-bc39-a1c1ee532824" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_09c3deb7-7ef8-45c8-83ef-e0d531ce0948" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OffsettingAssetsTableTextBlock_1b782cdd-9245-4912-909a-e4a0d4ff9a51" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OffsettingAssetsTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_63b1dbf3-a5d1-42ac-bc39-a1c1ee532824" xlink:to="loc_us-gaap_OffsettingAssetsTableTextBlock_1b782cdd-9245-4912-909a-e4a0d4ff9a51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_512694e9-75bf-455b-b792-6849771f0788" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_63b1dbf3-a5d1-42ac-bc39-a1c1ee532824" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_512694e9-75bf-455b-b792-6849771f0788" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#RevenueRecognitionTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_27116e1e-196d-4822-a696-861ee90d5629" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_a7ad8bac-7f7f-4953-a500-68d2c65aebe5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_27116e1e-196d-4822-a696-861ee90d5629" xlink:to="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_a7ad8bac-7f7f-4953-a500-68d2c65aebe5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_1081ee6b-6bdb-4c9f-83b9-f4eb670fc648" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_27116e1e-196d-4822-a696-861ee90d5629" xlink:to="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_1081ee6b-6bdb-4c9f-83b9-f4eb670fc648" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_9846a0dd-81fb-45fa-a365-74efb40b463d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_27116e1e-196d-4822-a696-861ee90d5629" xlink:to="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_9846a0dd-81fb-45fa-a365-74efb40b463d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_08feca4e-a71b-40f1-a859-c177d78538a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_4f30cf30-f792-4a2f-a184-01c2b8448c21" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_08feca4e-a71b-40f1-a859-c177d78538a2" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_4f30cf30-f792-4a2f-a184-01c2b8448c21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_4b4b6d11-1feb-4085-b188-d27e8e0b9628" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_08feca4e-a71b-40f1-a859-c177d78538a2" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_4b4b6d11-1feb-4085-b188-d27e8e0b9628" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_df911b88-d416-433c-8817-669cb23bfa4b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_08feca4e-a71b-40f1-a859-c177d78538a2" xlink:to="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_df911b88-d416-433c-8817-669cb23bfa4b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_75189e88-13bb-496a-b3f3-19b49b3097e1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_08feca4e-a71b-40f1-a859-c177d78538a2" xlink:to="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_75189e88-13bb-496a-b3f3-19b49b3097e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_7e9dc8cf-8902-4dfe-9e2a-bbcc8fb416f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_08feca4e-a71b-40f1-a859-c177d78538a2" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_7e9dc8cf-8902-4dfe-9e2a-bbcc8fb416f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_503b8a53-44c3-4f82-ba15-2a3ab04b5879" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_a6197ece-49f4-422f-9f7e-2044b6e5d4d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_503b8a53-44c3-4f82-ba15-2a3ab04b5879" xlink:to="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_a6197ece-49f4-422f-9f7e-2044b6e5d4d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_b4ff6d8f-9136-47a0-8aa2-0aa7c16b97b0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_503b8a53-44c3-4f82-ba15-2a3ab04b5879" xlink:to="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_b4ff6d8f-9136-47a0-8aa2-0aa7c16b97b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_bd76360c-267b-4fa6-8d0f-4baa3559e084" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SummaryOfIncomeTaxContingenciesTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_503b8a53-44c3-4f82-ba15-2a3ab04b5879" xlink:to="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_bd76360c-267b-4fa6-8d0f-4baa3559e084" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_67316b60-e6a7-4104-9913-6f59fd7faae4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_503b8a53-44c3-4f82-ba15-2a3ab04b5879" xlink:to="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_67316b60-e6a7-4104-9913-6f59fd7faae4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_9d587c57-f20f-4307-a945-67478950a6ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_503b8a53-44c3-4f82-ba15-2a3ab04b5879" xlink:to="loc_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock_9d587c57-f20f-4307-a945-67478950a6ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#WeightedAverageSharesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageSharesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_ade6e47f-fd48-4ba4-adc2-09e7e9a2e821" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_afc71d11-e522-4bb5-a695-9e2962313265" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_ade6e47f-fd48-4ba4-adc2-09e7e9a2e821" xlink:to="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_afc71d11-e522-4bb5-a695-9e2962313265" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SegmentandGeographicInformationTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_29bfcf90-5be8-45d1-8dcc-05014888426c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_bbc349ab-e3a5-484f-8b03-85621a7f0459" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_29bfcf90-5be8-45d1-8dcc-05014888426c" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_bbc349ab-e3a5-484f-8b03-85621a7f0459" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_4461f902-d928-400c-b0ae-ca62ce075fed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_29bfcf90-5be8-45d1-8dcc-05014888426c" xlink:to="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock_4461f902-d928-400c-b0ae-ca62ce075fed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsTables" xlink:type="simple" xlink:href="cgnx-20241231.xsd#BusinessAcquisitionsTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/BusinessAcquisitionsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_d0e10bf6-66a3-4c5f-ad90-f385ef58e10d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_bb468d29-c5f7-4211-b571-e263f3a4dea7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_d0e10bf6-66a3-4c5f-ad90-f385ef58e10d" xlink:to="loc_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_bb468d29-c5f7-4211-b571-e263f3a4dea7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_0669f1b3-22df-4e70-9f05-25c69ca86da9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_91d65202-7f89-4b8e-b4cd-7ef672125a11" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_0669f1b3-22df-4e70-9f05-25c69ca86da9" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_91d65202-7f89-4b8e-b4cd-7ef672125a11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_1dab646b-f894-400a-af80-f6ac826a2905" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_91d65202-7f89-4b8e-b4cd-7ef672125a11" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_1dab646b-f894-400a-af80-f6ac826a2905" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_1dab646b-f894-400a-af80-f6ac826a2905" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_6d7f4807-c97e-4712-9f10-45a504ce978f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BuildingMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:to="loc_us-gaap_BuildingMember_6d7f4807-c97e-4712-9f10-45a504ce978f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_930bf513-054c-49ed-a8ec-1b17e5c25bcb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:to="loc_us-gaap_BuildingImprovementsMember_930bf513-054c-49ed-a8ec-1b17e5c25bcb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_a3e4879b-71de-42ca-a576-c3c753b6054c" xlink:href="cgnx-20241231.xsd#cgnx_ComputerHardwareAndSoftwareMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:to="loc_cgnx_ComputerHardwareAndSoftwareMember_a3e4879b-71de-42ca-a576-c3c753b6054c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_716f64fd-a4f8-43ce-b28f-396f070bb6e6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquipmentMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:to="loc_us-gaap_EquipmentMember_716f64fd-a4f8-43ce-b28f-396f070bb6e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_8ab3a381-256b-4c99-a796-85da0185528d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_596e2580-de10-4782-8341-fb3fc5ded433" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_8ab3a381-256b-4c99-a796-85da0185528d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_fca64edc-af72-4ed4-bf6d-118674c6821f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_91d65202-7f89-4b8e-b4cd-7ef672125a11" xlink:to="loc_srt_RangeAxis_fca64edc-af72-4ed4-bf6d-118674c6821f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_fc691fdc-55ed-40c8-ab19-788fd291c2f7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_fca64edc-af72-4ed4-bf6d-118674c6821f" xlink:to="loc_srt_RangeMember_fc691fdc-55ed-40c8-ab19-788fd291c2f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_a19ad6df-8099-448e-9411-5ec6beb61cac" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_fc691fdc-55ed-40c8-ab19-788fd291c2f7" xlink:to="loc_srt_MinimumMember_a19ad6df-8099-448e-9411-5ec6beb61cac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_d723a36f-5384-4c39-9b7d-306a50b316f1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_fc691fdc-55ed-40c8-ab19-788fd291c2f7" xlink:to="loc_srt_MaximumMember_d723a36f-5384-4c39-9b7d-306a50b316f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_93186613-1eac-4cf7-ae08-e821c1974ca1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_91d65202-7f89-4b8e-b4cd-7ef672125a11" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_93186613-1eac-4cf7-ae08-e821c1974ca1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_8c4110e0-a625-46f8-bf01-eda3eb113f41" xlink:href="cgnx-20241231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_93186613-1eac-4cf7-ae08-e821c1974ca1" xlink:to="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_8c4110e0-a625-46f8-bf01-eda3eb113f41" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_9dfaded0-0068-4b2d-a473-8ecdad04c130" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_93186613-1eac-4cf7-ae08-e821c1974ca1" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_9dfaded0-0068-4b2d-a473-8ecdad04c130" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_3aa0d517-4ed7-4804-82c1-54cd93a84f05" xlink:href="cgnx-20241231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_93186613-1eac-4cf7-ae08-e821c1974ca1" xlink:to="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_3aa0d517-4ed7-4804-82c1-54cd93a84f05" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_787a7b05-2834-4d95-a8e2-0442397c6140" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_b5c96652-0f77-41fc-8c4b-af1d6794568b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_787a7b05-2834-4d95-a8e2-0442397c6140" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_b5c96652-0f77-41fc-8c4b-af1d6794568b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d8f1b8fb-29ca-48fd-ad4e-8350951991cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_b5c96652-0f77-41fc-8c4b-af1d6794568b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d8f1b8fb-29ca-48fd-ad4e-8350951991cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_d8f1b8fb-29ca-48fd-ad4e-8350951991cf" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_71fd8c0c-d1c4-402d-959b-ae58878845e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DistributionRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:to="loc_us-gaap_DistributionRightsMember_71fd8c0c-d1c4-402d-959b-ae58878845e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_21d934a2-6dc0-4356-86b8-2b9a6bf91b67" xlink:href="cgnx-20241231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:to="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_21d934a2-6dc0-4356-86b8-2b9a6bf91b67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_264d4989-d60e-4aeb-9102-ede6f6c54a54" xlink:href="cgnx-20241231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_264d4989-d60e-4aeb-9102-ede6f6c54a54" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_463e55de-f4ad-4307-be87-d6aa17f93294" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_463e55de-f4ad-4307-be87-d6aa17f93294" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_c6d305e1-b01a-4ec2-ba1d-b16b5e02a027" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_588c8b5a-e531-426d-bde8-112256c5f7d9" xlink:to="loc_us-gaap_TrademarksMember_c6d305e1-b01a-4ec2-ba1d-b16b5e02a027" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_55daa286-252b-4656-9280-f285b8c22f74" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_b5c96652-0f77-41fc-8c4b-af1d6794568b" xlink:to="loc_srt_RangeAxis_55daa286-252b-4656-9280-f285b8c22f74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_4789a9f9-f4ec-4976-8a38-ba175511eef9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_55daa286-252b-4656-9280-f285b8c22f74" xlink:to="loc_srt_RangeMember_4789a9f9-f4ec-4976-8a38-ba175511eef9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_a372b70b-4db9-49c3-ae6e-8c132b7e8896" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_4789a9f9-f4ec-4976-8a38-ba175511eef9" xlink:to="loc_srt_MinimumMember_a372b70b-4db9-49c3-ae6e-8c132b7e8896" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_a4ec8527-a0ac-48e3-9777-3d282cd5600e" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_4789a9f9-f4ec-4976-8a38-ba175511eef9" xlink:to="loc_srt_MaximumMember_a4ec8527-a0ac-48e3-9777-3d282cd5600e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_6038f6e0-1671-4b68-ab22-791023237ead" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_b5c96652-0f77-41fc-8c4b-af1d6794568b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_6038f6e0-1671-4b68-ab22-791023237ead" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_26ead3dd-91f2-4332-883f-c9fda79e5ffb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_6038f6e0-1671-4b68-ab22-791023237ead" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_26ead3dd-91f2-4332-883f-c9fda79e5ffb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesWarrantyDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_b757e937-cf51-4b7b-98e3-53f38c17343e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable_9f66bd45-6cbf-49a3-86eb-58ad1324f8f4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductLiabilityContingencyTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_b757e937-cf51-4b7b-98e3-53f38c17343e" xlink:to="loc_us-gaap_ProductLiabilityContingencyTable_9f66bd45-6cbf-49a3-86eb-58ad1324f8f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_056bb563-51a9-4c43-9e83-7fd63abcf9dd" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_9f66bd45-6cbf-49a3-86eb-58ad1324f8f4" xlink:to="loc_srt_RangeAxis_056bb563-51a9-4c43-9e83-7fd63abcf9dd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_c1382e38-7ac4-4f4b-abac-8757058f27e6" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_056bb563-51a9-4c43-9e83-7fd63abcf9dd" xlink:to="loc_srt_RangeMember_c1382e38-7ac4-4f4b-abac-8757058f27e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_f0426c8f-acd0-447d-b584-2f1170b09c14" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_c1382e38-7ac4-4f4b-abac-8757058f27e6" xlink:to="loc_srt_MinimumMember_f0426c8f-acd0-447d-b584-2f1170b09c14" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_81e3f194-a12e-4a58-ae99-fcbaf727eda1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_c1382e38-7ac4-4f4b-abac-8757058f27e6" xlink:to="loc_srt_MaximumMember_81e3f194-a12e-4a58-ae99-fcbaf727eda1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems_5935c455-1b13-4c65-a6b0-926041c930a1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductLiabilityContingencyLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_9f66bd45-6cbf-49a3-86eb-58ad1324f8f4" xlink:to="loc_us-gaap_ProductLiabilityContingencyLineItems_5935c455-1b13-4c65-a6b0-926041c930a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductWarrantyPeriod_ec8af5a2-51b9-48c0-bf26-5667a332cec0" xlink:href="cgnx-20241231.xsd#cgnx_ProductWarrantyPeriod"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_5935c455-1b13-4c65-a6b0-926041c930a1" xlink:to="loc_cgnx_ProductWarrantyPeriod_ec8af5a2-51b9-48c0-bf26-5667a332cec0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_202076ea-dc87-47e0-9ce5-4cb0c18d36e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_01e4726f-977d-4e52-8ce0-af7789f0912f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_202076ea-dc87-47e0-9ce5-4cb0c18d36e3" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_01e4726f-977d-4e52-8ce0-af7789f0912f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_1cff2b3d-4574-438a-ae66-03eb5240444f" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_01e4726f-977d-4e52-8ce0-af7789f0912f" xlink:to="loc_srt_RangeAxis_1cff2b3d-4574-438a-ae66-03eb5240444f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_7231c15f-da96-4d89-9f1d-5e8d4c4b82ad" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_1cff2b3d-4574-438a-ae66-03eb5240444f" xlink:to="loc_srt_RangeMember_7231c15f-da96-4d89-9f1d-5e8d4c4b82ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_1b75bb1c-ca54-41bd-9656-f9f9c66eb6c6" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_7231c15f-da96-4d89-9f1d-5e8d4c4b82ad" xlink:to="loc_srt_MinimumMember_1b75bb1c-ca54-41bd-9656-f9f9c66eb6c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_cf43c119-d2b5-4dad-a7df-1f2ed3c3ef3b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_7231c15f-da96-4d89-9f1d-5e8d4c4b82ad" xlink:to="loc_srt_MaximumMember_cf43c119-d2b5-4dad-a7df-1f2ed3c3ef3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_8c61846f-5756-43b7-9051-b9f3ed572af6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_01e4726f-977d-4e52-8ce0-af7789f0912f" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_8c61846f-5756-43b7-9051-b9f3ed572af6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RevenuePaymentTerms_11d01878-b292-4a86-a2dd-35d1f01c27b4" xlink:href="cgnx-20241231.xsd#cgnx_RevenuePaymentTerms"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_8c61846f-5756-43b7-9051-b9f3ed572af6" xlink:to="loc_cgnx_RevenuePaymentTerms_11d01878-b292-4a86-a2dd-35d1f01c27b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_b4975541-94b9-4777-aa5d-a0cca0eeea40" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense_a9efb4b8-4a32-49aa-8c51-ba5527ee8907" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdvertisingExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_b4975541-94b9-4777-aa5d-a0cca0eeea40" xlink:to="loc_us-gaap_AdvertisingExpense_a9efb4b8-4a32-49aa-8c51-ba5527ee8907" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_7ac79401-139e-41bf-9652-5992bd4d53a3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_790940c3-91fb-438c-86cc-d53aa9a8a82d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7ac79401-139e-41bf-9652-5992bd4d53a3" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_790940c3-91fb-438c-86cc-d53aa9a8a82d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_a67641e7-6306-459c-b829-e94d0c3dc3e8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_790940c3-91fb-438c-86cc-d53aa9a8a82d" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_a67641e7-6306-459c-b829-e94d0c3dc3e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_d9aee105-4b56-4944-b4ff-8eb72a6e44c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_a67641e7-6306-459c-b829-e94d0c3dc3e8" xlink:to="loc_us-gaap_EquityComponentDomain_d9aee105-4b56-4944-b4ff-8eb72a6e44c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_d920404f-e3eb-487c-b5a5-2dae0b1a4278" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_d9aee105-4b56-4944-b4ff-8eb72a6e44c4" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_d920404f-e3eb-487c-b5a5-2dae0b1a4278" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_790940c3-91fb-438c-86cc-d53aa9a8a82d" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_7cf64376-71bf-4e0f-9fc4-43489042846e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_7cf64376-71bf-4e0f-9fc4-43489042846e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_c692beaf-1cf1-4b21-8f09-5c09845300cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_c692beaf-1cf1-4b21-8f09-5c09845300cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_844e7da4-312f-4d77-955d-cda2971c9182" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:to="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_844e7da4-312f-4d77-955d-cda2971c9182" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_725b8741-cbac-4c8d-804a-c2d5a2dbd069" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_611e0280-7601-4ad9-9660-5d4dea223f6c" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_725b8741-cbac-4c8d-804a-c2d5a2dbd069" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_d21c7f5a-26b0-4105-b88a-84e4bae8183d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_62903fd0-d478-4585-9d8e-68a0999430eb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_d21c7f5a-26b0-4105-b88a-84e4bae8183d" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_62903fd0-d478-4585-9d8e-68a0999430eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f87ae5a6-e846-40a6-9228-2b9bf271faac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_62903fd0-d478-4585-9d8e-68a0999430eb" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f87ae5a6-e846-40a6-9228-2b9bf271faac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_daaff908-4a81-42c6-a581-bc6554d176c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_f87ae5a6-e846-40a6-9228-2b9bf271faac" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_daaff908-4a81-42c6-a581-bc6554d176c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_5a5a7b6b-b69f-4114-b226-9b04eb5c8f1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_daaff908-4a81-42c6-a581-bc6554d176c5" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_5a5a7b6b-b69f-4114-b226-9b04eb5c8f1f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_8e582c31-23dc-41e3-a72e-d52fb9412e54" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_daaff908-4a81-42c6-a581-bc6554d176c5" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_8e582c31-23dc-41e3-a72e-d52fb9412e54" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_e64da089-b2b5-45e0-b636-877e03818cf4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_daaff908-4a81-42c6-a581-bc6554d176c5" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_e64da089-b2b5-45e0-b636-877e03818cf4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_4e6c5556-2964-4e9c-98ba-38f6c9686ce2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_62903fd0-d478-4585-9d8e-68a0999430eb" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_4e6c5556-2964-4e9c-98ba-38f6c9686ce2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_829a9c68-12ca-44c1-bd68-28132425020e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_4e6c5556-2964-4e9c-98ba-38f6c9686ce2" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_829a9c68-12ca-44c1-bd68-28132425020e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_0d6b03a9-d8aa-4756-a71d-6aee74409937" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_829a9c68-12ca-44c1-bd68-28132425020e" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_0d6b03a9-d8aa-4756-a71d-6aee74409937" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_3aab292f-683c-4229-86a2-8f7cff7d136b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_62903fd0-d478-4585-9d8e-68a0999430eb" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_3aab292f-683c-4229-86a2-8f7cff7d136b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetsFairValueDisclosureAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_3aab292f-683c-4229-86a2-8f7cff7d136b" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_4ba790ee-a998-4c03-a4a4-fa5d29443a1d" xlink:href="cgnx-20241231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_4ba790ee-a998-4c03-a4a4-fa5d29443a1d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_ad79583a-4192-4f48-95f9-d43c9145c769" xlink:href="cgnx-20241231.xsd#cgnx_CorporateBondsFairValueDisclosure"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_cgnx_CorporateBondsFairValueDisclosure_ad79583a-4192-4f48-95f9-d43c9145c769" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_acd297c6-fefc-412b-856f-682929c6f151" xlink:href="cgnx-20241231.xsd#cgnx_TreasuryBillsFairValueDisclosure"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_cgnx_TreasuryBillsFairValueDisclosure_acd297c6-fefc-412b-856f-682929c6f151" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_26b4a1be-8d9b-4a6c-9e5b-b09de7b06d43" xlink:href="cgnx-20241231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_26b4a1be-8d9b-4a6c-9e5b-b09de7b06d43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_0898543c-0ced-4b56-af22-0280d6d83c71" xlink:href="cgnx-20241231.xsd#cgnx_SovereignBondsFairValueDisclosure"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_cgnx_SovereignBondsFairValueDisclosure_0898543c-0ced-4b56-af22-0280d6d83c71" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_ef5d2108-a3ab-4e3e-b4ed-26d86027832c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_76a5e9bc-e374-4a9d-85ed-90d567080740" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_ef5d2108-a3ab-4e3e-b4ed-26d86027832c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_6733a9f9-e4bf-4eb4-818f-d59fdeaf32de" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_3aab292f-683c-4229-86a2-8f7cff7d136b" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_6733a9f9-e4bf-4eb4-818f-d59fdeaf32de" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_99adac27-821e-4c23-ad96-819b6cc55c86" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_6733a9f9-e4bf-4eb4-818f-d59fdeaf32de" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_99adac27-821e-4c23-ad96-819b6cc55c86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_65782ba5-e4ad-44dc-83cb-7917983d55a4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ff5e124e-30af-4625-b3e6-f8357af505ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_65782ba5-e4ad-44dc-83cb-7917983d55a4" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ff5e124e-30af-4625-b3e6-f8357af505ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_fc96b64b-ac34-425f-a997-6a0f9767b691" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ff5e124e-30af-4625-b3e6-f8357af505ee" xlink:to="loc_us-gaap_FinancialInstrumentAxis_fc96b64b-ac34-425f-a997-6a0f9767b691" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_fc96b64b-ac34-425f-a997-6a0f9767b691" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember_4b2fdbe3-e92b-4d01-a0e4-dcde1fe2d84c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasuryBillSecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_us-gaap_USTreasuryBillSecuritiesMember_4b2fdbe3-e92b-4d01-a0e4-dcde1fe2d84c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_85c38d7d-18a7-4501-ac6b-d761b54135ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_85c38d7d-18a7-4501-ac6b-d761b54135ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_fcf4adac-354c-4331-8344-79e2a1c515e7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_fcf4adac-354c-4331-8344-79e2a1c515e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_d15a7959-fcbe-4d38-911e-a0fbff242e88" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_d15a7959-fcbe-4d38-911e-a0fbff242e88" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_790d64fe-9a8f-4f27-a3b9-ab0d9fb19670" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_us-gaap_MunicipalBondsMember_790d64fe-9a8f-4f27-a3b9-ab0d9fb19670" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_1836915e-0640-4316-a1c8-adf8ce224a07" xlink:href="cgnx-20241231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ccfccc0e-e921-44ee-9765-b396c802ddc7" xlink:to="loc_cgnx_AgencyBondsMember_1836915e-0640-4316-a1c8-adf8ce224a07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ff5e124e-30af-4625-b3e6-f8357af505ee" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_cfbe8d2b-7d21-497c-9ead-561f903616cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Cash"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_Cash_cfbe8d2b-7d21-497c-9ead-561f903616cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_06ac4278-997f-470b-9070-74395ade1e0c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_06ac4278-997f-470b-9070-74395ade1e0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_dc261470-52e2-49cd-8881-0332816be30d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_dc261470-52e2-49cd-8881-0332816be30d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_8d45dfa4-720a-4527-8d4b-bd9c4cd77a43" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_8d45dfa4-720a-4527-8d4b-bd9c4cd77a43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_83e23f2b-3506-4d23-b808-40446e1f4ae6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_83e23f2b-3506-4d23-b808-40446e1f4ae6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_331082bb-14f6-4133-b6f8-5576c948c834" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LongTermInvestments"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_us-gaap_LongTermInvestments_331082bb-14f6-4133-b6f8-5576c948c834" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_a54ef6a0-a84d-425b-8327-1eed263a486a" xlink:href="cgnx-20241231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_54c616dd-f160-41a5-81d5-17a3bfb62af8" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_a54ef6a0-a84d-425b-8327-1eed263a486a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_76ead440-bf85-4782-9ed5-f08833282644" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DueFromForeignBanks_be75afb0-1fc1-41b9-9f83-24fb08fe35df" xlink:href="cgnx-20241231.xsd#cgnx_DueFromForeignBanks"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_76ead440-bf85-4782-9ed5-f08833282644" xlink:to="loc_cgnx_DueFromForeignBanks_be75afb0-1fc1-41b9-9f83-24fb08fe35df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestReceivable_2fde5af9-812d-4bf1-88fb-2582f8e9f3e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InterestReceivable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_76ead440-bf85-4782-9ed5-f08833282644" xlink:to="loc_us-gaap_InterestReceivable_2fde5af9-812d-4bf1-88fb-2582f8e9f3e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_17c1ed08-d6c7-4e34-9167-2e6ab33e6ed8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedGain"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_76ead440-bf85-4782-9ed5-f08833282644" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_17c1ed08-d6c7-4e34-9167-2e6ab33e6ed8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_9cf440f9-9a0c-4d23-b5bc-b0a04e154eee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_76ead440-bf85-4782-9ed5-f08833282644" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_9cf440f9-9a0c-4d23-b5bc-b0a04e154eee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_f7f033a3-910a-48c6-92e2-f143d992db48" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_76ead440-bf85-4782-9ed5-f08833282644" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_f7f033a3-910a-48c6-92e2-f143d992db48" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_08d48958-b866-45ce-bcc3-c1db5d07f5fb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_08d48958-b866-45ce-bcc3-c1db5d07f5fb" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_066fbeda-6975-4aea-85d8-28c0c7c0befe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:to="loc_us-gaap_FinancialInstrumentAxis_066fbeda-6975-4aea-85d8-28c0c7c0befe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_066fbeda-6975-4aea-85d8-28c0c7c0befe" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_bec01071-6ecc-463a-9dbf-ba54686c0c18" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_bec01071-6ecc-463a-9dbf-ba54686c0c18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_bb01eea9-0251-45a5-b518-30ec848400ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_bb01eea9-0251-45a5-b518-30ec848400ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_df3e379b-b552-45aa-814e-85aae66d165b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_df3e379b-b552-45aa-814e-85aae66d165b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_e71f1c6c-1c29-4d34-921b-2407e67bb66a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_e71f1c6c-1c29-4d34-921b-2407e67bb66a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_86e06518-6d17-4f5c-a482-67d6c78cd77d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_us-gaap_MunicipalBondsMember_86e06518-6d17-4f5c-a482-67d6c78cd77d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_31111b24-26e6-4902-9753-82bd390d8600" xlink:href="cgnx-20241231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_892d5622-b90b-4bda-ae68-f2d189e60cda" xlink:to="loc_cgnx_AgencyBondsMember_31111b24-26e6-4902-9753-82bd390d8600" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationAxis_12f87c8b-4ab5-410b-9a30-43f1039069e2" xlink:href="cgnx-20241231.xsd#cgnx_InvestmentDurationAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:to="loc_cgnx_InvestmentDurationAxis_12f87c8b-4ab5-410b-9a30-43f1039069e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain_d89fca71-4fdf-4d55-b8cb-6c6d21b44013" xlink:href="cgnx-20241231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_InvestmentDurationAxis_12f87c8b-4ab5-410b-9a30-43f1039069e2" xlink:to="loc_cgnx_InvestmentDurationDomain_d89fca71-4fdf-4d55-b8cb-6c6d21b44013" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember_3902d282-919a-46a9-bfcd-0e15c69c9e79" xlink:href="cgnx-20241231.xsd#cgnx_LongTermInvestmentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_InvestmentDurationDomain_d89fca71-4fdf-4d55-b8cb-6c6d21b44013" xlink:to="loc_cgnx_LongTermInvestmentsMember_3902d282-919a-46a9-bfcd-0e15c69c9e79" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_114f5478-a854-4a48-b13e-93db643fc8ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_InvestmentDurationDomain_d89fca71-4fdf-4d55-b8cb-6c6d21b44013" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_114f5478-a854-4a48-b13e-93db643fc8ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeAxis_91622ae0-159c-41e8-9863-b1b0041c7fb8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:to="loc_us-gaap_InvestmentTypeAxis_91622ae0-159c-41e8-9863-b1b0041c7fb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_427f6d01-219c-4b9a-95e0-cf2e64ea8e3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentTypeAxis_91622ae0-159c-41e8-9863-b1b0041c7fb8" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_427f6d01-219c-4b9a-95e0-cf2e64ea8e3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_77006f97-6dea-48c9-8569-a831faa71eea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_427f6d01-219c-4b9a-95e0-cf2e64ea8e3c" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_77006f97-6dea-48c9-8569-a831faa71eea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_884e3c5f-7fb5-4c97-8076-c001d8017d59" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_8124b07c-ff98-4c43-9760-c554847dd3cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_8124b07c-ff98-4c43-9760-c554847dd3cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_d263a528-ac5d-4ebb-92ae-ad7aeac434f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_d263a528-ac5d-4ebb-92ae-ad7aeac434f8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_01c28d63-6183-49cb-8979-76ba2c1fff44" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_01c28d63-6183-49cb-8979-76ba2c1fff44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_a2d80907-907e-4089-bc0a-8aac21e90267" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_6fcf0dc7-28ff-47ef-ba2a-3e6c40496b62" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_a2d80907-907e-4089-bc0a-8aac21e90267" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_4f2738e6-b864-4950-9f07-c2142271fc62" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_923b77ef-d8ca-4043-9333-a5ff3d4ec210" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_4f2738e6-b864-4950-9f07-c2142271fc62" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_923b77ef-d8ca-4043-9333-a5ff3d4ec210" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_259ceaae-06db-4a0f-8dca-9554ad7fded9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_923b77ef-d8ca-4043-9333-a5ff3d4ec210" xlink:to="loc_us-gaap_FinancialInstrumentAxis_259ceaae-06db-4a0f-8dca-9554ad7fded9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_259ceaae-06db-4a0f-8dca-9554ad7fded9" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_42ee0536-811e-4ddc-b556-a21c823919ec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_42ee0536-811e-4ddc-b556-a21c823919ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_e88f11fa-8175-4cf1-a3fc-67b1c52062a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_e88f11fa-8175-4cf1-a3fc-67b1c52062a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_7bc1f846-665d-4d9b-b0fc-153c400c7616" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_7bc1f846-665d-4d9b-b0fc-153c400c7616" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_838dd2af-b720-450c-b41c-3d520475721b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_838dd2af-b720-450c-b41c-3d520475721b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_0b2c7289-af29-4f4b-bce3-9990235bb3df" xlink:href="cgnx-20241231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_cgnx_AgencyBondsMember_0b2c7289-af29-4f4b-bce3-9990235bb3df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_ec7a2468-8eea-4d2d-9fc2-27245e40d2d6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_2de76f5a-b05f-4447-8911-a28b45bd32ee" xlink:to="loc_us-gaap_MunicipalBondsMember_ec7a2468-8eea-4d2d-9fc2-27245e40d2d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_923b77ef-d8ca-4043-9333-a5ff3d4ec210" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_cbf3567f-ec82-437f-9f40-699d1a014a5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_cbf3567f-ec82-437f-9f40-699d1a014a5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_ea552259-0965-4a34-81d5-f4ab24e8c2bf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_ea552259-0965-4a34-81d5-f4ab24e8c2bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_d5d57ec1-3883-42b6-86c4-e604c3467ee2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_d5d57ec1-3883-42b6-86c4-e604c3467ee2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_d091dbf0-1133-456e-a48e-a7d9d4c5019e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_d091dbf0-1133-456e-a48e-a7d9d4c5019e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_fab1a3da-dbf4-49e7-94da-4e3864d45f3d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_fab1a3da-dbf4-49e7-94da-4e3864d45f3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_57015c42-6701-4935-92d7-003f0bea3399" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_457f54d6-159c-4b3f-abab-290157759283" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_57015c42-6701-4935-92d7-003f0bea3399" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_8ac8ae59-7b72-47d2-ba64-3dafb58a7a9d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_e3002130-b7ec-404a-915b-52835f384f7b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedGain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_8ac8ae59-7b72-47d2-ba64-3dafb58a7a9d" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_e3002130-b7ec-404a-915b-52835f384f7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_a69162dc-6495-4c97-898c-ccfbae769e82" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_8ac8ae59-7b72-47d2-ba64-3dafb58a7a9d" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_a69162dc-6495-4c97-898c-ccfbae769e82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RealizedInvestmentGainsLosses_da760277-c3ff-4d6a-b6d8-04c742ab456a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RealizedInvestmentGainsLosses"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_8ac8ae59-7b72-47d2-ba64-3dafb58a7a9d" xlink:to="loc_us-gaap_RealizedInvestmentGainsLosses_da760277-c3ff-4d6a-b6d8-04c742ab456a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_51800a01-99d5-4b3a-993b-ca1392b02063" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_65161891-24b8-4927-9ce4-b222ebab4799" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_51800a01-99d5-4b3a-993b-ca1392b02063" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_65161891-24b8-4927-9ce4-b222ebab4799" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_994c6640-828e-4dc9-8179-209567c5962f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_65161891-24b8-4927-9ce4-b222ebab4799" xlink:to="loc_us-gaap_FinancialInstrumentAxis_994c6640-828e-4dc9-8179-209567c5962f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_994c6640-828e-4dc9-8179-209567c5962f" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_d7dd00d9-3840-4593-a7b8-ec2f251575cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_d7dd00d9-3840-4593-a7b8-ec2f251575cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_26bd78e3-0419-40f2-9004-8196789e1655" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_26bd78e3-0419-40f2-9004-8196789e1655" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_4a6cdff3-9da0-439d-b7d9-4487556dbe0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_4a6cdff3-9da0-439d-b7d9-4487556dbe0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_55055ed0-9d82-4017-a23b-2d2be984bbea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_55055ed0-9d82-4017-a23b-2d2be984bbea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_bd718ea5-ebd5-4ff3-9381-cd222cf23bf0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_us-gaap_MunicipalBondsMember_bd718ea5-ebd5-4ff3-9381-cd222cf23bf0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_c9b7b391-4df4-4d3b-904b-d39db6799ff7" xlink:href="cgnx-20241231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_5de9552d-d11c-4633-84b6-f3f0e2b8345f" xlink:to="loc_cgnx_AgencyBondsMember_c9b7b391-4df4-4d3b-904b-d39db6799ff7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_65161891-24b8-4927-9ce4-b222ebab4799" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_c2d292b4-2329-45e9-9f13-f411e6f2eb96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_c2d292b4-2329-45e9-9f13-f411e6f2eb96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_56f9be1d-22cf-4c60-b87f-4859650c33c0" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_56f9be1d-22cf-4c60-b87f-4859650c33c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_2bc7ab94-c7b2-4822-828a-b977c0962d96" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_2bc7ab94-c7b2-4822-828a-b977c0962d96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_79d8c409-075d-4c6f-b148-67c6c71090bb" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_79d8c409-075d-4c6f-b148-67c6c71090bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_9781bffb-4e38-4c13-9ed3-1b85fa1eb8e8" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_9781bffb-4e38-4c13-9ed3-1b85fa1eb8e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_b37eec62-3086-4b6d-8460-2090265a3692" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_b37eec62-3086-4b6d-8460-2090265a3692" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_d6f0fab2-b08a-403a-ab30-f63f92d7b5be" xlink:href="cgnx-20241231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_9d9eae95-2c90-4f95-97e3-07130e5bb075" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_d6f0fab2-b08a-403a-ab30-f63f92d7b5be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#InventoriesInventoriesDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_201e5733-24e9-4d6b-b6c7-aa8d346a748f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryCurrentTable_f3b2cbdd-41a8-4922-996e-6c78e38e4a85" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryCurrentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_201e5733-24e9-4d6b-b6c7-aa8d346a748f" xlink:to="loc_us-gaap_InventoryCurrentTable_f3b2cbdd-41a8-4922-996e-6c78e38e4a85" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_fde1469f-b3fa-4431-ab19-f975b2a773ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryCurrentTable_f3b2cbdd-41a8-4922-996e-6c78e38e4a85" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_fde1469f-b3fa-4431-ab19-f975b2a773ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1e47762e-ef61-4f49-b45c-9a28c2cdce38" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_fde1469f-b3fa-4431-ab19-f975b2a773ac" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1e47762e-ef61-4f49-b45c-9a28c2cdce38" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_5e2ca10a-8368-418d-ab6b-64ba4232ba4f" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1e47762e-ef61-4f49-b45c-9a28c2cdce38" xlink:to="loc_cgnx_MoritexCorporationMember_5e2ca10a-8368-418d-ab6b-64ba4232ba4f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryCurrentTable_f3b2cbdd-41a8-4922-996e-6c78e38e4a85" xlink:to="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_7297e38e-d232-4270-b577-ce2c49371f4d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_7297e38e-d232-4270-b577-ce2c49371f4d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_d3ce50d0-b84e-4a19-a209-81b7fa6343ec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_d3ce50d0-b84e-4a19-a209-81b7fa6343ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_13ff021c-c892-44b8-b81c-78d4df09a9ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_13ff021c-c892-44b8-b81c-78d4df09a9ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_30584dcb-a3a5-48fc-8d89-1867b56e5659" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_InventoryNet_30584dcb-a3a5-48fc-8d89-1867b56e5659" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_9963b4e7-fec9-4bb2-8c77-a9e4c6f88420" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryLineItems_f863c215-e959-4213-b1a3-93325b9183cd" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_9963b4e7-fec9-4bb2-8c77-a9e4c6f88420" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_c1e50f9f-6291-4533-a99b-5039b759818c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_2ae7e3b6-9921-45c5-8efa-c1685c666fec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_c1e50f9f-6291-4533-a99b-5039b759818c" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_2ae7e3b6-9921-45c5-8efa-c1685c666fec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_aa58e0f8-1b89-44db-9984-4883b0cc8b41" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_2ae7e3b6-9921-45c5-8efa-c1685c666fec" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_aa58e0f8-1b89-44db-9984-4883b0cc8b41" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_aa58e0f8-1b89-44db-9984-4883b0cc8b41" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember_889385ce-dc7f-4cf2-ae16-fd91ea85c089" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LandMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_LandMember_889385ce-dc7f-4cf2-ae16-fd91ea85c089" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_6b7a55fc-88e2-4aa4-b8a0-5efe057a08d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BuildingMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_BuildingMember_6b7a55fc-88e2-4aa4-b8a0-5efe057a08d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_1d7a2aac-8c4f-4d7b-970f-9fa0c4e28515" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_BuildingImprovementsMember_1d7a2aac-8c4f-4d7b-970f-9fa0c4e28515" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_3d133505-ca85-43b8-8f19-ceddf6691adf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_3d133505-ca85-43b8-8f19-ceddf6691adf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_HardwareAndSoftwareMember_9cf981a4-5230-400f-ba54-3255841f144a" xlink:href="cgnx-20241231.xsd#cgnx_HardwareAndSoftwareMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_cgnx_HardwareAndSoftwareMember_9cf981a4-5230-400f-ba54-3255841f144a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_598269ae-7df0-4722-ac58-d76b350e3170" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquipmentMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_EquipmentMember_598269ae-7df0-4722-ac58-d76b350e3170" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_8bb3e738-76a9-41a5-aa76-c69e58c67835" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_ae6aff6e-c980-462e-8f9f-73656e0e9693" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_8bb3e738-76a9-41a5-aa76-c69e58c67835" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_2a439b6b-50f0-4a17-b86f-a27217eabcc2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_2ae7e3b6-9921-45c5-8efa-c1685c666fec" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_2a439b6b-50f0-4a17-b86f-a27217eabcc2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_7fdf056c-cc3e-4c28-b14e-bc593cb553cf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_2a439b6b-50f0-4a17-b86f-a27217eabcc2" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_7fdf056c-cc3e-4c28-b14e-bc593cb553cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_17c74440-0d61-463f-ba62-c6388cebf4e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_2a439b6b-50f0-4a17-b86f-a27217eabcc2" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_17c74440-0d61-463f-ba62-c6388cebf4e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_b2c7bde2-7817-4226-921e-68fa2ac4b629" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_2a439b6b-50f0-4a17-b86f-a27217eabcc2" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_b2c7bde2-7817-4226-921e-68fa2ac4b629" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#PropertyPlantandEquipmentAdditionalInformationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4ec072c6-5f71-4d76-9293-f5148768a67d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_f26288c0-3ef2-4826-8e70-3d2734d7b589" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4ec072c6-5f71-4d76-9293-f5148768a67d" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_f26288c0-3ef2-4826-8e70-3d2734d7b589" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_f1c39c55-f7ed-44a2-acf4-210338c0df1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4ec072c6-5f71-4d76-9293-f5148768a67d" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_f1c39c55-f7ed-44a2-acf4-210338c0df1f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_bb36c16e-6a70-4d0d-a5b5-42fd91b72a31" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4ec072c6-5f71-4d76-9293-f5148768a67d" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_bb36c16e-6a70-4d0d-a5b5-42fd91b72a31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c6f17765-5527-4c7c-a708-d6ed302d2796" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_4ec072c6-5f71-4d76-9293-f5148768a67d" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c6f17765-5527-4c7c-a708-d6ed302d2796" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_cb778613-0af5-4748-ae63-46e0e09ba885" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c6f17765-5527-4c7c-a708-d6ed302d2796" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_cb778613-0af5-4748-ae63-46e0e09ba885" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b7ebc872-b916-4fa4-af74-68eb6efa3cf8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_cb778613-0af5-4748-ae63-46e0e09ba885" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b7ebc872-b916-4fa4-af74-68eb6efa3cf8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_bcd78303-90c3-41f0-9a7e-8fed151b4f57" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b7ebc872-b916-4fa4-af74-68eb6efa3cf8" xlink:to="loc_cgnx_MoritexCorporationMember_bcd78303-90c3-41f0-9a7e-8fed151b4f57" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c6f17765-5527-4c7c-a708-d6ed302d2796" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_1bf225b7-7970-4104-a9e4-9b0d9ab1cbad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_1bf225b7-7970-4104-a9e4-9b0d9ab1cbad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_82b25c41-521e-4c2e-a81a-57c326cf0267" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_82b25c41-521e-4c2e-a81a-57c326cf0267" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_ae5c5ad1-023a-4b57-80e9-68e3f0615955" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_ae5c5ad1-023a-4b57-80e9-68e3f0615955" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_627f6cea-b9d3-4cfa-8986-eff0e542236e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_627f6cea-b9d3-4cfa-8986-eff0e542236e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_b85a98d5-32ec-445e-bb64-3a5d3da68f6f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_dc0787d1-2527-4ce8-aef9-9f056aeaa2b3" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_b85a98d5-32ec-445e-bb64-3a5d3da68f6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#LeasesDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_8e3fee12-3147-40fe-8ffd-65a0ea3c7a02" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable_d4678e6f-445b-433a-b8ce-d3bc54cfb4ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_8e3fee12-3147-40fe-8ffd-65a0ea3c7a02" xlink:to="loc_us-gaap_LessorLeaseDescriptionTable_d4678e6f-445b-433a-b8ce-d3bc54cfb4ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_6be970e6-9edc-429b-b72b-a60357290622" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_d4678e6f-445b-433a-b8ce-d3bc54cfb4ef" xlink:to="loc_srt_StatementGeographicalAxis_6be970e6-9edc-429b-b72b-a60357290622" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_17d220f0-4bdf-49d9-8389-c20ea091b83e" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_6be970e6-9edc-429b-b72b-a60357290622" xlink:to="loc_srt_SegmentGeographicalDomain_17d220f0-4bdf-49d9-8389-c20ea091b83e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BacNinhVietnamMember_8b876c84-ecfa-45a6-b572-32823e6d4edd" xlink:href="cgnx-20241231.xsd#cgnx_BacNinhVietnamMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_17d220f0-4bdf-49d9-8389-c20ea091b83e" xlink:to="loc_cgnx_BacNinhVietnamMember_8b876c84-ecfa-45a6-b572-32823e6d4edd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_SG_5664768b-ef6a-45dd-9898-9c4c8145b3f7" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_SG"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_17d220f0-4bdf-49d9-8389-c20ea091b83e" xlink:to="loc_country_SG_5664768b-ef6a-45dd-9898-9c4c8145b3f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AachenGermanyMember_0226a37f-15dd-4736-9adb-c2bd385000ba" xlink:href="cgnx-20241231.xsd#cgnx_AachenGermanyMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_17d220f0-4bdf-49d9-8389-c20ea091b83e" xlink:to="loc_cgnx_AachenGermanyMember_0226a37f-15dd-4736-9adb-c2bd385000ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fb734de1-62e2-4b15-9d8f-65a3514f3cc0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_d4678e6f-445b-433a-b8ce-d3bc54cfb4ef" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fb734de1-62e2-4b15-9d8f-65a3514f3cc0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_608e528f-dec3-4ab3-accc-6b27d1f758fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_fb734de1-62e2-4b15-9d8f-65a3514f3cc0" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_608e528f-dec3-4ab3-accc-6b27d1f758fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A88000SquareFootPremisesMember_911b6f34-4fbc-4069-9294-104c889616ad" xlink:href="cgnx-20241231.xsd#cgnx_A88000SquareFootPremisesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_608e528f-dec3-4ab3-accc-6b27d1f758fd" xlink:to="loc_cgnx_A88000SquareFootPremisesMember_911b6f34-4fbc-4069-9294-104c889616ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A27000SquareFootPremisesMember_1f5a0621-3de2-4de3-812a-9e300384dea5" xlink:href="cgnx-20241231.xsd#cgnx_A27000SquareFootPremisesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_608e528f-dec3-4ab3-accc-6b27d1f758fd" xlink:to="loc_cgnx_A27000SquareFootPremisesMember_1f5a0621-3de2-4de3-812a-9e300384dea5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_d4678e6f-445b-433a-b8ce-d3bc54cfb4ef" xlink:to="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense_c03e5b79-769f-4860-b401-a73e1059cd99" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeaseExpense_c03e5b79-769f-4860-b401-a73e1059cd99" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_42ed6b1e-79ec-4e70-94a5-894372143829" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeasePayments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeasePayments_42ed6b1e-79ec-4e70-94a5-894372143829" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_79a90062-a26a-4c41-9381-80d585a26347" xlink:href="cgnx-20241231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_79a90062-a26a-4c41-9381-80d585a26347" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_3ba50047-46b9-47e3-9442-a5ae87ad216d" xlink:href="cgnx-20241231.xsd#cgnx_OperatingLeaseLiabilityDiscountedPresentValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_3ba50047-46b9-47e3-9442-a5ae87ad216d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_3741ae38-60a3-4149-8c94-d60d3ba965ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeaseLiability_3741ae38-60a3-4149-8c94-d60d3ba965ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetRentableArea_521e79c3-a832-491a-ae07-0bb64aab6dff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetRentableArea"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_NetRentableArea_521e79c3-a832-491a-ae07-0bb64aab6dff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract_3bf8ce2b-41c4-4402-a676-e44e089a5b77" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_LesseeOperatingLeaseTermOfContract_3bf8ce2b-41c4-4402-a676-e44e089a5b77" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_94bac798-3981-4ffb-9be5-47292ebe8f09" xlink:href="cgnx-20241231.xsd#cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_94bac798-3981-4ffb-9be5-47292ebe8f09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_421e2510-577e-40fa-982d-fbfaaf7dc97b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_421e2510-577e-40fa-982d-fbfaaf7dc97b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_e3ab979b-1aa3-4947-b748-e74779d4694c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_e3ab979b-1aa3-4947-b748-e74779d4694c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_ecaf63f4-05ba-470a-ba59-58406e72015c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_ecaf63f4-05ba-470a-ba59-58406e72015c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseComponents_51f88e3e-6707-4eda-abf3-0e912c530aae" xlink:href="cgnx-20241231.xsd#cgnx_LesseeOperatingLeaseComponents"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_cgnx_LesseeOperatingLeaseComponents_51f88e3e-6707-4eda-abf3-0e912c530aae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ab3b2bdc-9c57-4264-992d-223bc7535af2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ab3b2bdc-9c57-4264-992d-223bc7535af2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_602d3b20-e66d-4c80-81ae-37a68d20dcdc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_602d3b20-e66d-4c80-81ae-37a68d20dcdc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_435de262-da1e-4db2-af24-6516bef4a25d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_435de262-da1e-4db2-af24-6516bef4a25d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AreaOfRealEstateProperty_42637866-94c7-45cf-9c1a-fdbfdd319674" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AreaOfRealEstateProperty"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_AreaOfRealEstateProperty_42637866-94c7-45cf-9c1a-fdbfdd319674" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount_4ff057d0-c35e-4770-952f-1460ecb787d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount_4ff057d0-c35e-4770-952f-1460ecb787d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm_99a4b18e-42ba-480e-8407-bbeb392ee720" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecordedUnconditionalPurchaseObligationTerm"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm_99a4b18e-42ba-480e-8407-bbeb392ee720" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm_5120f4f9-e9e5-42b6-b543-b4cd73c3c608" xlink:href="cgnx-20241231.xsd#cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm_5120f4f9-e9e5-42b6-b543-b4cd73c3c608" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary_ca464131-50e9-4179-acf4-266c94add4ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_8e8b137d-95f9-4309-bc30-147d41b1fe27" xlink:to="loc_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary_ca464131-50e9-4179-acf4-266c94add4ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleofPaymentsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#LeasesScheduleofPaymentsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesScheduleofPaymentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_0f78f549-180d-4d90-92b6-ddf9692be421" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_b8adb59f-7e8f-4268-8191-763d277f64e7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0f78f549-180d-4d90-92b6-ddf9692be421" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_b8adb59f-7e8f-4268-8191-763d277f64e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_00710594-8d4a-4e5f-bba4-8f4dc173a2f0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0f78f549-180d-4d90-92b6-ddf9692be421" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_00710594-8d4a-4e5f-bba4-8f4dc173a2f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_25d57530-964f-4906-b5b0-b7ac0a704864" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0f78f549-180d-4d90-92b6-ddf9692be421" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_25d57530-964f-4906-b5b0-b7ac0a704864" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_247be432-160c-451f-b17f-0298eae4aed3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0f78f549-180d-4d90-92b6-ddf9692be421" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_247be432-160c-451f-b17f-0298eae4aed3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_65246ba0-8b7b-4bb6-b6cc-3006dd84546c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0f78f549-180d-4d90-92b6-ddf9692be421" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_65246ba0-8b7b-4bb6-b6cc-3006dd84546c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_16063341-cf1b-4fc5-a0d2-516244f8495a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0f78f549-180d-4d90-92b6-ddf9692be421" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_16063341-cf1b-4fc5-a0d2-516244f8495a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_f0a8c3f2-9643-45aa-999a-78103c147da3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0f78f549-180d-4d90-92b6-ddf9692be421" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_f0a8c3f2-9643-45aa-999a-78103c147da3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#GoodwillChangesintheCarryingValueofGoodwillDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_2b88c9c5-eba5-4da9-8613-7abdd2848458" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_5ca5f251-2438-4319-b9f4-12abc8855a3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_2b88c9c5-eba5-4da9-8613-7abdd2848458" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_5ca5f251-2438-4319-b9f4-12abc8855a3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_f6a42168-34a8-4f59-a011-56b5e69c0971" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_5ca5f251-2438-4319-b9f4-12abc8855a3c" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_f6a42168-34a8-4f59-a011-56b5e69c0971" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4ba64bb4-3cdc-4bdf-ba69-b04566e990b4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_f6a42168-34a8-4f59-a011-56b5e69c0971" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4ba64bb4-3cdc-4bdf-ba69-b04566e990b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_019f48c7-5fc6-4024-aa0b-2906aae6cee1" xlink:href="cgnx-20241231.xsd#cgnx_SACSiriusAdvancedCyberneticsGmbHMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4ba64bb4-3cdc-4bdf-ba69-b04566e990b4" xlink:to="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_019f48c7-5fc6-4024-aa0b-2906aae6cee1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_5bb36591-b37f-45d9-bf26-505f5c711c83" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_4ba64bb4-3cdc-4bdf-ba69-b04566e990b4" xlink:to="loc_cgnx_MoritexCorporationMember_5bb36591-b37f-45d9-bf26-505f5c711c83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems_cee4ceb9-f41c-476c-babf-17429395932f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_5ca5f251-2438-4319-b9f4-12abc8855a3c" xlink:to="loc_us-gaap_GoodwillLineItems_cee4ceb9-f41c-476c-babf-17429395932f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillLineItems_cee4ceb9-f41c-476c-babf-17429395932f" xlink:to="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_0de2f0e1-703d-4c6d-826a-0f9ef1262d46" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:to="loc_us-gaap_Goodwill_0de2f0e1-703d-4c6d-826a-0f9ef1262d46" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillOtherIncreaseDecrease_4c625b00-2066-4c6e-97f7-436681fd7186" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillOtherIncreaseDecrease"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:to="loc_us-gaap_GoodwillOtherIncreaseDecrease_4c625b00-2066-4c6e-97f7-436681fd7186" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_58907442-4fea-4cd0-a3fa-432013f91ce7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:to="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_58907442-4fea-4cd0-a3fa-432013f91ce7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_d462787e-211b-414e-8a61-1fa6c6e68796" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_0218fbc1-2774-410d-b5b7-8748947b3ba8" xlink:to="loc_us-gaap_Goodwill_d462787e-211b-414e-8a61-1fa6c6e68796" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_7d2e5a4e-0bf1-40c0-85b0-bfdc7b167c10" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_ca540906-ca8a-453d-a48d-9347d3034f62" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_7d2e5a4e-0bf1-40c0-85b0-bfdc7b167c10" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_ca540906-ca8a-453d-a48d-9347d3034f62" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_f007f197-ca30-49cb-ab25-71cb86795c76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_ca540906-ca8a-453d-a48d-9347d3034f62" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_f007f197-ca30-49cb-ab25-71cb86795c76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_f007f197-ca30-49cb-ab25-71cb86795c76" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_70239f63-4980-4127-a434-7c672334ed48" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DistributionRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_us-gaap_DistributionRightsMember_70239f63-4980-4127-a434-7c672334ed48" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_4ed8bc44-3c05-4341-b28c-6337d73ad3d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_4ed8bc44-3c05-4341-b28c-6337d73ad3d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_f8872ca1-05bd-4b2a-8a32-c27b55c772bd" xlink:href="cgnx-20241231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_f8872ca1-05bd-4b2a-8a32-c27b55c772bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_f36e34e1-344a-4c7c-b681-57488c4e44c3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_f36e34e1-344a-4c7c-b681-57488c4e44c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_8b88383e-ebca-4b55-97ee-9f6b5d67fe4e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_us-gaap_TrademarksMember_8b88383e-ebca-4b55-97ee-9f6b5d67fe4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_0686466d-430c-4bd0-9709-5adafee33385" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherIntangibleAssetsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_77f463aa-6e0b-4e54-84f6-c703f4cd8c04" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_0686466d-430c-4bd0-9709-5adafee33385" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_c56faca3-d2aa-4b87-a7ac-88d9d0def57b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_ca540906-ca8a-453d-a48d-9347d3034f62" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_c56faca3-d2aa-4b87-a7ac-88d9d0def57b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_5eeafaab-9726-44ec-a003-ae5169e51428" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_c56faca3-d2aa-4b87-a7ac-88d9d0def57b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_5eeafaab-9726-44ec-a003-ae5169e51428" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_d0dc49bd-6770-43a3-bf48-d78d4f7f966f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_c56faca3-d2aa-4b87-a7ac-88d9d0def57b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_d0dc49bd-6770-43a3-bf48-d78d4f7f966f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_25bf5c01-a074-4e1e-9d38-845f833ad6fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_c56faca3-d2aa-4b87-a7ac-88d9d0def57b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_25bf5c01-a074-4e1e-9d38-845f833ad6fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IntangibleAssetsNarrativeDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_a920f617-f01a-42d3-8403-5986e0f80e10" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_71b8f239-f7a2-43a3-8f9f-7acbff07fbfe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_a920f617-f01a-42d3-8403-5986e0f80e10" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_71b8f239-f7a2-43a3-8f9f-7acbff07fbfe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_42f79b1c-3e38-491a-9b0c-838a7c345acc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_71b8f239-f7a2-43a3-8f9f-7acbff07fbfe" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_42f79b1c-3e38-491a-9b0c-838a7c345acc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_42f79b1c-3e38-491a-9b0c-838a7c345acc" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_b9aef2cb-b841-456e-b0dd-ef0ec76bebcb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_b9aef2cb-b841-456e-b0dd-ef0ec76bebcb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_86d3dc9a-b351-4b0a-89e2-13dae29983b7" xlink:href="cgnx-20241231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_86d3dc9a-b351-4b0a-89e2-13dae29983b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_ebe86a7b-d05b-49fc-8641-980175c4fedf" xlink:href="cgnx-20241231.xsd#cgnx_DistributionNetworksAndCustomerRelationshipsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_ebe86a7b-d05b-49fc-8641-980175c4fedf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerRelationshipsMember_0d13bd79-9dfd-449c-b1d1-0f4bb4ea7fd7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_us-gaap_CustomerRelationshipsMember_0d13bd79-9dfd-449c-b1d1-0f4bb4ea7fd7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologyMember_38ba4f6e-e4a4-4f8e-b338-5f0aeffedbb2" xlink:href="cgnx-20241231.xsd#cgnx_CompletedTechnologyMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_cgnx_CompletedTechnologyMember_38ba4f6e-e4a4-4f8e-b338-5f0aeffedbb2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_4b0f3527-9660-440a-a372-b18d1f3b6a9c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_9d766e37-5fdd-431a-a880-091df4d25765" xlink:to="loc_us-gaap_TrademarksMember_4b0f3527-9660-440a-a372-b18d1f3b6a9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_807d94ce-624f-4045-9291-6e056b2b4df6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_71b8f239-f7a2-43a3-8f9f-7acbff07fbfe" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_807d94ce-624f-4045-9291-6e056b2b4df6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1cf2ccca-adaa-42f4-af07-20899146bb3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_807d94ce-624f-4045-9291-6e056b2b4df6" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1cf2ccca-adaa-42f4-af07-20899146bb3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_8d6af2e0-d902-4f90-a71c-369ecb7b6578" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1cf2ccca-adaa-42f4-af07-20899146bb3c" xlink:to="loc_cgnx_MoritexCorporationMember_8d6af2e0-d902-4f90-a71c-369ecb7b6578" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_0dca75d6-d72c-481b-8a0f-9e1ddad512ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_71b8f239-f7a2-43a3-8f9f-7acbff07fbfe" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_0dca75d6-d72c-481b-8a0f-9e1ddad512ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_49731977-5822-4573-8ccb-af792b871955" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_0dca75d6-d72c-481b-8a0f-9e1ddad512ae" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_49731977-5822-4573-8ccb-af792b871955" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_77daaba8-b10d-43eb-9d69-b0bddc7db5e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_0dca75d6-d72c-481b-8a0f-9e1ddad512ae" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_77daaba8-b10d-43eb-9d69-b0bddc7db5e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_0a8c62ab-50dc-4aae-8e7d-d5d344022f78" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_0dca75d6-d72c-481b-8a0f-9e1ddad512ae" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_0a8c62ab-50dc-4aae-8e7d-d5d344022f78" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_c3937923-dbb3-4174-ac9b-ab88d4437c06" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_8bef13ec-9ad9-445d-b7c0-9be9109c193b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_c3937923-dbb3-4174-ac9b-ab88d4437c06" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_8bef13ec-9ad9-445d-b7c0-9be9109c193b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_a18bdfd5-c551-447c-9e20-1eb63cfa76b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_c3937923-dbb3-4174-ac9b-ab88d4437c06" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_a18bdfd5-c551-447c-9e20-1eb63cfa76b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_43cf6870-ed72-47c5-8cdd-e4cea0c70ebf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_c3937923-dbb3-4174-ac9b-ab88d4437c06" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_43cf6870-ed72-47c5-8cdd-e4cea0c70ebf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_ca37e81d-4c44-40f7-9626-5b97900798c4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_c3937923-dbb3-4174-ac9b-ab88d4437c06" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_ca37e81d-4c44-40f7-9626-5b97900798c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_0ac61bf4-6a2a-4b4a-b1e2-8524b744b2a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_c3937923-dbb3-4174-ac9b-ab88d4437c06" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_0ac61bf4-6a2a-4b4a-b1e2-8524b744b2a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_7fc136d0-fc98-4698-980a-5437db3219b0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_c3937923-dbb3-4174-ac9b-ab88d4437c06" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_7fc136d0-fc98-4698-980a-5437db3219b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_8f9b6841-26a0-4d60-9f83-068b5b6603a5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_c3937923-dbb3-4174-ac9b-ab88d4437c06" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_8f9b6841-26a0-4d60-9f83-068b5b6603a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#AccruedExpensesConstituentsofAccruedExpensesDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_dafa6349-9b7a-411c-a990-6f34cebdad18" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6638fb58-e80a-468d-b8bf-13beeb5e399c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_dafa6349-9b7a-411c-a990-6f34cebdad18" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6638fb58-e80a-468d-b8bf-13beeb5e399c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedBonusesCurrent_1617a22c-06fa-4c35-91f8-ae2f7c39d9c6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedBonusesCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6638fb58-e80a-468d-b8bf-13beeb5e399c" xlink:to="loc_us-gaap_AccruedBonusesCurrent_1617a22c-06fa-4c35-91f8-ae2f7c39d9c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedSalariesCurrent_d517cd58-f4c1-4bba-88b5-b760bf2c3512" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedSalariesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6638fb58-e80a-468d-b8bf-13beeb5e399c" xlink:to="loc_us-gaap_AccruedSalariesCurrent_d517cd58-f4c1-4bba-88b5-b760bf2c3512" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RetirementAllowance_da525f01-61fa-4fdf-a941-3d30e8f60f08" xlink:href="cgnx-20241231.xsd#cgnx_RetirementAllowance"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6638fb58-e80a-468d-b8bf-13beeb5e399c" xlink:to="loc_cgnx_RetirementAllowance_da525f01-61fa-4fdf-a941-3d30e8f60f08" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedVacationCurrent_06a511bb-df78-43b2-bede-15a1677b3e19" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedVacationCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6638fb58-e80a-468d-b8bf-13beeb5e399c" xlink:to="loc_us-gaap_AccruedVacationCurrent_06a511bb-df78-43b2-bede-15a1677b3e19" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_f8acbf57-cfa7-41b1-ae8c-742118c1e76f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6638fb58-e80a-468d-b8bf-13beeb5e399c" xlink:to="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_f8acbf57-cfa7-41b1-ae8c-742118c1e76f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent_24d7d176-efda-4c19-92c5-621b173ba4c0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAccruedLiabilitiesCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6638fb58-e80a-468d-b8bf-13beeb5e399c" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrent_24d7d176-efda-4c19-92c5-621b173ba4c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_e4d66c12-272a-492e-933c-3bcfa2a12e45" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_6638fb58-e80a-468d-b8bf-13beeb5e399c" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_e4d66c12-272a-492e-933c-3bcfa2a12e45" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#AccruedExpensesChangesinWarrantyObligationsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_81e9fc2b-6751-45cf-b092-fd7aad3f6eb3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88f7c143-d9ed-4660-a3e2-eac14829a345" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MovementInStandardProductWarrantyAccrualRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_81e9fc2b-6751-45cf-b092-fd7aad3f6eb3" xlink:to="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88f7c143-d9ed-4660-a3e2-eac14829a345" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrual_8e59cfb2-0d9f-4ea1-a0dd-dfda90c16305" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyAccrual"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88f7c143-d9ed-4660-a3e2-eac14829a345" xlink:to="loc_us-gaap_ProductWarrantyAccrual_8e59cfb2-0d9f-4ea1-a0dd-dfda90c16305" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_b82275db-21b9-4ae5-b935-4dbfbf0b77a2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyAccrualWarrantiesIssued"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88f7c143-d9ed-4660-a3e2-eac14829a345" xlink:to="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_b82275db-21b9-4ae5-b935-4dbfbf0b77a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualPayments_beddf29d-1518-4884-a714-f54ed88842cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyAccrualPayments"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88f7c143-d9ed-4660-a3e2-eac14829a345" xlink:to="loc_us-gaap_ProductWarrantyAccrualPayments_beddf29d-1518-4884-a714-f54ed88842cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_b8adc298-a0e7-455d-bf9e-eeef8c2ffbd0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88f7c143-d9ed-4660-a3e2-eac14829a345" xlink:to="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_b8adc298-a0e7-455d-bf9e-eeef8c2ffbd0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrual_2da1465b-2842-4ce7-89f4-f9b482588251" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProductWarrantyAccrual"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_88f7c143-d9ed-4660-a3e2-eac14829a345" xlink:to="loc_us-gaap_ProductWarrantyAccrual_2da1465b-2842-4ce7-89f4-f9b482588251" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#CommitmentsandContingenciesAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3b66af65-7ef2-4a19-8aab-d9f66ddf3fcf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_320df5af-8e95-4aa8-b004-5c4865ea6df6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3b66af65-7ef2-4a19-8aab-d9f66ddf3fcf" xlink:to="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_320df5af-8e95-4aa8-b004-5c4865ea6df6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherInventoryPurchasedGoods_c6f9dfae-6555-4c8a-9b9a-da45c4682701" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherInventoryPurchasedGoods"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_3b66af65-7ef2-4a19-8aab-d9f66ddf3fcf" xlink:to="loc_us-gaap_OtherInventoryPurchasedGoods_c6f9dfae-6555-4c8a-9b9a-da45c4682701" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsAdditionalDetailsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_f280ea1b-9e97-4a25-9ef7-0960de0a600f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_b18fd9fa-1046-43ee-a058-6d14c4feb213" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_f280ea1b-9e97-4a25-9ef7-0960de0a600f" xlink:to="loc_us-gaap_DerivativeTable_b18fd9fa-1046-43ee-a058-6d14c4feb213" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_00f3008d-aa7a-4c2d-b6e1-404e66dc5356" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_b18fd9fa-1046-43ee-a058-6d14c4feb213" xlink:to="loc_us-gaap_HedgingDesignationAxis_00f3008d-aa7a-4c2d-b6e1-404e66dc5356" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_65b88b4d-6bff-427b-853a-a4fe1cd3875a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_00f3008d-aa7a-4c2d-b6e1-404e66dc5356" xlink:to="loc_us-gaap_HedgingDesignationDomain_65b88b4d-6bff-427b-853a-a4fe1cd3875a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_db0c15df-ff62-4a1c-9a52-6cbfd89f0573" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_65b88b4d-6bff-427b-853a-a4fe1cd3875a" xlink:to="loc_us-gaap_NondesignatedMember_db0c15df-ff62-4a1c-9a52-6cbfd89f0573" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentRiskAxis_09b4f14c-d405-4479-8607-d78b85cc6bb1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentRiskAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_b18fd9fa-1046-43ee-a058-6d14c4feb213" xlink:to="loc_us-gaap_DerivativeInstrumentRiskAxis_09b4f14c-d405-4479-8607-d78b85cc6bb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeContractTypeDomain_831b5f53-5cbf-4959-80b8-4866af77c502" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeContractTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentRiskAxis_09b4f14c-d405-4479-8607-d78b85cc6bb1" xlink:to="loc_us-gaap_DerivativeContractTypeDomain_831b5f53-5cbf-4959-80b8-4866af77c502" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignExchangeForwardMember_667576fe-60f0-422f-81c7-eb9c365bce22" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignExchangeForwardMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeContractTypeDomain_831b5f53-5cbf-4959-80b8-4866af77c502" xlink:to="loc_us-gaap_ForeignExchangeForwardMember_667576fe-60f0-422f-81c7-eb9c365bce22" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_fd6d49eb-dab4-47aa-a48d-5b6e89150384" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_b18fd9fa-1046-43ee-a058-6d14c4feb213" xlink:to="loc_us-gaap_DerivativeLineItems_fd6d49eb-dab4-47aa-a48d-5b6e89150384" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_66637571-907c-4e1e-b2c2-3486d4ef22ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_fd6d49eb-dab4-47aa-a48d-5b6e89150384" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_66637571-907c-4e1e-b2c2-3486d4ef22ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeNotionalAmount_e44ec0b6-b3fd-4e7c-9c72-e639ab6e085b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeNotionalAmount"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_fd6d49eb-dab4-47aa-a48d-5b6e89150384" xlink:to="loc_us-gaap_DerivativeNotionalAmount_e44ec0b6-b3fd-4e7c-9c72-e639ab6e085b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_e706d06f-358d-4d44-99b7-f4324fba711d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_fd6d49eb-dab4-47aa-a48d-5b6e89150384" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_e706d06f-358d-4d44-99b7-f4324fba711d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_d1faf59a-1e9d-4c31-8ab9-c4283d165259" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_c476d5e7-158d-4c4d-8eae-611a597bd324" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_d1faf59a-1e9d-4c31-8ab9-c4283d165259" xlink:to="loc_us-gaap_DerivativeTable_c476d5e7-158d-4c4d-8eae-611a597bd324" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_2ab3d31b-77f5-4ec0-bf86-f48deb458dad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_c476d5e7-158d-4c4d-8eae-611a597bd324" xlink:to="loc_us-gaap_HedgingDesignationAxis_2ab3d31b-77f5-4ec0-bf86-f48deb458dad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_95f87608-d7e0-4481-8eea-5a9ea39c66f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_2ab3d31b-77f5-4ec0-bf86-f48deb458dad" xlink:to="loc_us-gaap_HedgingDesignationDomain_95f87608-d7e0-4481-8eea-5a9ea39c66f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_6c4d74a7-725c-4478-a480-d0758f8d7cbf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_95f87608-d7e0-4481-8eea-5a9ea39c66f3" xlink:to="loc_us-gaap_NondesignatedMember_6c4d74a7-725c-4478-a480-d0758f8d7cbf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CurrencyAxis_678c68ae-4fd7-4cd2-ad6c-d011f06bfb94" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_CurrencyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_c476d5e7-158d-4c4d-8eae-611a597bd324" xlink:to="loc_srt_CurrencyAxis_678c68ae-4fd7-4cd2-ad6c-d011f06bfb94" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_AllCurrenciesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CurrencyAxis_678c68ae-4fd7-4cd2-ad6c-d011f06bfb94" xlink:to="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_EUR_3a71e713-1000-4546-849d-21a3c5edae0d" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_EUR"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_EUR_3a71e713-1000-4546-849d-21a3c5edae0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_JPY_a1033f51-e240-43fd-9fef-01362545c136" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_JPY"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_JPY_a1033f51-e240-43fd-9fef-01362545c136" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_MXN_0b015ee8-c601-4353-8e2d-af0c1585034f" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_MXN"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_MXN_0b015ee8-c601-4353-8e2d-af0c1585034f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_GBP_46219dc6-6dfb-4017-ac7d-0b4d74ec7b5f" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_GBP"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_GBP_46219dc6-6dfb-4017-ac7d-0b4d74ec7b5f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_HUF_2500652c-96e1-47c0-bd71-3b016dd03fae" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_HUF"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_HUF_2500652c-96e1-47c0-bd71-3b016dd03fae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CAD_be3f6e86-d191-422b-8fcf-3bd2c445cb70" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_CAD"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_CAD_be3f6e86-d191-422b-8fcf-3bd2c445cb70" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CNY_3705cacf-21db-4d62-9f5f-976c82c25945" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_CNY"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_CNY_3705cacf-21db-4d62-9f5f-976c82c25945" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CHF_052a3b0a-0df5-4074-9455-bb106e0a1c51" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_CHF"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_CHF_052a3b0a-0df5-4074-9455-bb106e0a1c51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_SGD_4afa5a6d-b3bc-4974-8ac3-9b16f17ce311" xlink:href="https://xbrl.sec.gov/currency/2024/currency-2024.xsd#currency_SGD"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_8ff66044-08c7-46ae-b671-9b71d410eca2" xlink:to="loc_currency_SGD_4afa5a6d-b3bc-4974-8ac3-9b16f17ce311" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_24d76418-04ab-4108-887a-875059a8345e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_c476d5e7-158d-4c4d-8eae-611a597bd324" xlink:to="loc_us-gaap_DerivativeLineItems_24d76418-04ab-4108-887a-875059a8345e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_acbb3a60-d4a8-4033-826e-7bd83636cca7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssetNotionalAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_24d76418-04ab-4108-887a-875059a8345e" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_acbb3a60-d4a8-4033-826e-7bd83636cca7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_c72bb4ff-790c-4dac-8772-5a22921d12fe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_9715889d-c511-4e06-aa73-ebd63b07d72c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_c72bb4ff-790c-4dac-8772-5a22921d12fe" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_9715889d-c511-4e06-aa73-ebd63b07d72c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_99dd5d22-52f5-4f99-b5f5-1f553221f53f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_9715889d-c511-4e06-aa73-ebd63b07d72c" xlink:to="loc_us-gaap_HedgingDesignationAxis_99dd5d22-52f5-4f99-b5f5-1f553221f53f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_e97504e5-a6de-468c-bf39-6a731b3dd50c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_99dd5d22-52f5-4f99-b5f5-1f553221f53f" xlink:to="loc_us-gaap_HedgingDesignationDomain_e97504e5-a6de-468c-bf39-6a731b3dd50c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_510c2d29-f005-4088-ac24-2c1537f808ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_e97504e5-a6de-468c-bf39-6a731b3dd50c" xlink:to="loc_us-gaap_NondesignatedMember_510c2d29-f005-4088-ac24-2c1537f808ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_8670d245-bee3-41ce-ae12-144f0b9d3c07" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativesFairValueLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_9715889d-c511-4e06-aa73-ebd63b07d72c" xlink:to="loc_us-gaap_DerivativesFairValueLineItems_8670d245-bee3-41ce-ae12-144f0b9d3c07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_43e4c411-628e-434f-8e5f-804b8156ea72" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssets"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_8670d245-bee3-41ce-ae12-144f0b9d3c07" xlink:to="loc_us-gaap_DerivativeAssets_43e4c411-628e-434f-8e5f-804b8156ea72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_d7e101e2-112b-4ed4-bf09-aca5dc9ed196" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLiabilities"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_8670d245-bee3-41ce-ae12-144f0b9d3c07" xlink:to="loc_us-gaap_DerivativeLiabilities_d7e101e2-112b-4ed4-bf09-aca5dc9ed196" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8f572188-2882-4bf6-8c19-6fec98248fa2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_acf4fd2a-6558-4adc-b882-a82f867b2a7a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8f572188-2882-4bf6-8c19-6fec98248fa2" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_acf4fd2a-6558-4adc-b882-a82f867b2a7a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_10b04619-b34e-4d37-a8e6-23819cc8569a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8f572188-2882-4bf6-8c19-6fec98248fa2" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_10b04619-b34e-4d37-a8e6-23819cc8569a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_b84aad38-3505-4bd7-9b4e-4b232f06d121" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssets"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8f572188-2882-4bf6-8c19-6fec98248fa2" xlink:to="loc_us-gaap_DerivativeAssets_b84aad38-3505-4bd7-9b4e-4b232f06d121" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_dde4afe8-9962-4974-8478-de448a75caee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8f572188-2882-4bf6-8c19-6fec98248fa2" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_dde4afe8-9962-4974-8478-de448a75caee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_85501234-ebe1-4f42-8c64-11470c6a5006" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8f572188-2882-4bf6-8c19-6fec98248fa2" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_85501234-ebe1-4f42-8c64-11470c6a5006" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_f8903f87-10f2-4512-a293-c4def8b04186" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLiabilities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8f572188-2882-4bf6-8c19-6fec98248fa2" xlink:to="loc_us-gaap_DerivativeLiabilities_f8903f87-10f2-4512-a293-c4def8b04186" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_c1c730ac-aa08-47e7-bf32-4b232b516b37" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8f572188-2882-4bf6-8c19-6fec98248fa2" xlink:to="loc_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_c1c730ac-aa08-47e7-bf32-4b232b516b37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_cc4a095e-1b90-4068-996a-68135f3718a3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_8f572188-2882-4bf6-8c19-6fec98248fa2" xlink:to="loc_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_cc4a095e-1b90-4068-996a-68135f3718a3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_15989b48-b02f-4426-ad59-c4b2fc7a4de8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3dcbc12f-4ea1-433d-9ca0-176447ebea0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_15989b48-b02f-4426-ad59-c4b2fc7a4de8" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3dcbc12f-4ea1-433d-9ca0-176447ebea0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_d6d8f979-16fe-482c-bec9-835c40ef41b2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3dcbc12f-4ea1-433d-9ca0-176447ebea0b" xlink:to="loc_us-gaap_HedgingDesignationAxis_d6d8f979-16fe-482c-bec9-835c40ef41b2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_fb07287f-eb64-415c-b790-12ff06528cb2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_d6d8f979-16fe-482c-bec9-835c40ef41b2" xlink:to="loc_us-gaap_HedgingDesignationDomain_fb07287f-eb64-415c-b790-12ff06528cb2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_3d92e38e-86a6-4d59-9e38-89b30bef0759" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_fb07287f-eb64-415c-b790-12ff06528cb2" xlink:to="loc_us-gaap_NondesignatedMember_3d92e38e-86a6-4d59-9e38-89b30bef0759" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_fb5c1864-d70d-47fe-af54-93a1ec7bc6df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3dcbc12f-4ea1-433d-9ca0-176447ebea0b" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_fb5c1864-d70d-47fe-af54-93a1ec7bc6df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_a5582256-89ab-42c8-804f-b7482360d1ec" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_fb5c1864-d70d-47fe-af54-93a1ec7bc6df" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_a5582256-89ab-42c8-804f-b7482360d1ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#RevenueRecognitionNarrativesDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_bcd1c139-b380-4204-b53d-3afb4bafa1ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalizedContractCostGross_c4ad6b36-4ece-441b-94f5-951917f7c726" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CapitalizedContractCostGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_bcd1c139-b380-4204-b53d-3afb4bafa1ca" xlink:to="loc_us-gaap_CapitalizedContractCostGross_c4ad6b36-4ece-441b-94f5-951917f7c726" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAmortizationOfDeferredCharges_ac689680-e10b-484c-b836-26b7272ff55c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherAmortizationOfDeferredCharges"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_bcd1c139-b380-4204-b53d-3afb4bafa1ca" xlink:to="loc_us-gaap_OtherAmortizationOfDeferredCharges_ac689680-e10b-484c-b836-26b7272ff55c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_b725f3f6-1f30-4bb1-a910-d3cb41e9a7c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_bcd1c139-b380-4204-b53d-3afb4bafa1ca" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_b725f3f6-1f30-4bb1-a910-d3cb41e9a7c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#RevenueRecognitionDisaggregationbyGeographyandTypeDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_37038ba0-400f-4c63-9425-9014e7c7e3af" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_5f1fc937-d69c-478c-ac7a-e23b741aed85" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_37038ba0-400f-4c63-9425-9014e7c7e3af" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_5f1fc937-d69c-478c-ac7a-e23b741aed85" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_8eb17120-5574-49b9-851f-ba8215bc40a8" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_5f1fc937-d69c-478c-ac7a-e23b741aed85" xlink:to="loc_srt_StatementGeographicalAxis_8eb17120-5574-49b9-851f-ba8215bc40a8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_8eb17120-5574-49b9-851f-ba8215bc40a8" xlink:to="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_83b6844e-7f58-48dc-9f4f-96b9ab7d009e" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_AmericasMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:to="loc_srt_AmericasMember_83b6844e-7f58-48dc-9f4f-96b9ab7d009e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_9cacf501-56e5-453c-a0d2-981e76753ce0" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EuropeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:to="loc_srt_EuropeMember_9cacf501-56e5-453c-a0d2-981e76753ce0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_4d88cbe9-2435-4c41-b2ef-f517375c820b" xlink:href="cgnx-20241231.xsd#cgnx_GreaterChinaMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:to="loc_cgnx_GreaterChinaMember_4d88cbe9-2435-4c41-b2ef-f517375c820b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherAsiaMember_1b2b8f64-ce3b-401b-adc9-7accfb3bf1e8" xlink:href="cgnx-20241231.xsd#cgnx_OtherAsiaMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_606a896c-00ad-4700-8b80-04fea1dbdf3d" xlink:to="loc_cgnx_OtherAsiaMember_1b2b8f64-ce3b-401b-adc9-7accfb3bf1e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_bddcc2b4-4a89-40e8-a905-247d56de8418" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_5f1fc937-d69c-478c-ac7a-e23b741aed85" xlink:to="loc_srt_ProductOrServiceAxis_bddcc2b4-4a89-40e8-a905-247d56de8418" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_252ad1d5-7449-48ca-93c3-e3fb6b9a81b4" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_bddcc2b4-4a89-40e8-a905-247d56de8418" xlink:to="loc_srt_ProductsAndServicesDomain_252ad1d5-7449-48ca-93c3-e3fb6b9a81b4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductandServicesMember_411f7be8-5bce-4fff-9953-bb0508d79904" xlink:href="cgnx-20241231.xsd#cgnx_StandardProductandServicesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_252ad1d5-7449-48ca-93c3-e3fb6b9a81b4" xlink:to="loc_cgnx_StandardProductandServicesMember_411f7be8-5bce-4fff-9953-bb0508d79904" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_58631107-a91c-4278-9d82-8ab565ea947e" xlink:href="cgnx-20241231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_252ad1d5-7449-48ca-93c3-e3fb6b9a81b4" xlink:to="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_58631107-a91c-4278-9d82-8ab565ea947e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_1f984f4d-0e9a-4db6-ab33-ff6a69b48465" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_5f1fc937-d69c-478c-ac7a-e23b741aed85" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_1f984f4d-0e9a-4db6-ab33-ff6a69b48465" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_49b00294-ca31-40db-98a5-f814c70d0067" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_1f984f4d-0e9a-4db6-ab33-ff6a69b48465" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_49b00294-ca31-40db-98a5-f814c70d0067" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#RevenueRecognitionAllowanceforCreditLossDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract_09bbcd18-3962-42ac-945a-ba83c441fe87" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueRecognitionAndDeferredRevenueAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_16914912-b679-44ff-be92-978449ba5de5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract_09bbcd18-3962-42ac-945a-ba83c441fe87" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_16914912-b679-44ff-be92-978449ba5de5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_4003f759-f527-464e-8e78-e8f2b3eff063" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_16914912-b679-44ff-be92-978449ba5de5" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_4003f759-f527-464e-8e78-e8f2b3eff063" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_77259580-2ca8-4e25-8a19-fcc730ed117a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_16914912-b679-44ff-be92-978449ba5de5" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_77259580-2ca8-4e25-8a19-fcc730ed117a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_dda1c027-900d-46bb-be96-09ec52e416b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_16914912-b679-44ff-be92-978449ba5de5" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_dda1c027-900d-46bb-be96-09ec52e416b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_0488dc72-5636-41ce-a948-c7f6284a800f" xlink:href="cgnx-20241231.xsd#cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_16914912-b679-44ff-be92-978449ba5de5" xlink:to="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_0488dc72-5636-41ce-a948-c7f6284a800f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_36fbe89f-ad02-4681-9c17-712f070cc0e2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_16914912-b679-44ff-be92-978449ba5de5" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_36fbe89f-ad02-4681-9c17-712f070cc0e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_344494ae-14e4-485a-a691-29a3f0a2dd25" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_47b0ff1c-42ed-4fbb-a346-eb71838055ff" xlink:href="cgnx-20241231.xsd#cgnx_CustomerContractsLiabilityCurrentRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_344494ae-14e4-485a-a691-29a3f0a2dd25" xlink:to="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_47b0ff1c-42ed-4fbb-a346-eb71838055ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_19f6d7b5-d538-45c6-8f5f-ed8a51d83505" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_47b0ff1c-42ed-4fbb-a346-eb71838055ff" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_19f6d7b5-d538-45c6-8f5f-ed8a51d83505" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_2a894a2c-13ff-46ff-8390-3711925a523b" xlink:href="cgnx-20241231.xsd#cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_47b0ff1c-42ed-4fbb-a346-eb71838055ff" xlink:to="loc_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_2a894a2c-13ff-46ff-8390-3711925a523b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_6b2cdf36-7e65-417a-968c-98e9a3c85bf4" xlink:href="cgnx-20241231.xsd#cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_47b0ff1c-42ed-4fbb-a346-eb71838055ff" xlink:to="loc_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_6b2cdf36-7e65-417a-968c-98e9a3c85bf4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_00a8ca1d-ee83-4903-bf55-d198b63fe8a5" xlink:href="cgnx-20241231.xsd#cgnx_ContractLiabilityForeignExchangeRateChanges"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_47b0ff1c-42ed-4fbb-a346-eb71838055ff" xlink:to="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_00a8ca1d-ee83-4903-bf55-d198b63fe8a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_ca5a580e-1784-4f46-9e06-356a621f2b1f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_47b0ff1c-42ed-4fbb-a346-eb71838055ff" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_ca5a580e-1784-4f46-9e06-356a621f2b1f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueRefundPayments1_38b3ba3a-486e-4e7e-a234-26aa8d068953" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredRevenueRefundPayments1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_344494ae-14e4-485a-a691-29a3f0a2dd25" xlink:to="loc_us-gaap_DeferredRevenueRefundPayments1_38b3ba3a-486e-4e7e-a234-26aa8d068953" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#ShareholdersEquityAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_8cbace4d-7a1c-46b7-adaa-f2692aee0945" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_30ff7d74-f228-4c11-affe-1a5ad251c052" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_8cbace4d-7a1c-46b7-adaa-f2692aee0945" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_30ff7d74-f228-4c11-affe-1a5ad251c052" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ShareRepurchaseProgramAxis_47b8c589-de11-4aed-98cd-e9caaea6089b" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ShareRepurchaseProgramAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_30ff7d74-f228-4c11-affe-1a5ad251c052" xlink:to="loc_srt_ShareRepurchaseProgramAxis_47b8c589-de11-4aed-98cd-e9caaea6089b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ShareRepurchaseProgramDomain_76b55fb0-f0a0-4a39-aadf-5da30a0091f9" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ShareRepurchaseProgramDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ShareRepurchaseProgramAxis_47b8c589-de11-4aed-98cd-e9caaea6089b" xlink:to="loc_srt_ShareRepurchaseProgramDomain_76b55fb0-f0a0-4a39-aadf-5da30a0091f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member_cf80845d-5167-4217-ae50-3c65cb81d8c5" xlink:href="cgnx-20241231.xsd#cgnx_RepurchaseProgramMarch2020Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ShareRepurchaseProgramDomain_76b55fb0-f0a0-4a39-aadf-5da30a0091f9" xlink:to="loc_cgnx_RepurchaseProgramMarch2020Member_cf80845d-5167-4217-ae50-3c65cb81d8c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2022Member_7ffe2ff1-010e-4d5b-8192-ba2c18193fde" xlink:href="cgnx-20241231.xsd#cgnx_RepurchaseProgramMarch2022Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ShareRepurchaseProgramDomain_76b55fb0-f0a0-4a39-aadf-5da30a0091f9" xlink:to="loc_cgnx_RepurchaseProgramMarch2022Member_7ffe2ff1-010e-4d5b-8192-ba2c18193fde" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_30ff7d74-f228-4c11-affe-1a5ad251c052" xlink:to="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_26191e24-8dd0-4c48-85d8-cfd7f047379c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_26191e24-8dd0-4c48-85d8-cfd7f047379c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_9bb6a706-ee8a-4634-b7bf-b3bafa4d7e17" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_9bb6a706-ee8a-4634-b7bf-b3bafa4d7e17" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_026bda82-180e-489a-9dbe-e27e3292f2f9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_026bda82-180e-489a-9dbe-e27e3292f2f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_76bdc30a-0e95-4d82-9afc-3977c853b5a9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_76bdc30a-0e95-4d82-9afc-3977c853b5a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_4aadb657-6c9c-409e-8ed5-247070a90ebf" xlink:href="cgnx-20241231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_4aadb657-6c9c-409e-8ed5-247070a90ebf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StockRepurchaseProgramAuthorizedAmount1_798b2b6c-8462-42a7-8ac6-b0616ce70a4e" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_srt_StockRepurchaseProgramAuthorizedAmount1_798b2b6c-8462-42a7-8ac6-b0616ce70a4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_4a57a2b1-8e17-46aa-98d3-4cecc63df9da" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_4a57a2b1-8e17-46aa-98d3-4cecc63df9da" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_752d4e30-2f05-4554-8423-65daa666555a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_752d4e30-2f05-4554-8423-65daa666555a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_5a868045-0bf8-4943-859c-5c72b8b36a20" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodShares"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_5a868045-0bf8-4943-859c-5c72b8b36a20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_b2e3ea59-3cef-40b0-85aa-3dbf6825fa77" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodValue"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_b2e3ea59-3cef-40b0-85aa-3dbf6825fa77" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_bf45855f-5eb9-4647-8c63-72dc4131efff" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_bf45855f-5eb9-4647-8c63-72dc4131efff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramBuybackExciseTax_e3a02fe0-031a-4716-abd0-855b5c142149" xlink:href="cgnx-20241231.xsd#cgnx_StockRepurchaseProgramBuybackExciseTax"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_cgnx_StockRepurchaseProgramBuybackExciseTax_e3a02fe0-031a-4716-abd0-855b5c142149" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_0c91d07e-7542-45a4-94cf-5f3cfe903b66" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_0c91d07e-7542-45a4-94cf-5f3cfe903b66" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividends_7f5b3ea6-fc56-4559-885b-6bb815ab57f5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsOfDividends"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_8c602665-6678-4f98-a281-26689b0780dc" xlink:to="loc_us-gaap_PaymentsOfDividends_7f5b3ea6-fc56-4559-885b-6bb815ab57f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_bb4463e6-ff61-4033-9a61-480bbb5f02da" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_bb4463e6-ff61-4033-9a61-480bbb5f02da" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_f4ecb726-68da-49e6-9e87-dc3eed9813b1" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:to="loc_srt_RangeAxis_f4ecb726-68da-49e6-9e87-dc3eed9813b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_2e9c9ddf-e293-4a19-9a95-cd299b906ec8" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_f4ecb726-68da-49e6-9e87-dc3eed9813b1" xlink:to="loc_srt_RangeMember_2e9c9ddf-e293-4a19-9a95-cd299b906ec8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_74ef2fac-1be3-42ef-9b7c-7eb0ec7e1145" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_2e9c9ddf-e293-4a19-9a95-cd299b906ec8" xlink:to="loc_srt_MinimumMember_74ef2fac-1be3-42ef-9b7c-7eb0ec7e1145" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_3fa16aee-6361-4ffb-8f9a-e5efb487b955" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_2e9c9ddf-e293-4a19-9a95-cd299b906ec8" xlink:to="loc_srt_MaximumMember_3fa16aee-6361-4ffb-8f9a-e5efb487b955" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_ccf5fb14-4ced-42ae-bd16-8896d664b1e4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:to="loc_us-gaap_AwardTypeAxis_ccf5fb14-4ced-42ae-bd16-8896d664b1e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_e3760536-ff92-424a-9363-d3487586250c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_ccf5fb14-4ced-42ae-bd16-8896d664b1e4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_e3760536-ff92-424a-9363-d3487586250c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_c61e20b7-aa3f-4c2e-a929-e04b220f4e54" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_e3760536-ff92-424a-9363-d3487586250c" xlink:to="loc_us-gaap_EmployeeStockOptionMember_c61e20b7-aa3f-4c2e-a929-e04b220f4e54" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_1a284508-fa9a-4a98-a2ed-0aabaace6be0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_e3760536-ff92-424a-9363-d3487586250c" xlink:to="loc_us-gaap_PerformanceSharesMember_1a284508-fa9a-4a98-a2ed-0aabaace6be0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_ee60bf3f-2130-44b4-9605-e5cdca2c48f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_e3760536-ff92-424a-9363-d3487586250c" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_ee60bf3f-2130-44b4-9605-e5cdca2c48f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_859eeaa9-db79-4a59-8e6a-ae04fb5073b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:to="loc_us-gaap_PlanNameAxis_859eeaa9-db79-4a59-8e6a-ae04fb5073b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_cc7c5869-9b08-4839-ad16-a989097d9aa9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameAxis_859eeaa9-db79-4a59-8e6a-ae04fb5073b6" xlink:to="loc_us-gaap_PlanNameDomain_cc7c5869-9b08-4839-ad16-a989097d9aa9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_829f8336-24bb-4e66-a3f5-84ab1c96d97b" xlink:href="cgnx-20241231.xsd#cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_cc7c5869-9b08-4839-ad16-a989097d9aa9" xlink:to="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_829f8336-24bb-4e66-a3f5-84ab1c96d97b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_6e971e89-d69d-45ed-a082-e50e61d30b91" xlink:href="cgnx-20241231.xsd#cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_cc7c5869-9b08-4839-ad16-a989097d9aa9" xlink:to="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_6e971e89-d69d-45ed-a082-e50e61d30b91" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_d585cc46-ccf2-4bcf-a9c5-a828784fb6ed" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_f1b9447c-f930-44ea-b88f-84a6fb7f1cf4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_f1b9447c-f930-44ea-b88f-84a6fb7f1cf4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_b5bf4ef8-ba3c-4d94-b8c3-1a2bd1d761a9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_b5bf4ef8-ba3c-4d94-b8c3-1a2bd1d761a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_0280b32f-908d-4fbc-b922-fc014dce1dcc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_0280b32f-908d-4fbc-b922-fc014dce1dcc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_8f50a375-e63c-426f-a253-8f5b3d8e8b0f" xlink:href="cgnx-20241231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_8f50a375-e63c-426f-a253-8f5b3d8e8b0f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_8c79a7df-6e44-4832-a1a3-9ae04906e7fe" xlink:href="cgnx-20241231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_8c79a7df-6e44-4832-a1a3-9ae04906e7fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_990ad579-7959-49fc-bd2f-3dbac1b64bd3" xlink:href="cgnx-20241231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_990ad579-7959-49fc-bd2f-3dbac1b64bd3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_f85c1675-edbd-4ce5-8a75-ac8017185e65" xlink:href="cgnx-20241231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_f85c1675-edbd-4ce5-8a75-ac8017185e65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_c610139f-dbdf-4dbc-aa01-c826d1fd2e9f" xlink:href="cgnx-20241231.xsd#cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_c610139f-dbdf-4dbc-aa01-c826d1fd2e9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_d33e3dd8-ed5a-475e-a57a-ea99a381091f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_d33e3dd8-ed5a-475e-a57a-ea99a381091f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_d8840342-aff9-4622-9e82-f5fc58ab1dbd" xlink:href="cgnx-20241231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_d8840342-aff9-4622-9e82-f5fc58ab1dbd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_a8a2d512-ef50-4cea-bd4e-b27311df7990" xlink:href="cgnx-20241231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_a8a2d512-ef50-4cea-bd4e-b27311df7990" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_69ca6fb6-3eac-44c9-a8f6-cf2e5aaea3c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_69ca6fb6-3eac-44c9-a8f6-cf2e5aaea3c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_85bbc08e-f007-44f5-8fff-35b2433b0fc1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_85bbc08e-f007-44f5-8fff-35b2433b0fc1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_9cac0862-29ce-4333-9017-5ce07dd8712d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_9cac0862-29ce-4333-9017-5ce07dd8712d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_26a84ae6-be00-4dc9-b52c-29ba9dd9c517" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_26a84ae6-be00-4dc9-b52c-29ba9dd9c517" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_df86312d-4bd2-4b36-9be7-a57aee3a8667" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_df86312d-4bd2-4b36-9be7-a57aee3a8667" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_a0bc8482-171c-4da9-9ab7-461c33f7cbdc" xlink:href="cgnx-20241231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_a0bc8482-171c-4da9-9ab7-461c33f7cbdc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a04f3f73-4606-4ca9-ac75-1e117d04cfe1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a04f3f73-4606-4ca9-ac75-1e117d04cfe1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_137d2029-8d4d-4091-bb01-b2e7536ab408" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_137d2029-8d4d-4091-bb01-b2e7536ab408" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_42249bb7-0745-4c3d-9bc7-d02f84e59021" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_42249bb7-0745-4c3d-9bc7-d02f84e59021" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_3a27b1f2-65ff-4e3f-afb7-1e773cef42c6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_3a27b1f2-65ff-4e3f-afb7-1e773cef42c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_aa564f58-23ce-432e-9937-c3ad81ada3be" xlink:href="cgnx-20241231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_6bc5ae89-168d-48b9-9ebb-baa1dee9ec87" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_aa564f58-23ce-432e-9937-c3ad81ada3be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_89ab5211-6fc2-4660-8a94-6ceed1aa1ab6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_89ab5211-6fc2-4660-8a94-6ceed1aa1ab6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_b252e823-d851-46e9-9480-a98181c8021e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_89ab5211-6fc2-4660-8a94-6ceed1aa1ab6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_b252e823-d851-46e9-9480-a98181c8021e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_4024abec-2482-40a6-9b4e-960144b35504" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_89ab5211-6fc2-4660-8a94-6ceed1aa1ab6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_4024abec-2482-40a6-9b4e-960144b35504" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_c4cbfa00-2004-4c7d-a014-ab716d21dbe2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_89ab5211-6fc2-4660-8a94-6ceed1aa1ab6" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_c4cbfa00-2004-4c7d-a014-ab716d21dbe2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_48a10d56-7d98-42f4-9a7d-4e249ce6e5ea" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_89ab5211-6fc2-4660-8a94-6ceed1aa1ab6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_48a10d56-7d98-42f4-9a7d-4e249ce6e5ea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_c43ab6cb-1d2e-4c61-a6b8-ed9d278279fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_89ab5211-6fc2-4660-8a94-6ceed1aa1ab6" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_c43ab6cb-1d2e-4c61-a6b8-ed9d278279fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1e02080b-5c4d-41fa-ac10-f9ea7b90eb7e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1e02080b-5c4d-41fa-ac10-f9ea7b90eb7e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_dc0e9750-f2c4-4e2d-b9cb-7556191fa75f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1e02080b-5c4d-41fa-ac10-f9ea7b90eb7e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_dc0e9750-f2c4-4e2d-b9cb-7556191fa75f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_71082125-123f-4230-afb6-81630da0378b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1e02080b-5c4d-41fa-ac10-f9ea7b90eb7e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_71082125-123f-4230-afb6-81630da0378b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_c943fe84-d19c-4fd4-9ff8-78285133dcda" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1e02080b-5c4d-41fa-ac10-f9ea7b90eb7e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_c943fe84-d19c-4fd4-9ff8-78285133dcda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_d4755bbb-f078-4bb4-95c6-9693d55d029a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1e02080b-5c4d-41fa-ac10-f9ea7b90eb7e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_d4755bbb-f078-4bb4-95c6-9693d55d029a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_10f570dd-2eb4-4f20-b7cb-64410c501781" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_1e02080b-5c4d-41fa-ac10-f9ea7b90eb7e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_10f570dd-2eb4-4f20-b7cb-64410c501781" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_9b265034-b1c9-40a4-a970-199aa3c542c3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_9b265034-b1c9-40a4-a970-199aa3c542c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_590a20d4-9634-4fb1-aa56-6debae8b8105" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_590a20d4-9634-4fb1-aa56-6debae8b8105" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_ba441ff2-fc6f-45d3-8733-7459b79bb48d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_ba441ff2-fc6f-45d3-8733-7459b79bb48d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_a3e0e662-a52e-4d2f-8e96-ccc2c715e0f5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_a3e0e662-a52e-4d2f-8e96-ccc2c715e0f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_a53a8f2d-4cd2-4a3b-9829-4e771cd9111d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_a53a8f2d-4cd2-4a3b-9829-4e771cd9111d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_446c71cc-3ae0-490f-9310-705fa52cfc6a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_446c71cc-3ae0-490f-9310-705fa52cfc6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_4a171f2c-51d5-4c18-9617-b413058e19d3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_4a171f2c-51d5-4c18-9617-b413058e19d3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_433f4837-8f24-4c29-83ac-32a9912e026b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_433f4837-8f24-4c29-83ac-32a9912e026b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_64aceae1-870b-425e-9a79-e0e0bcedc5dd" xlink:href="cgnx-20241231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_64aceae1-870b-425e-9a79-e0e0bcedc5dd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_da38ab4d-5a51-487e-b2c6-2ec7c1426f66" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_da38ab4d-5a51-487e-b2c6-2ec7c1426f66" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised_19f24a26-39d4-4e40-848f-861db2507fe2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_ProceedsFromStockOptionsExercised_19f24a26-39d4-4e40-848f-861db2507fe2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_b377f3e1-4207-455b-8ba7-4eedd79e3e21" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36a6b554-4d14-42d5-8036-2ca71a735043" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_b377f3e1-4207-455b-8ba7-4eedd79e3e21" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_4b4c1ac2-1d92-41d3-a189-b140d740785e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_51550024-e9a1-458a-b73b-887ba7cb839b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_4b4c1ac2-1d92-41d3-a189-b140d740785e" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_51550024-e9a1-458a-b73b-887ba7cb839b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_806eea81-50c7-40cc-8c2c-df385590fb0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_51550024-e9a1-458a-b73b-887ba7cb839b" xlink:to="loc_us-gaap_AwardTypeAxis_806eea81-50c7-40cc-8c2c-df385590fb0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_320df99f-9f7d-4dda-8445-f1ad38220b07" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_806eea81-50c7-40cc-8c2c-df385590fb0b" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_320df99f-9f7d-4dda-8445-f1ad38220b07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_719b67c8-e730-426a-a2c6-56b1d26f8a67" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_320df99f-9f7d-4dda-8445-f1ad38220b07" xlink:to="loc_us-gaap_EmployeeStockOptionMember_719b67c8-e730-426a-a2c6-56b1d26f8a67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_a199393e-51e3-46df-8fb7-ff23cfb93ac8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_320df99f-9f7d-4dda-8445-f1ad38220b07" xlink:to="loc_us-gaap_RestrictedStockMember_a199393e-51e3-46df-8fb7-ff23cfb93ac8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_51550024-e9a1-458a-b73b-887ba7cb839b" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_ea29edbc-2dc3-4726-bc68-55838c5d7fb2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_ea29edbc-2dc3-4726-bc68-55838c5d7fb2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_0fbc4c52-051c-4096-8f7e-2ae0a149f038" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_0fbc4c52-051c-4096-8f7e-2ae0a149f038" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_b1341250-9a12-43d7-a60b-51232c3d39dc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_b1341250-9a12-43d7-a60b-51232c3d39dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_b731ac67-6eb9-41f7-80ef-b6c4db2ea1b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_736beb50-ee06-488e-a0f5-329c0bc6c94d" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_b731ac67-6eb9-41f7-80ef-b6c4db2ea1b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_51e2aa7c-c568-4218-ab2b-4e34e93d245d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_ae13b95a-5cf9-4649-8eb0-c0f529c127d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_51e2aa7c-c568-4218-ab2b-4e34e93d245d" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_ae13b95a-5cf9-4649-8eb0-c0f529c127d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_423a371e-0862-4598-bf7a-1233a154d1c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_ae13b95a-5cf9-4649-8eb0-c0f529c127d7" xlink:to="loc_us-gaap_AwardTypeAxis_423a371e-0862-4598-bf7a-1233a154d1c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d7ccf453-9829-4e02-b732-2df919026f0a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_423a371e-0862-4598-bf7a-1233a154d1c7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d7ccf453-9829-4e02-b732-2df919026f0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_1000db77-a473-4d16-8ddf-546fa49e8b76" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d7ccf453-9829-4e02-b732-2df919026f0a" xlink:to="loc_us-gaap_RestrictedStockMember_1000db77-a473-4d16-8ddf-546fa49e8b76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_df74c8c6-67be-4665-9a84-f871a2c6adad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_ae13b95a-5cf9-4649-8eb0-c0f529c127d7" xlink:to="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_df74c8c6-67be-4665-9a84-f871a2c6adad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_df74c8c6-67be-4665-9a84-f871a2c6adad" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_0a39c975-aa93-45b1-aad2-bedf49c86efb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_0a39c975-aa93-45b1-aad2-bedf49c86efb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_2352a94f-a923-491c-8628-0a80bd86c24e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_2352a94f-a923-491c-8628-0a80bd86c24e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_860111b0-384b-4685-8389-1f57247d8a45" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_860111b0-384b-4685-8389-1f57247d8a45" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_13ad6075-888a-4f5e-afa0-4efbcd5cdbc7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_13ad6075-888a-4f5e-afa0-4efbcd5cdbc7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_079b8aac-2b35-4c21-85c0-869ee0caa3cd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_4dc0b127-504d-4f67-ab36-baf3d268e489" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_079b8aac-2b35-4c21-85c0-869ee0caa3cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_df74c8c6-67be-4665-9a84-f871a2c6adad" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_986a3f4b-6e53-40bb-b1a9-6191430de9a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_986a3f4b-6e53-40bb-b1a9-6191430de9a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_af302852-9189-4500-bacc-63e1a4374b9c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_af302852-9189-4500-bacc-63e1a4374b9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_d4d9fc76-a29e-4114-806f-a0c2f53dc297" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_d4d9fc76-a29e-4114-806f-a0c2f53dc297" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_1d69ec5a-41d7-4d12-97f1-632217391434" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_1d69ec5a-41d7-4d12-97f1-632217391434" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_be513e0e-fff2-4226-80d8-fc11c29d5980" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_923f078a-6016-4928-a9cb-cee8dde57344" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_be513e0e-fff2-4226-80d8-fc11c29d5980" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_03d877eb-597e-42ce-97ee-48c6b1c8fc1c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_94572f80-ad05-4c4a-8276-3b0426dcded1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_03d877eb-597e-42ce-97ee-48c6b1c8fc1c" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_94572f80-ad05-4c4a-8276-3b0426dcded1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_4f364602-ac4f-41de-9978-ad47c9270708" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_03d877eb-597e-42ce-97ee-48c6b1c8fc1c" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_4f364602-ac4f-41de-9978-ad47c9270708" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_d4358cf0-7881-49e6-99df-0d07c7375e7e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_4f364602-ac4f-41de-9978-ad47c9270708" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_d4358cf0-7881-49e6-99df-0d07c7375e7e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_e51ff168-0d1c-49e6-8461-a773297a5b41" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_d4358cf0-7881-49e6-99df-0d07c7375e7e" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_e51ff168-0d1c-49e6-8461-a773297a5b41" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductCostOfRevenueMember_03f91eb3-a000-4ff4-9f33-e3926c812e81" xlink:href="cgnx-20241231.xsd#cgnx_ProductCostOfRevenueMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_e51ff168-0d1c-49e6-8461-a773297a5b41" xlink:to="loc_cgnx_ProductCostOfRevenueMember_03f91eb3-a000-4ff4-9f33-e3926c812e81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_b8430b47-9208-49b2-a532-4a18e485ab93" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_e51ff168-0d1c-49e6-8461-a773297a5b41" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_b8430b47-9208-49b2-a532-4a18e485ab93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_9ad84585-d389-474b-813b-5800d18aa9aa" xlink:href="cgnx-20241231.xsd#cgnx_SellingGeneralAndAdministrativeMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_e51ff168-0d1c-49e6-8461-a773297a5b41" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_9ad84585-d389-474b-813b-5800d18aa9aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_559fc4cd-a5ed-44e0-a947-a6ad729f130b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_4f364602-ac4f-41de-9978-ad47c9270708" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_559fc4cd-a5ed-44e0-a947-a6ad729f130b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_25ebd0c1-b3e8-4cac-b88f-aac3610b39be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_559fc4cd-a5ed-44e0-a947-a6ad729f130b" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_25ebd0c1-b3e8-4cac-b88f-aac3610b39be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_c9e776d3-31ec-4731-962b-f19fd64449ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_559fc4cd-a5ed-44e0-a947-a6ad729f130b" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_c9e776d3-31ec-4731-962b-f19fd64449ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_6a48827a-aebe-4cdd-915f-10b37c0b9f5e" xlink:href="cgnx-20241231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_559fc4cd-a5ed-44e0-a947-a6ad729f130b" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_6a48827a-aebe-4cdd-915f-10b37c0b9f5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_51b09067-b411-45e3-8b06-4ebe772c8dc4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_ab2916f4-8d10-420c-8c4c-6b5cdfc17d72" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_51b09067-b411-45e3-8b06-4ebe772c8dc4" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_ab2916f4-8d10-420c-8c4c-6b5cdfc17d72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_ea0a6492-78b9-4df0-9770-8949829302d4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_ab2916f4-8d10-420c-8c4c-6b5cdfc17d72" xlink:to="loc_us-gaap_AwardTypeAxis_ea0a6492-78b9-4df0-9770-8949829302d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d9df9ade-0053-4bd3-96c3-96906a8211e0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_ea0a6492-78b9-4df0-9770-8949829302d4" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d9df9ade-0053-4bd3-96c3-96906a8211e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_4fdf6b01-eaca-4b4c-8b6f-00ff3751d811" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d9df9ade-0053-4bd3-96c3-96906a8211e0" xlink:to="loc_us-gaap_PerformanceSharesMember_4fdf6b01-eaca-4b4c-8b6f-00ff3751d811" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_ab2916f4-8d10-420c-8c4c-6b5cdfc17d72" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_f21fced8-e74b-4456-a667-0ef5a21242c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_f21fced8-e74b-4456-a667-0ef5a21242c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ef9bb3e7-0c9a-4b54-b1ee-5ce8a22f2ac1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ef9bb3e7-0c9a-4b54-b1ee-5ce8a22f2ac1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_68eccec6-138f-4ce6-801c-d76901e7b036" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_68eccec6-138f-4ce6-801c-d76901e7b036" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_584460d9-2d35-488a-a4db-10d8b71a787b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_584460d9-2d35-488a-a4db-10d8b71a787b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_b94709dd-cfc8-4dae-81ed-076d517234bd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_b94709dd-cfc8-4dae-81ed-076d517234bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_beaea543-819f-444c-bcf6-344f9aedd300" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_beaea543-819f-444c-bcf6-344f9aedd300" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_dd22b52b-8dfc-480e-a06a-79dbdfe61dac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_dd22b52b-8dfc-480e-a06a-79dbdfe61dac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_255539e4-ee6f-4269-950e-a379bbc95a9e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_255539e4-ee6f-4269-950e-a379bbc95a9e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_61d2e34e-af39-4609-a605-a73a5f0b98be" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_61d2e34e-af39-4609-a605-a73a5f0b98be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_7b60ce01-6a3d-4444-9c21-c7a41daf6930" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_80eb2ad0-c15a-493d-89ad-17cfab8ef46f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_7b60ce01-6a3d-4444-9c21-c7a41daf6930" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#EmployeeSavingsPlanAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_46a183db-7478-4b14-b6a6-e5238b29c301" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_dca1d196-0827-448e-88ca-c9ced385ac00" xlink:href="cgnx-20241231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_46a183db-7478-4b14-b6a6-e5238b29c301" xlink:to="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_dca1d196-0827-448e-88ca-c9ced385ac00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_a50a72dd-5725-4bf7-b976-e34d5b920dd4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_46a183db-7478-4b14-b6a6-e5238b29c301" xlink:to="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_a50a72dd-5725-4bf7-b976-e34d5b920dd4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_05399e05-4934-4ea4-b932-805132117f5e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_46a183db-7478-4b14-b6a6-e5238b29c301" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_05399e05-4934-4ea4-b932-805132117f5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_ca504a4b-e431-4bab-89ca-9be4be168c1e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_46a183db-7478-4b14-b6a6-e5238b29c301" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_ca504a4b-e431-4bab-89ca-9be4be168c1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfOneYear_4ceff430-0058-4582-832a-9f93f10670ae" xlink:href="cgnx-20241231.xsd#cgnx_CompanyContributionsVestAtEndOfOneYear"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_46a183db-7478-4b14-b6a6-e5238b29c301" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfOneYear_4ceff430-0058-4582-832a-9f93f10670ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_bdaf12c1-bad4-4afe-a930-bbce2c9b69e0" xlink:href="cgnx-20241231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_46a183db-7478-4b14-b6a6-e5238b29c301" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_bdaf12c1-bad4-4afe-a930-bbce2c9b69e0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_6d0aba17-911b-449f-a56b-a2de2e796653" xlink:href="cgnx-20241231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_46a183db-7478-4b14-b6a6-e5238b29c301" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_6d0aba17-911b-449f-a56b-a2de2e796653" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_3564fee3-70fd-4aee-ab00-64068d9c6c61" xlink:href="cgnx-20241231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_46a183db-7478-4b14-b6a6-e5238b29c301" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_3564fee3-70fd-4aee-ab00-64068d9c6c61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized_de98cf91-6a03-440d-bb24-0c543ee42f86" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_46a183db-7478-4b14-b6a6-e5238b29c301" xlink:to="loc_us-gaap_DefinedContributionPlanCostRecognized_de98cf91-6a03-440d-bb24-0c543ee42f86" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxesAdditionalInformationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_da0593e7-b3b8-4e9b-8ff1-fdd474839cf6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_da0593e7-b3b8-4e9b-8ff1-fdd474839cf6" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_1b6b8b17-896c-42c2-b1a0-ae917816b927" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_1b6b8b17-896c-42c2-b1a0-ae917816b927" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_affa006f-8c75-4573-bac6-9870dc61dd8d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_1b6b8b17-896c-42c2-b1a0-ae917816b927" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_affa006f-8c75-4573-bac6-9870dc61dd8d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember_42d4f577-e110-411f-8673-e40ba02288a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCountryMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_affa006f-8c75-4573-bac6-9870dc61dd8d" xlink:to="loc_us-gaap_ForeignCountryMember_42d4f577-e110-411f-8673-e40ba02288a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_5d1afd18-3e07-425c-8883-9d91394c24ad" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DomesticCountryMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_affa006f-8c75-4573-bac6-9870dc61dd8d" xlink:to="loc_us-gaap_DomesticCountryMember_5d1afd18-3e07-425c-8883-9d91394c24ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_4d44e821-4114-4d9e-9d75-d68958882ecd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityNameAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameAxis_4d44e821-4114-4d9e-9d75-d68958882ecd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_4d44e821-4114-4d9e-9d75-d68958882ecd" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_5713cccf-f154-45ee-8877-74f106899f2a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueCommissionersIrelandMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:to="loc_us-gaap_RevenueCommissionersIrelandMember_5713cccf-f154-45ee-8877-74f106899f2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_80b2458b-b604-430f-923c-216e4eec28ce" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StateAdministrationOfTaxationChinaMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:to="loc_us-gaap_StateAdministrationOfTaxationChinaMember_80b2458b-b604-430f-923c-216e4eec28ce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_KP_750962cc-fc67-46eb-adf9-b6d550810a81" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_KP"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:to="loc_country_KP_750962cc-fc67-46eb-adf9-b6d550810a81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_JP_a17fb0ac-ee89-4aa6-9c0a-14977e16e0ba" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_JP"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_b62fe2e6-faba-49d0-baa2-9f122f10f6a5" xlink:to="loc_country_JP_a17fb0ac-ee89-4aa6-9c0a-14977e16e0ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis_15109f75-2a21-4bd0-b48d-f05879b534a6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:to="loc_us-gaap_TaxCreditCarryforwardAxis_15109f75-2a21-4bd0-b48d-f05879b534a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_205294de-372a-42a7-8b31-1849f09a9839" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_15109f75-2a21-4bd0-b48d-f05879b534a6" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_205294de-372a-42a7-8b31-1849f09a9839" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchMember_207a92c6-0f7f-4384-b51e-751ba5fba902" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_205294de-372a-42a7-8b31-1849f09a9839" xlink:to="loc_us-gaap_ResearchMember_207a92c6-0f7f-4384-b51e-751ba5fba902" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_50f664da-faa7-4e47-9b11-664dc3f5889d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceByDeferredTaxAssetAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:to="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_50f664da-faa7-4e47-9b11-664dc3f5889d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetDomain_070b4e74-ab24-4dad-83f8-11e20903fce2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis_50f664da-faa7-4e47-9b11-664dc3f5889d" xlink:to="loc_us-gaap_DeferredTaxAssetDomain_070b4e74-ab24-4dad-83f8-11e20903fce2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLossCarryforwardMember_686c87a9-bd55-4964-9a9f-24649c9b6eb1" xlink:href="cgnx-20241231.xsd#cgnx_OperatingLossCarryforwardMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetDomain_070b4e74-ab24-4dad-83f8-11e20903fce2" xlink:to="loc_cgnx_OperatingLossCarryforwardMember_686c87a9-bd55-4964-9a9f-24649c9b6eb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TaxCreditCarryforwardMember_babedaad-9eb5-400a-8fc7-56d2047a700c" xlink:href="cgnx-20241231.xsd#cgnx_TaxCreditCarryforwardMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetDomain_070b4e74-ab24-4dad-83f8-11e20903fce2" xlink:to="loc_cgnx_TaxCreditCarryforwardMember_babedaad-9eb5-400a-8fc7-56d2047a700c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TaxCreditCarryforwardLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_fa436fbb-c6a7-4420-8281-a0d22527a11c" xlink:to="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_a8446bc7-bee1-4113-9306-758a5b6e8a0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_a8446bc7-bee1-4113-9306-758a5b6e8a0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_aa98cd77-1d1b-437b-b680-904666f6207a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_aa98cd77-1d1b-437b-b680-904666f6207a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGross_f742e5bb-f00f-45cd-a414-6117bd838a8f" xlink:href="cgnx-20241231.xsd#cgnx_UnrecognizedTaxBenefitsGross"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGross_f742e5bb-f00f-45cd-a414-6117bd838a8f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_7494ccf7-9fd2-4564-b714-2fc404f0e74e" xlink:href="cgnx-20241231.xsd#cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_7494ccf7-9fd2-4564-b714-2fc404f0e74e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_cbf94c29-9c73-425c-80b5-aac94925f37d" xlink:href="cgnx-20241231.xsd#cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_cbf94c29-9c73-425c-80b5-aac94925f37d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_70dbbd63-5be1-4619-8c4c-65879473b9df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_70dbbd63-5be1-4619-8c4c-65879473b9df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7c1bbf64-0692-4d4b-be79-2db78a81d560" xlink:href="cgnx-20241231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_7c1bbf64-0692-4d4b-be79-2db78a81d560" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_d2936078-a11a-46b1-89b7-803511fd1c16" xlink:href="cgnx-20241231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_d2936078-a11a-46b1-89b7-803511fd1c16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_89015e29-225f-4733-a803-f3f95792272a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_89015e29-225f-4733-a803-f3f95792272a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_62bb71d5-32a8-4be3-9765-8347913be847" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_62bb71d5-32a8-4be3-9765-8347913be847" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_2c6624cb-1aa9-4af8-8188-8965b45f12bc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_2c6624cb-1aa9-4af8-8188-8965b45f12bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_2e89e856-e526-4e84-8c02-93237f159799" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_2e89e856-e526-4e84-8c02-93237f159799" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_032b92ed-3663-4af0-aa63-3cc1acf82bde" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_032b92ed-3663-4af0-aa63-3cc1acf82bde" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_43d0fc0e-18b4-416c-9a10-f0be1fc94f39" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_43d0fc0e-18b4-416c-9a10-f0be1fc94f39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_740f211d-ad23-4497-af58-55e24ab3cb43" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_740f211d-ad23-4497-af58-55e24ab3cb43" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_d23d5cc8-0860-4757-9f24-66d2ae42bf20" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_d23d5cc8-0860-4757-9f24-66d2ae42bf20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_81906c99-5042-4f5d-92e0-83705045a95d" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_81906c99-5042-4f5d-92e0-83705045a95d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_8a457a2c-79a9-4766-9fde-1ab4a1b2ac1b" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_64bf3674-dfa1-4d50-88a6-86db396b2cf6" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_8a457a2c-79a9-4766-9fde-1ab4a1b2ac1b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_9af6ef7b-d2e3-45cc-a4fd-c30b2e9eabeb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_feee1649-2cad-4f57-bed6-6cd24b529cfe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9af6ef7b-d2e3-45cc-a4fd-c30b2e9eabeb" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_feee1649-2cad-4f57-bed6-6cd24b529cfe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit_e12dcd2a-8d12-40a2-b08f-3bde0e642678" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentFederalTaxExpenseBenefit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_feee1649-2cad-4f57-bed6-6cd24b529cfe" xlink:to="loc_us-gaap_CurrentFederalTaxExpenseBenefit_e12dcd2a-8d12-40a2-b08f-3bde0e642678" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_102a5042-6a96-4e8e-bfbb-4ec942c92b67" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_feee1649-2cad-4f57-bed6-6cd24b529cfe" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_102a5042-6a96-4e8e-bfbb-4ec942c92b67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_f38f3ec4-435c-43ab-b61b-69d9ccc3f9d2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_feee1649-2cad-4f57-bed6-6cd24b529cfe" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_f38f3ec4-435c-43ab-b61b-69d9ccc3f9d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_5f29784b-1d17-45a9-9d09-cfa455501cfc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_feee1649-2cad-4f57-bed6-6cd24b529cfe" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_5f29784b-1d17-45a9-9d09-cfa455501cfc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_b648b556-608f-4b5a-85c9-ec0edda27eee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9af6ef7b-d2e3-45cc-a4fd-c30b2e9eabeb" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_b648b556-608f-4b5a-85c9-ec0edda27eee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_08203290-a72e-41f8-bb93-3a61a09dcaa4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_b648b556-608f-4b5a-85c9-ec0edda27eee" xlink:to="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_08203290-a72e-41f8-bb93-3a61a09dcaa4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_1550e1b0-461e-4778-aebf-ead1df542337" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_b648b556-608f-4b5a-85c9-ec0edda27eee" xlink:to="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_1550e1b0-461e-4778-aebf-ead1df542337" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_f523872b-fc7d-40ea-879e-b2a9997074c5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_b648b556-608f-4b5a-85c9-ec0edda27eee" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_f523872b-fc7d-40ea-879e-b2a9997074c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_8a66399c-587a-42ce-8d3d-f38defa336e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_b648b556-608f-4b5a-85c9-ec0edda27eee" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_8a66399c-587a-42ce-8d3d-f38defa336e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_4854b042-f51a-435e-a987-95de97a9b08e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9af6ef7b-d2e3-45cc-a4fd-c30b2e9eabeb" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_4854b042-f51a-435e-a987-95de97a9b08e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_5f1c8c39-8e3d-44e2-aa61-92d37b1b2f88" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_5f1c8c39-8e3d-44e2-aa61-92d37b1b2f88" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_b9679da3-6962-4803-9f73-ee68885baa82" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_b9679da3-6962-4803-9f73-ee68885baa82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_70ed8c49-b873-47c8-93f8-45698ccb5c42" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_70ed8c49-b873-47c8-93f8-45698ccb5c42" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_8167af63-0aaf-4b5c-90a2-cfc1cf37b74f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_8167af63-0aaf-4b5c-90a2-cfc1cf37b74f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_54e74c4f-f4f3-4869-a6af-9b0e93fe4c9a" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_54e74c4f-f4f3-4869-a6af-9b0e93fe4c9a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_995e9a9c-485b-4882-88a4-5bdc4fe7ebdd" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_995e9a9c-485b-4882-88a4-5bdc4fe7ebdd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_fe93624a-02c0-4029-8e96-b299d16d9839" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_fe93624a-02c0-4029-8e96-b299d16d9839" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_de6dac34-2cd6-4933-b61a-f8ba90587a98" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_de6dac34-2cd6-4933-b61a-f8ba90587a98" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_7206a20f-1f85-4c2e-982e-2c98fb2fc92d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_7206a20f-1f85-4c2e-982e-2c98fb2fc92d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_cf619147-cbb2-40fb-b578-62fc84ee8273" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_cf619147-cbb2-40fb-b578-62fc84ee8273" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_e42f9c27-1ce9-440c-9a51-52632cb1a551" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_e42f9c27-1ce9-440c-9a51-52632cb1a551" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3ab030c7-520e-441c-bd08-cfb33b43361f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_3ab030c7-520e-441c-bd08-cfb33b43361f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_f605cfcd-b6bd-4fad-b54b-b781f9e4763c" xlink:href="cgnx-20241231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_f605cfcd-b6bd-4fad-b54b-b781f9e4763c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings_14aa0ee6-c8c1-4e65-a5e9-9c4028f8d424" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings_14aa0ee6-c8c1-4e65-a5e9-9c4028f8d424" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_5bcdd901-fd76-41ea-9c11-25ecc5567463" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_5bcdd901-fd76-41ea-9c11-25ecc5567463" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_86652917-5fbe-4aa0-b49b-b530729517b5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e39cfa66-d7c7-44d4-aa8f-d8a6c59886a4" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_86652917-5fbe-4aa0-b49b-b530729517b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_0cd4ae0a-3694-4fc7-a76c-b6a7a5f0849b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d25c7cf2-1ef3-4f51-a1ed-6e8cf76b620c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_0cd4ae0a-3694-4fc7-a76c-b6a7a5f0849b" xlink:to="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d25c7cf2-1ef3-4f51-a1ed-6e8cf76b620c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_17c7e4ca-b2e0-464b-afb7-bdf73a318c2a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d25c7cf2-1ef3-4f51-a1ed-6e8cf76b620c" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_17c7e4ca-b2e0-464b-afb7-bdf73a318c2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_13dd442a-2774-4009-94ad-6e90bc06a91f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d25c7cf2-1ef3-4f51-a1ed-6e8cf76b620c" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_13dd442a-2774-4009-94ad-6e90bc06a91f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_c6ae92e4-65cc-4cf8-968a-46350fc11cd9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d25c7cf2-1ef3-4f51-a1ed-6e8cf76b620c" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_c6ae92e4-65cc-4cf8-968a-46350fc11cd9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_4b5e3ac5-e4ce-4298-a29e-9b10949064ac" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d25c7cf2-1ef3-4f51-a1ed-6e8cf76b620c" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_4b5e3ac5-e4ce-4298-a29e-9b10949064ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_a4f7d15b-890e-479b-bd62-f52c4fc0c60f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d25c7cf2-1ef3-4f51-a1ed-6e8cf76b620c" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_a4f7d15b-890e-479b-bd62-f52c4fc0c60f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_263d575d-7c25-4a42-b94e-65166152c438" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d25c7cf2-1ef3-4f51-a1ed-6e8cf76b620c" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_263d575d-7c25-4a42-b94e-65166152c438" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_f4257959-ee0f-47cb-91d7-23d6e485d9d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_d25c7cf2-1ef3-4f51-a1ed-6e8cf76b620c" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_f4257959-ee0f-47cb-91d7-23d6e485d9d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#IncomeTaxesConstituentsofDeferredTaxAssetsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_66494cce-dc79-440a-9b66-b5417e8df1fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsGrossAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_66494cce-dc79-440a-9b66-b5417e8df1fd" xlink:to="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_6204570c-3ed4-402f-8387-3336d3b97927" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_6204570c-3ed4-402f-8387-3336d3b97927" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_d91e4da9-0840-4526-bfb6-9c625e2c1332" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_d91e4da9-0840-4526-bfb6-9c625e2c1332" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_ef323d15-8cb4-423a-abcf-626554fd4dfc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_ef323d15-8cb4-423a-abcf-626554fd4dfc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_af076de8-9542-4311-ab49-3832a2100e13" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsInventory"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_af076de8-9542-4311-ab49-3832a2100e13" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_e318a647-2191-4244-8f24-c25da9b52c15" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_e318a647-2191-4244-8f24-c25da9b52c15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_2070da6b-474c-47a0-9555-e08ef45271f1" xlink:href="cgnx-20241231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_2070da6b-474c-47a0-9555-e08ef45271f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_75e4d2e8-fd9f-4761-b0ef-2377cc0c1a38" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_75e4d2e8-fd9f-4761-b0ef-2377cc0c1a38" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_631f588d-7653-4126-a81b-588fb7c88049" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_631f588d-7653-4126-a81b-588fb7c88049" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_3e231bd3-232e-4617-ab22-73872e1da350" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_3e231bd3-232e-4617-ab22-73872e1da350" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_ff199ba8-1937-4ec9-b25a-82a283a71019" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_ff199ba8-1937-4ec9-b25a-82a283a71019" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_ac1ddd3a-a8c7-4cce-82f8-10c52512ca9f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_ac1ddd3a-a8c7-4cce-82f8-10c52512ca9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_3e2993f9-64da-44e2-8d31-c330c3e81cd5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_84415748-a850-42d6-a38e-2c29d8fe4fa2" xlink:to="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_3e2993f9-64da-44e2-8d31-c330c3e81cd5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9d313dae-965c-4fc5-b929-d8d4921f53b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_66494cce-dc79-440a-9b66-b5417e8df1fd" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9d313dae-965c-4fc5-b929-d8d4921f53b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_7c6b07ea-ba3d-4edd-9429-ff73e64db25d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9d313dae-965c-4fc5-b929-d8d4921f53b1" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_7c6b07ea-ba3d-4edd-9429-ff73e64db25d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets_424a7da7-ac57-413f-bd2c-ea863556e95b" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9d313dae-965c-4fc5-b929-d8d4921f53b1" xlink:to="loc_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets_424a7da7-ac57-413f-bd2c-ea863556e95b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_9a7b1729-ced1-4d11-a225-6dc83e83bd4b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9d313dae-965c-4fc5-b929-d8d4921f53b1" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings_9a7b1729-ced1-4d11-a225-6dc83e83bd4b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_54631c0f-6f38-4f63-8295-684a1bd51711" xlink:href="cgnx-20241231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9d313dae-965c-4fc5-b929-d8d4921f53b1" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_54631c0f-6f38-4f63-8295-684a1bd51711" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities_52fd6579-c45a-47cb-a5ca-bdcdeb0fd918" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_9d313dae-965c-4fc5-b929-d8d4921f53b1" xlink:to="loc_us-gaap_DeferredTaxLiabilities_52fd6579-c45a-47cb-a5ca-bdcdeb0fd918" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_08f88f42-8db3-4641-aa2f-febed20910ca" xlink:href="cgnx-20241231.xsd#cgnx_DeferredIncomeTaxAssetsLiabilitiesNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_66494cce-dc79-440a-9b66-b5417e8df1fd" xlink:to="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_08f88f42-8db3-4641-aa2f-febed20910ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#WeightedAverageSharesCalculationofWeightedAverageSharesDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_4bd880ad-fdb0-4c54-b15e-a315652c0ccf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_cf746932-5fac-4cd8-83ba-61fcc9eb0756" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_4bd880ad-fdb0-4c54-b15e-a315652c0ccf" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_cf746932-5fac-4cd8-83ba-61fcc9eb0756" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_b2688557-1e40-4f58-9a29-7ff00dfeb4fd" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_4bd880ad-fdb0-4c54-b15e-a315652c0ccf" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_b2688557-1e40-4f58-9a29-7ff00dfeb4fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_cc8cf8db-9161-48b4-90d3-e118b1b0f467" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_4bd880ad-fdb0-4c54-b15e-a315652c0ccf" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_cc8cf8db-9161-48b4-90d3-e118b1b0f467" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#WeightedAverageSharesAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_fc9785ec-1f88-4019-9628-1c01a2f58423" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_b9674613-810a-428f-a720-e0a71bfe8939" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_fc9785ec-1f88-4019-9628-1c01a2f58423" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_b9674613-810a-428f-a720-e0a71bfe8939" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1333fc7b-97f4-432a-ad64-8bd3e350c7d9" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_b9674613-810a-428f-a720-e0a71bfe8939" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1333fc7b-97f4-432a-ad64-8bd3e350c7d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_70369a4e-3349-40e1-8ef1-a0303f441a45" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_1333fc7b-97f4-432a-ad64-8bd3e350c7d9" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_70369a4e-3349-40e1-8ef1-a0303f441a45" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_f830d4a4-18cc-4e5b-89e8-1b40b0be7909" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_70369a4e-3349-40e1-8ef1-a0303f441a45" xlink:to="loc_us-gaap_EmployeeStockOptionMember_f830d4a4-18cc-4e5b-89e8-1b40b0be7909" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_ee7765d5-3336-4297-939b-e9a13d404e77" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_70369a4e-3349-40e1-8ef1-a0303f441a45" xlink:to="loc_us-gaap_RestrictedStockMember_ee7765d5-3336-4297-939b-e9a13d404e77" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_29dfb18d-4ed8-4368-90cd-f8dfcb0b3b06" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_70369a4e-3349-40e1-8ef1-a0303f441a45" xlink:to="loc_us-gaap_PerformanceSharesMember_29dfb18d-4ed8-4368-90cd-f8dfcb0b3b06" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_a25d2083-788a-4316-b2c2-48ed708f9062" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_b9674613-810a-428f-a720-e0a71bfe8939" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_a25d2083-788a-4316-b2c2-48ed708f9062" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_ea42f58d-68d8-4c43-878c-8019997b0e60" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_a25d2083-788a-4316-b2c2-48ed708f9062" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_ea42f58d-68d8-4c43-878c-8019997b0e60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SegmentandGeographicInformationAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_65af0994-c0dc-45b0-a21f-bceafb82687e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_65af0994-c0dc-45b0-a21f-bceafb82687e" xlink:to="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_55b78fad-7f95-4b5d-9fa6-5d2147d90d2d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_55b78fad-7f95-4b5d-9fa6-5d2147d90d2d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_fe14326d-d23f-434e-bfd7-f78cb1882f73" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_55b78fad-7f95-4b5d-9fa6-5d2147d90d2d" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_fe14326d-d23f-434e-bfd7-f78cb1882f73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_fc1bd172-2bd2-49f5-9e10-6dcf80c189ba" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_fe14326d-d23f-434e-bfd7-f78cb1882f73" xlink:to="loc_us-gaap_SalesRevenueNetMember_fc1bd172-2bd2-49f5-9e10-6dcf80c189ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableMember_037e0e9a-bd04-47d2-92ab-8d4aeb75d7ee" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AccountsReceivableMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_fe14326d-d23f-434e-bfd7-f78cb1882f73" xlink:to="loc_us-gaap_AccountsReceivableMember_037e0e9a-bd04-47d2-92ab-8d4aeb75d7ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_3d9fece2-6efe-4f05-ac60-1ab3a0f8ce65" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_3d9fece2-6efe-4f05-ac60-1ab3a0f8ce65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_430563bf-1832-4759-bd67-d008cd1a62d0" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_3d9fece2-6efe-4f05-ac60-1ab3a0f8ce65" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_430563bf-1832-4759-bd67-d008cd1a62d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_4f5884aa-d566-4b77-a543-9ba229fbbc93" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_430563bf-1832-4759-bd67-d008cd1a62d0" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_4f5884aa-d566-4b77-a543-9ba229fbbc93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_02c3068b-bd93-4d27-a389-dafb5a273d9d" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_MajorCustomersAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:to="loc_srt_MajorCustomersAxis_02c3068b-bd93-4d27-a389-dafb5a273d9d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_86b2b203-191c-4bce-9a03-67ef09048166" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_MajorCustomersAxis_02c3068b-bd93-4d27-a389-dafb5a273d9d" xlink:to="loc_srt_NameOfMajorCustomerDomain_86b2b203-191c-4bce-9a03-67ef09048166" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer2Member_0fe405dc-2a2d-4547-ac35-88b4262af974" xlink:href="cgnx-20241231.xsd#cgnx_Customer2Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_86b2b203-191c-4bce-9a03-67ef09048166" xlink:to="loc_cgnx_Customer2Member_0fe405dc-2a2d-4547-ac35-88b4262af974" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer1Member_4f6938cf-4e39-4894-b302-e4cf2b91ed58" xlink:href="cgnx-20241231.xsd#cgnx_Customer1Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_86b2b203-191c-4bce-9a03-67ef09048166" xlink:to="loc_cgnx_Customer1Member_4f6938cf-4e39-4894-b302-e4cf2b91ed58" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_018122c3-4e2d-4fa0-aa16-c005825daffa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_aa8f28b1-a9d6-4fcd-808b-21c1c46ff4ca" xlink:to="loc_us-gaap_ConcentrationRiskLineItems_018122c3-4e2d-4fa0-aa16-c005825daffa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments_27f987bb-11c6-405b-b7ee-b50d529cca16" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_018122c3-4e2d-4fa0-aa16-c005825daffa" xlink:to="loc_us-gaap_NumberOfReportableSegments_27f987bb-11c6-405b-b7ee-b50d529cca16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_95607cb1-c0f6-4bc9-b238-42cf69dd3f51" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_018122c3-4e2d-4fa0-aa16-c005825daffa" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_95607cb1-c0f6-4bc9-b238-42cf69dd3f51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization_94bdf15a-1d54-4e09-b79b-dd992545649d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_018122c3-4e2d-4fa0-aa16-c005825daffa" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization_94bdf15a-1d54-4e09-b79b-dd992545649d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_50e83fc4-64ff-459c-b81f-7c8c5c9c78ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_d14d5773-cffb-40bb-bd0a-cebee0e1910d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_50e83fc4-64ff-459c-b81f-7c8c5c9c78ae" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_d14d5773-cffb-40bb-bd0a-cebee0e1910d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_efae428a-89c1-4fde-8909-4792f4dd6580" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_d14d5773-cffb-40bb-bd0a-cebee0e1910d" xlink:to="loc_srt_StatementGeographicalAxis_efae428a-89c1-4fde-8909-4792f4dd6580" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_efae428a-89c1-4fde-8909-4792f4dd6580" xlink:to="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_US_9d61f152-dc01-49d7-8f94-6c8062531cbb" xlink:href="https://xbrl.sec.gov/country/2024/country-2024.xsd#country_US"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:to="loc_country_US_9d61f152-dc01-49d7-8f94-6c8062531cbb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_ced7d70c-1d02-4e25-b1b7-bcb22b87a521" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_EuropeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:to="loc_srt_EuropeMember_ced7d70c-1d02-4e25-b1b7-bcb22b87a521" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_8d5bbfaf-b71b-4c58-b38c-30c061cd4622" xlink:href="cgnx-20241231.xsd#cgnx_GreaterChinaMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:to="loc_cgnx_GreaterChinaMember_8d5bbfaf-b71b-4c58-b38c-30c061cd4622" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherGeographicAreaMember_7d80302c-a3d8-409a-a7d1-c2f988408ccd" xlink:href="cgnx-20241231.xsd#cgnx_OtherGeographicAreaMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_5dcccd91-f56a-4022-8c95-ccdf6e1a8eff" xlink:to="loc_cgnx_OtherGeographicAreaMember_7d80302c-a3d8-409a-a7d1-c2f988408ccd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_5a33e0e9-042a-4d9b-90bb-0a17be721f36" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_d14d5773-cffb-40bb-bd0a-cebee0e1910d" xlink:to="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_5a33e0e9-042a-4d9b-90bb-0a17be721f36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_a937f95f-7416-4d89-accc-3cd0e66bbb5d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_5a33e0e9-042a-4d9b-90bb-0a17be721f36" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_a937f95f-7416-4d89-accc-3cd0e66bbb5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets_9589ae45-875c-4f45-8af1-25af6652ef70" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NoncurrentAssets"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_5a33e0e9-042a-4d9b-90bb-0a17be721f36" xlink:to="loc_us-gaap_NoncurrentAssets_9589ae45-875c-4f45-8af1-25af6652ef70" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_53ab09e0-bfb1-407e-bd4e-2f41e85b7c56" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_53ab09e0-bfb1-407e-bd4e-2f41e85b7c56" xlink:to="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsAxis_1ca1042d-3990-4a61-8fbc-a0516990dab0" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:to="loc_srt_ConsolidationItemsAxis_1ca1042d-3990-4a61-8fbc-a0516990dab0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ConsolidationItemsDomain_d1339fe7-73a8-431a-b5a5-705adbbd4436" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ConsolidationItemsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ConsolidationItemsAxis_1ca1042d-3990-4a61-8fbc-a0516990dab0" xlink:to="loc_srt_ConsolidationItemsDomain_d1339fe7-73a8-431a-b5a5-705adbbd4436" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementBusinessSegmentsAxis_b26dff53-0bca-4a28-8ec0-7e8d914d7851" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StatementBusinessSegmentsAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:to="loc_us-gaap_StatementBusinessSegmentsAxis_b26dff53-0bca-4a28-8ec0-7e8d914d7851" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentDomain_49e224ed-711e-4e84-9e96-2c1240aa02f5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementBusinessSegmentsAxis_b26dff53-0bca-4a28-8ec0-7e8d914d7851" xlink:to="loc_us-gaap_SegmentDomain_49e224ed-711e-4e84-9e96-2c1240aa02f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ResearchDevelopmentAndEngineeringExpensesMember_53d54cb9-c9e7-46d9-84c5-eaa50245791c" xlink:href="cgnx-20241231.xsd#cgnx_ResearchDevelopmentAndEngineeringExpensesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_49e224ed-711e-4e84-9e96-2c1240aa02f5" xlink:to="loc_cgnx_ResearchDevelopmentAndEngineeringExpensesMember_53d54cb9-c9e7-46d9-84c5-eaa50245791c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SegmentGeneralAndEngineeringExpenseMember_f3fa8567-37d7-4056-8804-36070fa53423" xlink:href="cgnx-20241231.xsd#cgnx_SegmentGeneralAndEngineeringExpenseMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentDomain_49e224ed-711e-4e84-9e96-2c1240aa02f5" xlink:to="loc_cgnx_SegmentGeneralAndEngineeringExpenseMember_f3fa8567-37d7-4056-8804-36070fa53423" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsAxis_f1b70554-bdd1-4616-b55c-a614ff7d0a8f" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:to="loc_us-gaap_SubsegmentsAxis_f1b70554-bdd1-4616-b55c-a614ff7d0a8f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsDomain_44580213-5c86-4964-98e9-d09f55bc2aaf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsegmentsAxis_f1b70554-bdd1-4616-b55c-a614ff7d0a8f" xlink:to="loc_us-gaap_SubsegmentsDomain_44580213-5c86-4964-98e9-d09f55bc2aaf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsConsolidationItemsAxis_541aa2ba-3a69-4d9b-851c-27b8b0ad4adf" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsConsolidationItemsAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:to="loc_us-gaap_SubsegmentsConsolidationItemsAxis_541aa2ba-3a69-4d9b-851c-27b8b0ad4adf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsegmentsConsolidationItemsDomain_75b436ae-434b-48f0-af27-3eb56ba90555" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsegmentsConsolidationItemsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsegmentsConsolidationItemsAxis_541aa2ba-3a69-4d9b-851c-27b8b0ad4adf" xlink:to="loc_us-gaap_SubsegmentsConsolidationItemsDomain_75b436ae-434b-48f0-af27-3eb56ba90555" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SegmentReportingInformationLineItems"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable_690247a5-3690-4a97-825f-6281690989da" xlink:to="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_ad76e0e7-fab1-4389-8347-8c387d8cc5db" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_ad76e0e7-fab1-4389-8347-8c387d8cc5db" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_a892fd65-721b-461a-a107-ab767ae90753" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_a892fd65-721b-461a-a107-ab767ae90753" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_103e8927-bcb3-49aa-abaa-1164b766cb4e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GrossProfit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_GrossProfit_103e8927-bcb3-49aa-abaa-1164b766cb4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LaborAndRelatedExpense_c39fa3c8-d849-407c-87de-a7d260294611" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LaborAndRelatedExpense"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_LaborAndRelatedExpense_c39fa3c8-d849-407c-87de-a7d260294611" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_eaf710fb-d301-4a65-99e2-19297e0cdb61" xlink:href="cgnx-20241231.xsd#cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions_eaf710fb-d301-4a65-99e2-19297e0cdb61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_b098a214-c456-4203-8501-1ce3cdfe49b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_b098a214-c456-4203-8501-1ce3cdfe49b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DepreciationDepletionAndAmortization_132ae57d-6e9c-42bf-81c2-1d2d81237edc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DepreciationDepletionAndAmortization"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_DepreciationDepletionAndAmortization_132ae57d-6e9c-42bf-81c2-1d2d81237edc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherExpenses_cd97b1b4-7bf8-4691-9938-bcd2ba334d52" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherExpenses"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_OtherExpenses_cd97b1b4-7bf8-4691-9938-bcd2ba334d52" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_31c433b0-4c74-46c0-9ca9-2d1af7675625" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_31c433b0-4c74-46c0-9ca9-2d1af7675625" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_bfab33bd-2f80-4b51-b92a-9a078d11826b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_bfab33bd-2f80-4b51-b92a-9a078d11826b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LossGainFromCatastrophes_c614e258-5536-4f62-96c6-7dd36318ffda" xlink:href="cgnx-20241231.xsd#cgnx_LossGainFromCatastrophes"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_cgnx_LossGainFromCatastrophes_c614e258-5536-4f62-96c6-7dd36318ffda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_ddf2c377-3437-450d-a61f-1f35c8d2c749" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_RestructuringCharges_ddf2c377-3437-450d-a61f-1f35c8d2c749" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_3ec2f26e-4558-4375-830c-4f861e067c78" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_OperatingIncomeLoss_3ec2f26e-4558-4375-830c-4f861e067c78" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_110c9a78-c81d-4862-b667-854f627592c2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_110c9a78-c81d-4862-b667-854f627592c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_c7c86303-e561-47ae-a5ac-abcc6603ad6b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_c7c86303-e561-47ae-a5ac-abcc6603ad6b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_99c67acc-4fe9-4a52-aacc-2f214da13a96" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_99c67acc-4fe9-4a52-aacc-2f214da13a96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_1cdf70b8-775a-421b-af60-96fdcf5d0b0d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_1cdf70b8-775a-421b-af60-96fdcf5d0b0d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_68cd5799-f010-47c2-9c40-d1c02670b8a7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_68cd5799-f010-47c2-9c40-d1c02670b8a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_00fdb00a-9900-4167-b8d3-b8f20808b840" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingInformationLineItems_946a33d8-9b54-4334-a13b-e14971da4e48" xlink:to="loc_us-gaap_NetIncomeLoss_00fdb00a-9900-4167-b8d3-b8f20808b840" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#BusinessAcquisitionsMoritexNarrativeDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_175ae434-ca4a-4409-99f6-6eabc87b430c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_52153f43-4fe8-4cea-bbad-64d7c6040afe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_175ae434-ca4a-4409-99f6-6eabc87b430c" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_52153f43-4fe8-4cea-bbad-64d7c6040afe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_302a84ee-91a6-4c67-b856-c52866ea573c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_52153f43-4fe8-4cea-bbad-64d7c6040afe" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_302a84ee-91a6-4c67-b856-c52866ea573c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_a47658bc-be0c-42da-bcaa-6de28e20502d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_302a84ee-91a6-4c67-b856-c52866ea573c" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_a47658bc-be0c-42da-bcaa-6de28e20502d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_610ee5cc-ca9b-4f38-96ac-3344e72caf25" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_a47658bc-be0c-42da-bcaa-6de28e20502d" xlink:to="loc_cgnx_MoritexCorporationMember_610ee5cc-ca9b-4f38-96ac-3344e72caf25" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis_92d64030-d632-49ad-bef7-5989905d5ef7" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_StatementScenarioAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_52153f43-4fe8-4cea-bbad-64d7c6040afe" xlink:to="loc_srt_StatementScenarioAxis_92d64030-d632-49ad-bef7-5989905d5ef7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_712380c2-524f-496e-9d42-4d06774c641c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementScenarioAxis_92d64030-d632-49ad-bef7-5989905d5ef7" xlink:to="loc_srt_ScenarioUnspecifiedDomain_712380c2-524f-496e-9d42-4d06774c641c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember_12513d00-5e1a-4dca-941c-480ddf4a517a" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ScenarioForecastMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ScenarioUnspecifiedDomain_712380c2-524f-496e-9d42-4d06774c641c" xlink:to="loc_srt_ScenarioForecastMember_12513d00-5e1a-4dca-941c-480ddf4a517a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_52153f43-4fe8-4cea-bbad-64d7c6040afe" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationEnterpriseValue_b39c849d-892f-4276-a78b-7095133eb030" xlink:href="cgnx-20241231.xsd#cgnx_BusinessCombinationEnterpriseValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_cgnx_BusinessCombinationEnterpriseValue_b39c849d-892f-4276-a78b-7095133eb030" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_1623eddd-584c-4124-a789-4d6a715214fb" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationConsiderationTransferred1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_1623eddd-584c-4124-a789-4d6a715214fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_19191eb0-eaf7-48dd-b934-8d7ded94691e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesGross"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_19191eb0-eaf7-48dd-b934-8d7ded94691e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_c4bdf744-f60f-44cc-a32a-c042f44a55d1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_c4bdf744-f60f-44cc-a32a-c042f44a55d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_d9604e97-1ead-4ee8-83ff-e873a10e2261" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_d9604e97-1ead-4ee8-83ff-e873a10e2261" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_71e2af7e-8b24-40e4-b1e8-f43e2425a5b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_71e2af7e-8b24-40e4-b1e8-f43e2425a5b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_843451cd-2bce-4ae2-a7a8-faa27af2f842" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts_843451cd-2bce-4ae2-a7a8-faa27af2f842" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillPurchaseAccountingAdjustments_6a0c4e5a-b2fc-4918-b87f-b980f0bdb3e6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_GoodwillPurchaseAccountingAdjustments"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_d0b5ee59-7fca-4433-a3c6-e6de1369ea3c" xlink:to="loc_us-gaap_GoodwillPurchaseAccountingAdjustments_6a0c4e5a-b2fc-4918-b87f-b980f0bdb3e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_72b6063e-cecb-4765-a0f7-596d36ceb74a" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_f8841b3d-14b4-48e7-90e7-63a0d7545097" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_72b6063e-cecb-4765-a0f7-596d36ceb74a" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_f8841b3d-14b4-48e7-90e7-63a0d7545097" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_94730032-bc3d-4009-96a5-d8f7fa1b101d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_f8841b3d-14b4-48e7-90e7-63a0d7545097" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_94730032-bc3d-4009-96a5-d8f7fa1b101d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1eeb32f4-8af2-4519-99b0-1f995e1616f8" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_94730032-bc3d-4009-96a5-d8f7fa1b101d" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1eeb32f4-8af2-4519-99b0-1f995e1616f8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_73a8442d-b0e4-4d6d-b506-dd627e9ebadd" xlink:href="cgnx-20241231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1eeb32f4-8af2-4519-99b0-1f995e1616f8" xlink:to="loc_cgnx_MoritexCorporationMember_73a8442d-b0e4-4d6d-b506-dd627e9ebadd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_7846e9bc-8e18-4b9a-9da6-bcc1d01945e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_f8841b3d-14b4-48e7-90e7-63a0d7545097" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_7846e9bc-8e18-4b9a-9da6-bcc1d01945e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_35a6d74e-23f6-4fa1-9288-976cfe919117" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_7846e9bc-8e18-4b9a-9da6-bcc1d01945e5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_35a6d74e-23f6-4fa1-9288-976cfe919117" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerRelationshipsMember_e0dab608-b39f-437b-a918-c5c94ff3a0b6" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_CustomerRelationshipsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_35a6d74e-23f6-4fa1-9288-976cfe919117" xlink:to="loc_us-gaap_CustomerRelationshipsMember_e0dab608-b39f-437b-a918-c5c94ff3a0b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologyMember_339e8dd3-4c3b-4454-beba-20e9020e5f2d" xlink:href="cgnx-20241231.xsd#cgnx_CompletedTechnologyMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_35a6d74e-23f6-4fa1-9288-976cfe919117" xlink:to="loc_cgnx_CompletedTechnologyMember_339e8dd3-4c3b-4454-beba-20e9020e5f2d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_d47e31fd-0908-4917-a0a4-cc0ae259b127" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_35a6d74e-23f6-4fa1-9288-976cfe919117" xlink:to="loc_us-gaap_TrademarksMember_d47e31fd-0908-4917-a0a4-cc0ae259b127" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_f8841b3d-14b4-48e7-90e7-63a0d7545097" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_54a05aed-c34b-4183-959f-1dade5e52db2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_54a05aed-c34b-4183-959f-1dade5e52db2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_f4d00da1-b265-4dab-b423-bd995f1105b1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_f4d00da1-b265-4dab-b423-bd995f1105b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_a9b8b13e-117b-4cea-aeef-1022ac829bbe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_a9b8b13e-117b-4cea-aeef-1022ac829bbe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_d28d492f-257f-4798-906c-f88bc3cf18f3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_d28d492f-257f-4798-906c-f88bc3cf18f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_3b85b6f2-a730-41fa-9c37-b6a8bb74311d" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_Goodwill_3b85b6f2-a730-41fa-9c37-b6a8bb74311d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_88fbcfe0-7d62-4e64-955f-74f43aead802" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_88fbcfe0-7d62-4e64-955f-74f43aead802" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_6937bd31-1f63-435d-a985-17e89c9b9643" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_6937bd31-1f63-435d-a985-17e89c9b9643" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_3d4aa421-bbe1-4504-ab9c-a69e3a8414ae" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_3d4aa421-bbe1-4504-ab9c-a69e3a8414ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_7a2d5bb9-f384-448a-9270-aa049ef03775" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_7a2d5bb9-f384-448a-9270-aa049ef03775" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_1d303341-79cd-4130-b15d-33e5ff8166d7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_1d303341-79cd-4130-b15d-33e5ff8166d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_4c16ea7d-8c6d-4c96-861f-ea4e166bd128" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_4c16ea7d-8c6d-4c96-861f-ea4e166bd128" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_90f8ff85-a87f-4ce8-99fe-3557a953e83e" xlink:href="cgnx-20241231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_90f8ff85-a87f-4ce8-99fe-3557a953e83e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_459d9c05-6fc0-402b-8e82-35fecc401f74" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_459d9c05-6fc0-402b-8e82-35fecc401f74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_3d78bbad-7ab4-4642-9d1e-93ffb39eab0b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_1edb5c89-94bb-43d5-8c25-d496ed36fa82" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_3d78bbad-7ab4-4642-9d1e-93ffb39eab0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LossfromFireDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#LossfromFireDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LossfromFireDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ExtraordinaryAndUnusualItemsAbstract_56d034f3-2514-47d9-9aa3-e5e4445b35cc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemTable_33ef159e-0fda-490c-8777-bfdfd97fd8e3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ExtraordinaryAndUnusualItemsAbstract_56d034f3-2514-47d9-9aa3-e5e4445b35cc" xlink:to="loc_us-gaap_UnusualOrInfrequentItemTable_33ef159e-0fda-490c-8777-bfdfd97fd8e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemAxis_3d6a0c9c-3390-45c0-9f29-3dab450f28ef" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemTable_33ef159e-0fda-490c-8777-bfdfd97fd8e3" xlink:to="loc_us-gaap_UnusualOrInfrequentItemAxis_3d6a0c9c-3390-45c0-9f29-3dab450f28ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemDomain_aaec5d8b-6eaa-4564-90b5-d29dc30be476" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemAxis_3d6a0c9c-3390-45c0-9f29-3dab450f28ef" xlink:to="loc_us-gaap_UnusualOrInfrequentItemDomain_aaec5d8b-6eaa-4564-90b5-d29dc30be476" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FireMember_4c4a2229-53f2-4235-a4a9-eb7dcc69e65b" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_FireMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemDomain_aaec5d8b-6eaa-4564-90b5-d29dc30be476" xlink:to="loc_us-gaap_FireMember_4c4a2229-53f2-4235-a4a9-eb7dcc69e65b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UnusualOrInfrequentItemLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemTable_33ef159e-0fda-490c-8777-bfdfd97fd8e3" xlink:to="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossFromCatastrophes_4d9c469b-23b9-4cd4-85f0-07a0b85d2a39" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_LossFromCatastrophes"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_us-gaap_LossFromCatastrophes_4d9c469b-23b9-4cd4-85f0-07a0b85d2a39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GrossLossFromCatastrophes_d4504034-4db3-456a-b795-8cb70d1e16ef" xlink:href="cgnx-20241231.xsd#cgnx_GrossLossFromCatastrophes"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_cgnx_GrossLossFromCatastrophes_d4504034-4db3-456a-b795-8cb70d1e16ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InsuranceRecoveries_82c486ec-8acf-4a9e-ba1b-d3c263b2cfb1" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_InsuranceRecoveries"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_us-gaap_InsuranceRecoveries_82c486ec-8acf-4a9e-ba1b-d3c263b2cfb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesBusinessInterruption_ba595437-cba5-46dc-8273-1ec953ddddc4" xlink:href="cgnx-20241231.xsd#cgnx_InsuranceRecoveriesBusinessInterruption"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_cgnx_InsuranceRecoveriesBusinessInterruption_ba595437-cba5-46dc-8273-1ec953ddddc4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_796313a3-6197-4acd-8380-6f7e36b0dec1" xlink:href="cgnx-20241231.xsd#cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_b306f163-78b5-43d1-898a-b73591c0401c" xlink:to="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_796313a3-6197-4acd-8380-6f7e36b0dec1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cgnx-20241231.xsd#SubsequentEventsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract_3753081e-7c46-4b48-8f36-d84a75fd8216" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_f33f88ce-0eed-472d-8dda-357efdc956b7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_3753081e-7c46-4b48-8f36-d84a75fd8216" xlink:to="loc_us-gaap_SubsequentEventTable_f33f88ce-0eed-472d-8dda-357efdc956b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_eeb4d8bc-a35d-46ce-89d4-7a6836d9cbfa" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_f33f88ce-0eed-472d-8dda-357efdc956b7" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_eeb4d8bc-a35d-46ce-89d4-7a6836d9cbfa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_2671b452-a839-4f77-b465-3fc4df31a4f2" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_eeb4d8bc-a35d-46ce-89d4-7a6836d9cbfa" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_2671b452-a839-4f77-b465-3fc4df31a4f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_78e1309b-0e62-4568-b0d3-5377d65d16df" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_2671b452-a839-4f77-b465-3fc4df31a4f2" xlink:to="loc_us-gaap_SubsequentEventMember_78e1309b-0e62-4568-b0d3-5377d65d16df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_62002311-896f-4e2c-8040-6485184b02fc" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_f33f88ce-0eed-472d-8dda-357efdc956b7" xlink:to="loc_us-gaap_SubsequentEventLineItems_62002311-896f-4e2c-8040-6485184b02fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare_3e060e5d-af85-45e7-bcf2-fed9869dc5b3" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsPayableAmountPerShare"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_62002311-896f-4e2c-8040-6485184b02fc" xlink:to="loc_us-gaap_DividendsPayableAmountPerShare_3e060e5d-af85-45e7-bcf2-fed9869dc5b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_bd7c6fc8-843a-4f94-9988-11fb66530956" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_62002311-896f-4e2c-8040-6485184b02fc" xlink:to="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_bd7c6fc8-843a-4f94-9988-11fb66530956" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_8a7d550d-e095-4034-a5fa-c16df0623c15" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_62002311-896f-4e2c-8040-6485184b02fc" xlink:to="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_8a7d550d-e095-4034-a5fa-c16df0623c15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock_2332d04a-3130-43e7-913f-c1d1e8d11d1e" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_3753081e-7c46-4b48-8f36-d84a75fd8216" xlink:to="loc_us-gaap_SubsequentEventsTextBlock_2332d04a-3130-43e7-913f-c1d1e8d11d1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="simple" xlink:href="cgnx-20241231.xsd#ScheduleIIValuationandQualifyingAccountsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract_5df8b473-602f-4887-927e-0bf51a724ac4" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_fcfd738e-a26c-4a7f-b9cd-93d145a7effa" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract_5df8b473-602f-4887-927e-0bf51a724ac4" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_fcfd738e-a26c-4a7f-b9cd-93d145a7effa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_d92e15dc-d0d7-4f36-b6b5-a628053ca9e5" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_fcfd738e-a26c-4a7f-b9cd-93d145a7effa" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_d92e15dc-d0d7-4f36-b6b5-a628053ca9e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_dad097b6-4f4a-4f14-acc1-913c9ee90493" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_d92e15dc-d0d7-4f36-b6b5-a628053ca9e5" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_dad097b6-4f4a-4f14-acc1-913c9ee90493" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UncollectibleReceivablesMember_6e963b61-6e92-4b9b-9fe4-f04383cb0410" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_UncollectibleReceivablesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_dad097b6-4f4a-4f14-acc1-913c9ee90493" xlink:to="loc_us-gaap_UncollectibleReceivablesMember_6e963b61-6e92-4b9b-9fe4-f04383cb0410" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesReturnsAndAllowancesMember_bc9e153a-526c-4131-bc4c-773f9f676a2c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_SalesReturnsAndAllowancesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_dad097b6-4f4a-4f14-acc1-913c9ee90493" xlink:to="loc_us-gaap_SalesReturnsAndAllowancesMember_bc9e153a-526c-4131-bc4c-773f9f676a2c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_e64477a9-bc9b-4f8c-b1f7-1b9a49933546" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_dad097b6-4f4a-4f14-acc1-913c9ee90493" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_e64477a9-bc9b-4f8c-b1f7-1b9a49933546" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_c2c7614c-d05d-47d0-913f-f8873aeab38c" xlink:href="https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_fcfd738e-a26c-4a7f-b9cd-93d145a7effa" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_c2c7614c-d05d-47d0-913f-f8873aeab38c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_c2c7614c-d05d-47d0-913f-f8873aeab38c" xlink:to="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_26bcb743-0482-4422-a78a-d2a843c8f3ed" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_26bcb743-0482-4422-a78a-d2a843c8f3ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_1cb88725-6a90-4b55-bb98-4dcbd2a0c8fe" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_1cb88725-6a90-4b55-bb98-4dcbd2a0c8fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_328b7834-86d2-4839-80f9-c88e292b1552" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_328b7834-86d2-4839-80f9-c88e292b1552" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions_5aa8b486-43fa-4626-a5a2-5716d609ff67" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesDeductions"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDeductions_5aa8b486-43fa-4626-a5a2-5716d609ff67" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_f4ae374e-b0c5-458a-966d-dcf3c36b11a4" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_f4ae374e-b0c5-458a-966d-dcf3c36b11a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_4e19d9be-9455-40df-9fd0-c65ef1ba75c7" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_469b069d-797b-46d2-b385-b782df14b24c" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_4e19d9be-9455-40df-9fd0-c65ef1ba75c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#AwardTimingDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgDiscLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgDiscLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiDiscTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMethodTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMethodTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgPredtrmndFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgPredtrmndFlag"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgPredtrmndFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgMnpiCnsdrdFlag"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardTmgHowMnpiCnsdrdTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MnpiDiscTimedForCompValFlag"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTableTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscTable"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="loc_us-gaap_AwardTypeAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_EmployeeStockOptionMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_StockAppreciationRightsSARSMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardsCloseToMnpiDiscIndName"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardUndrlygSecuritiesAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardExrcPrice" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardExrcPrice"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardExrcPrice" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardGrantDateFairValue" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AwardGrantDateFairValue"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardGrantDateFairValue" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_UndrlygSecurityMktPriceChngPct"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ErrCompDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RecoveryOfErrCompDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompRecoveryTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompRecoveryTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ErrCompRecoveryTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDateAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDateAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="loc_ecd_RestatementDateAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonNeosMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonNeosMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="loc_ecd_NonNeosMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDeterminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDeterminationDate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_RestatementDeterminationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompAmt"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_AggtErrCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompAnalysisTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ErrCompAnalysisTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ErrCompAnalysisTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_StkPrcOrTsrEstimationMethodTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingAggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingAggtErrCompAmt"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingAggtErrCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtErrCompNotYetDeterminedTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryIndName"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryIndName"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingRecoveryIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OutstandingRecoveryCompAmt"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingRecoveryCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_RestatementDoesNotRequireRecoveryTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/PvpDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#PvpDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/PvpDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PayVsPerformanceDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PvpTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ExecutiveCategoryAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ExecutiveCategoryAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_ExecutiveCategoryAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllExecutiveCategoriesMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllExecutiveCategoriesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ExecutiveCategoryAxis" xlink:to="loc_ecd_AllExecutiveCategoriesMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="loc_ecd_PeoMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="loc_ecd_NonPeoNeoMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_AdjToCompAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllAdjToCompMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllAdjToCompMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AdjToCompAxis" xlink:to="loc_ecd_AllAdjToCompMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="loc_ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AggtPnsnAdjsSvcCstMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsSvcCstMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:to="loc_ecd_PnsnAdjsSvcCstMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnAdjsPrrSvcCstMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AggtPnsnAdjsSvcCstMember" xlink:to="loc_ecd_PnsnAdjsPrrSvcCstMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="loc_ecd_EqtyAwrdsAdjsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsMember" xlink:to="loc_ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsMember" xlink:to="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember" xlink:to="loc_ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_MeasureAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PvpTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PvpTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CoSelectedMeasureName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NamedExecutiveOfficersFnTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupIssuersFnTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_ChangedPeerGroupFnTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoTotalCompAmt"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoTotalCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoActuallyPaidCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoActuallyPaidCompAmt"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoActuallyPaidCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToPeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToPeoCompFnTextBlock"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToPeoCompFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgTotalCompAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonPeoNeoAvgCompActuallyPaidAmt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToNonPeoNeoCompFnTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EquityValuationAssumptionDifferenceFnTextBlock"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsNetIncomeTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnVsPeerGroupTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CompActuallyPaidVsOtherMeasureTextBlock"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TabularListTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TabularListTableTextBlock"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TabularListTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TotalShareholderRtnAmt"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TotalShareholderRtnAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeerGroupTotalShareholderRtnAmt"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_us-gaap_NetIncomeLoss" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_CoSelectedMeasureAmt"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CoSelectedMeasureAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OtherPerfMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_OtherPerfMeasureAmt"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_OtherPerfMeasureAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AdjToCompAmt"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PeoName"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MeasureName"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_MeasureName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonGaapMeasureDescriptionTextBlock"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Additional402vDisclosureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Additional402vDisclosureTextBlock"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_Additional402vDisclosureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_PnsnBnftsAdjFnTextBlock"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PnsnBnftsAdjFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_EqtyAwrdsAdjFnTextBlock"/>
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_EqtyAwrdsAdjFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#InsiderTradingArrangements"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingArrLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingArrLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrByIndTable" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrByIndTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TradingArrByIndTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TradingArrAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="loc_ecd_TradingArrAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllTradingArrangementsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrAxis" xlink:to="loc_ecd_AllTradingArrangementsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:href="cgnx-20241231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:href="cgnx-20241231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenMember" xlink:href="cgnx-20241231.xsd#cgnx_JoergKuechenMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="loc_cgnx_JoergKuechenMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_MtrlTermsOfTrdArrTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndName" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndTitle" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrIndTitle"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrIndTitle" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrAdoptedFlag"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrAdoptedFlag"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrAdoptionDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrAdoptionDate"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrAdoptionDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_Rule10b51ArrTrmntdFlag"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_NonRule10b51ArrTrmntdFlag"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrTerminationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrTerminationDate"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrTerminationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrExpirationDate" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrExpirationDate"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrExpirationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrDuration" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrDuration"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrDuration" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_TrdArrSecuritiesAggAvailAmt"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#InsiderTradingPoliciesProc"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTradingPoliciesProcLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcAdoptedFlag"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd#ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>14
<FILENAME>a2024insidertradingpolic001.jpg
<TEXT>
begin 644 a2024insidertradingpolic001.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBFR2)%&TDC!40%F)[ 4 .HJKIVIV.KV:WFG7<-U;.2%EA<,K8X."*M4 %%
M0W=Y;6%J]U>7$5O;QX+RRN$5><<D\#DTZ>9+>"2>3=LC4LVU2QP/0#D_A0!)
M15;3]0M=5T^WO[&836MP@DBD (#*>AYYJS0 45%<W,%E:RW5U,D-O"ADDDD;
M"HH&22>P K%;QOX6569M?TX*JAF)G4  ]"?8T ;]%%% !15+5=6LM$TZ2_U&
M8PVL>-\FQF"Y..=H.![U/]LMOMWV+[1%]K\OS?(WC?LSC=MZXSQF@":BBB@
MHJKJ.I6.DV;7FHW4-K;(0&EF8*HSP,DU%8:WI>J2R16&HVMS+$ 9(XI0S(#T
M)'4"@"_103@$^E9EKXATF\L$OHKZ(6SSFV5Y<QYEW;-F&P=V[C'K0!IT444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !113)94@A>61@J(I9B>P'6@
M!7=(T+NP51R23@"L>;QAX:MW*3:]IJ..H-TF1^M?-GCSQ[J7BO6)P+F2/3(W
M98($.%*YX+>I/6N-H'8^P?\ A-_"W_0Q:7_X%)_C0/&WA8G \0Z7G_KZ3_&O
MCZB@+'VG9ZKIVHC-E?6UR/6&57_D:N5\2V]S/:RB6WFDAD4Y#QL5(_$5](_"
M'QK=>)]#N+;4YA)>V) ,AX+QGH3[CD?E0%CTAF5%+,P"CJ2>E8\_B[PY;.4G
MU[38W'!5KI 1^M?.GQ$^(.H>)]:N+>WN9(M)A<I#"AP'QP6;'7-<)0%C[!_X
M3?PM_P!#%I?_ (%)_C1_PF_A;_H8M+_\"D_QKX^HH"Q]D6WBKP_>R".VUO3Y
MG/14N4)/X9K6!!&0<BOB$'!R*]0^%/Q!O]*UZUT:_N7FTZ[<1()&R87/0@GM
MGC% 6/H^J%]KFE:8<7^I6EL?2:94/ZFO._C%X[NO#EG;Z3I<OE7MVA=Y1]Z.
M/../0DYY]J^=YIY;B5I9Y7DD8Y+NQ)/XF@+'U[_PF_A;_H8M+_\  I/\:/\
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
MON;)<E> ,#"]_G?..* .FB1HXD1Y&D95 +L "Q]3@ ?E3Z** "BBB@ HHHH
M**** "BBB@ HHHH **** "L'QO,UOX%UV5#AA8S8/IE"*WJYSQ__ ,D_U_\
MZ\9?_030!\AU[!\*_AAIGB/1VUK6?-DC:1HX8%;:"!U8]^O\J\?KZF^$  ^&
MVFX]9/\ T,T#8_\ X5)X+_Z! _[^M_C3)/A#X+DC91I10D?>65LC]:[FB@1\
MG>)_ 6K:3XEOK'3],U"ZLXI,0S+ S;E(R.0,'KBNK^%NG:QHC>))KO3[NU0Z
M5*5::)D!8<C!(Z]:^AJR_$O_ "*VK_\ 7G-_Z :!W/C0\FO5_A3\-+#Q393:
MOK'FM;))Y<,*-M#D=23UQTKRBOIOX*#_ (MO;?\ 7>7_ -"H!EW_ (5)X+_Z
M! _[^M_C0?A)X+((_LD#_MJW^-=O10(^:/BK\/;7P=/:WFFO(;&Z8IY<AR8W
M'/!]"/Y5Y]92-#?VTJ'#)*K ^A!%>_?'[_D5--_Z_/\ V1J^?K?_ (^8O]\?
MSH&CN_C)<O<_$&;>20EO$J^P*Y_F36+X!\.P^*?&-EI=R6%N^YY=IP=J@G'\
MA6I\6_\ D?[G_KA#_P"BQ5SX)?\ )1H?^O:7^0H ]SB^'7@^&-4'AZP( ZM%
MN/YFG_\ "O\ PA_T+NG?]^!71MPA^E?*,_Q,\9K/(JZ_<@!B ,+Z_2@1ZU\0
M_A3I]]H@E\,Z1%#J4<@PD)$:NIZYSQQUKRX?"'QN"#_8X_\  F+_ .*JE_PL
M[QI_T,%U^2_X4O\ PLWQI_T,%U^2_P"% SI?C=')%JVAQRC$B:<JN/<$YK@/
M#VCR>(-=M=*B<))<%E1CTW!21^HKNOC)-)<7?AV:5R\DFEQN['J2>2:Y_P"&
M/_)2=#_Z[G_T$T <Q>6D]A>36ES&8YX7*2(>H(."*]9^"OCC^S[_ /X1N_D_
MT:Y8M;.Q^Y)_=^A_G]:U/C9X'\Q/^$HL(OF0!;U5[CH'_H?PKPU':-U=&*LI
MR".QH ^WNU?&?B3_ )&?5/\ K[E_]"-?2OPS\:KXO\.+Y[ :E:XCN%_O<</]
M#_/-?-7B3_D9]4_Z^Y?_ $(T CUCX(_\BOXJ_P!Q?_0'KQ9_]8WU->T_!'_D
M5_%7^XO_ * ]>+/_ *QOJ: />/A!X3\/ZUX*-UJ>DVMU<?:G3S)4R< # KOO
M^%>>#O\ H7M/_P"_8KY*661!A)&4>@.*7[1/_P ]I/\ OHT!8^M/^%>>#O\
MH7M/_P"_8J:S\#^%K"[BNK31+*&XB;='(D>"I]17R+]HG_Y[2?\ ?1KTOX&R
MR/X^</(S#[')P3GNM 6/I"O /C)\/_[/N&\2:7#BUF;_ $J)!Q&W]\>Q[^_U
MKW^H;N"WN;.:"Z17MY$*R*W0J1SF@1\66EU/8W<-U;2-%/"X='4X*D=#7K'B
M3XR2:IX&M["S5H=4N$,=XXR @'!*G_:_3FO-?$=OIMIXBOX-(G,]@DI$,A[C
M^H[9[UET#  DX R37TA\)/A^/#NFC6-1BQJ=TGRJP_U,9Z#ZGO\ E7EOPAT_
M1]0\;PKJL@WQJ7M8F'RR2#U/J.H'>OJ&@&%%%% @HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ JM?ZA::9:-=7TZ06ZLJF1S@
MLP49^I('XU9K.U_2(=?\/ZAI,_$=W \6[^Z2.&^H.#^% %F[O[6P$)NITB\^
M98(MQ^_(WW5'N:L5YIX;U2;QEK/AY+H9DT.T>?4$/.+W+0*#Z$;)V_$55\,7
MWBW7(M*UV)-0+7%[FZ\R[A^RB#S"K(L6=P*CH<;LKSUH ]5JK?ZC::9;K/>S
M"&)I$B#$$Y9V"J./4D"N$TBV\0:MIWB6_MM?NO[02]O[/3X96 @A"R,J9&#D
M@]">@P,>M>36[FT\.W%M%/J]KJEKJEA%=0W\ZS/&))HP=LBY#(RD]_7@=* /
M3:*\TO;K4-3L_&&L-K][I\VBW$T5I!#(JQ1B*-65G4CY]Y.3GL0!BI8'U;Q/
MXBF@FUC4-,A&AV=V8+1PA6>0RY.2"1C'3O@9Z4 >C5G:MKNEZ%#'+J=[%;+(
MQ6,.>7(Y. .3QZ5B>%+V_P!<\.>%=6N=4,4LEKYES J+B[8QXY[C!^;Y?Y5M
MZNNHM;J-(>P2_P"=IO$9EV]\!2#UVT 6-/U"SU6QBOK"YBN;68;HY8FW*PZ=
M:S[KQ9H%EJRZ7<ZM:Q7I94\IGY#-]U2>@)[ \FL+X:3PP^%9+27;%<VVHW-M
M<L9 4EN/,+.8S@?*2W QQT[9KFKGR6^$GCG[1@W1U&_$F?O>=YI\K\?]7C\*
M /6Z*CM_,^S1>;_K-@W_ %QS4E !1110 4444 %%%% !1110 4444 %%%% !
M7/>.T,G@'7E49/V&4_\ CIKH:@O;6.^L+BTE&8YXVB?Z,,'^= 'Q/7T)\&?%
MVE+X272+R^@M[NVE;:DL@3>C'((SU[UXGXG\/7GAC7KG3;N-E\MSY;D<2)GA
MA]16/0,^T?[:TK_H)6?_ '_7_&FOKVD1H6?5+)5'4FX0?UKXPHH"QZ=XX^)^
MM'Q=?+H.M2IIR,$C\O!5L#DCVSFK7@/Q?XA\1WFM6.IZG-=0C1[EUC?&-V
M>![FO)Z]L^!7AF8G4-<N8B+>6(VL08??!(+'Z< 4 >)U[U\$_%VEV_AZ71;V
M\AMKB&8O&)G"!U;G@GN#7DOC'PQ=^%/$5SI]PC>5N+02XXD0]"/Y5S] 'VC_
M &UI7_02L_\ O^O^-)_;>E#_ )B5G_W_ %_QKXOHH"Q[-\<?%>FZI#I^D:?=
M17+0R&:9XG#*O& ,COR:\>M5+W<*CDF10/SJ*NS^&?A6Y\2^+;0B(_8K219K
MB0C@ '('U)&* +/Q?C:+X@W(88S!#C_O@#^E5?A9K%MHGC^QN;R58K=P\3R,
M<!=PX)/UQ7H'QU\*7,[VOB*TA,B1Q^3<[1RHSE6/MR1^5>&T ?;2SPRQAEE1
ME8<$,#FO/G^#7@IW9C%<98Y/^E&OFH7$RC"S2 >@8TOVJX_Y[R_]]F@+'KGQ
M,\#^#O"GAPRZ>SKJ<DBK"C7!<D9^8[?3%>/4YW>0Y=F8^I.:NZ+I5SK>L6NG
M6D9DFGD"@ =!W/T YH&=W\7O];X9_P"P3%6%\,/^2DZ'_P!=S_Z":ZGXZ0"U
MUW1K=?NQ6 0?0,17+?##_DI.A_\ 7<_^@F@70^KKBWBNK>2WGC62*12KHPR&
M!Z@U\H?$+P?+X.\226R@FRGS):OZKG[I/J/\*^LZY;Q]X0A\8^&Y;(A5NX_W
MEM*1]UQV^AZ&@1\T>#?%%SX1\10:G!EHQ\D\?9XSU'U[CW%9VM7,=YKE]<PG
M,4T[NA]06)%5KJVFL[J6VN(VCFB8HZ-U4C@BHJ"CVOX(_P#(K^*O]Q?_ $!Z
M\6?_ %C?4U[3\$?^17\5?[B_^@/7BS_ZQOJ:!'O/P>TGP[>^"6EU2RTZ:X^U
M2#=<(A;&!CKVKT#_ (1[P9_T#-%_[]1U\BAB.A(_&C>W]X_G0%CZZ_X1[P9_
MT#-%_P"_4=6K#3?#6G7(FT^VTRWG(V[X516(/;(KX[WM_>/YUI>'V;_A(]-^
M8_\ 'U'W_P!H4!8^S*\3^,/Q%\L2>&=(F^<C%Y,AZ _\LP1^OY5TWQ2^(2^%
M--^P6$BG5KE?E_Z8H<_/]?0?C7S0[M([.[%F8Y+$Y)- (6**2:5(HD9Y'8*J
MJ,DD] *]%\0_"74-$\$VVM!FENE7?>P ?ZM3TQ]._P#]:NF^#/P_W%/%&J0\
M=;*-A_Y$/]/S]*]ODC26-HY%#(PP5(R"* N?$L,TEO,DT+M'*C!E=3@@CN*^
MG?ACX_C\7Z3]FNW5=6MEQ*O3S%[./Z^]>/?%'P&_A+63=6B,=*NF)B..(FZE
M/\*X_1M8O=!U:WU*PE,=Q"P8$'@CN#Z@T ?:%%<]X,\6V?C#08M0MB$E'RSP
MYR8W[CZ>AKH:!!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110!2LM(T_3;B[GLK.&"6\E\ZX>-<&5_[Q]35-/"6@1ZJ=332
M;9;PR>=Y@7'[S^_CIN]\9K9HH H'1-,:PNK%K&$VMT[R3Q%<K(SG<Q/N3S5>
MV\+Z':636<&F0) \R3NN,EI$(*L2>205&,^@K7HH QK[PEX?U/4O[0O=(M9[
MH[=TCIG?M^[N'1L=LYQ6BMA:I?2WRP(+J:-8I)<<LBDE0?8%F_.K%% &=#H.
ME6_]G>580I_9JLMGA?\ 4!EVD+Z9'%)J_A_2=>6(:I80W)A),3.,,F>N".1G
M SZXK2HH S$\.Z/'8V=E'IMLEK93+/;1+& L4BY(8 =\D\^]13^%- N=8&K3
M:3:O?!E?SF3DLOW6(Z%AV)Y%;%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 9NL:!I.OVWD:K80748Z>8N2OT/4?A7'2_!7P9(Y86ES&#_"EP
MV/UKT.B@#SG_ (4CX-_YX7G_ ($FC_A2/@W_ )X7G_@2:]&HH X2P^$'@VPG
M6;^S6N&4Y N)6=?RZ&NXAABMX4AAC6.-!A448 'H!3Z* *&K:)IFN6OV;5+*
M&ZB[+*N<>X/8^XKC)O@MX,ED+"SN(P?X4N&Q^N:]"HH \Y_X4CX-_P">%Y_X
M$FC_ (4CX-_YX7G_ ($FO1J* //[;X,^#+>4.;&:;'\,L[$?IBNUT_3+'2;1
M;73[2&V@7I'$@45;HH :Z+(A1U#*PP01D&N,U/X4>#M4F:9]*6"1CDFW<Q@_
M@./TKM:* /.?^%(^#?\ GA>?^!)H_P"%(^#?^>%Y_P"!)KT:B@#SM/@IX-1@
M3:W3#T:X:NIT+PCH/AM2-)TV&W=AAI ,N?JQYK;HH YSQ#X&T#Q3=17.KV;3
MRQ)L0B1EP,Y[&J>E?#'PKHNIP:C8Z>T=U VZ-_.<X.,="?>NOHH **** .3U
MGX;^%M?U.34=0T[?<R ;W61EW8[D ]:H?\*>\%?] M_^_P"_^-=W10!@:%X,
MT/PW:W=MI=JT,5V )@9&;=P1W/'4UAGX/^"B23I;\_\ 3=_\:[NB@#A/^%/>
M"O\ H%O_ -_W_P :/^%/>"O^@6__ '_?_&N[HH X3_A3W@K_ *!;_P#?]_\
M&I;?X2^#K6YBN(=-=98G#H?/?@@Y'>NVHH X_4_ACX6UC49K^_LI9[F9MSNU
MP_/Z\#VJJOP?\%*P/]E,<'.#._\ C7=44 ,BBC@B2*)%2- %55&  .PI]%%
M%#6-&L-?TV33]2MUGMI,;D/'(Z$'L:Y/_A3W@K_H%O\ ]_W_ ,:[NB@#G/#W
M@;0?"]W)<Z1;2022+L<><S!A[@G%='110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%>8>-O$.OZGX_TWP+X;OQICS0&Z
MO;\1AWC3GY5![\?^/#D<T >GT5Q%B+_X>Z3JNH^*?%4FJZ3$B/"\\ 6:-LD%
M>/O9)7']*AT?XJZ;J6M6&F7FCZQI+ZB,V,M_;A$N/0 @GDY'YCU% '>T5YWK
M'Q@TC29-0=='UF]L-.N/LMS?VT"F%)<X*Y9AGD@9]QZBI]3^*VEZ7J%KILVC
MZT^HW=BEY#:1VH:5MQ(\O:&R'&"3V !Y[4 =[17&:7\3_#^I>#[[Q)(;BSMK
M!S%=0W$>)8W&,+@$Y)) 'U[<TW1/B39:MK-OI-SH^K:7=WD+3V2WT*H+E0,G
M:0QYQS@XH [6BO/X?B]H,^EQW,=IJ!O'U#^SAIOEI]I\[_=W8Q[Y]JZ;Q=X@
M7PMX2U+6VC$AM(2Z(3PSD@*#[%B* -JBO)?#6A_$#7]&L?$\WC>2VN[M5N8[
M 6JFW$1Y"D>Z]\9&>_6N@UOXI:;I6LWFEV>D:OK$]@H>];3[<2);C&<,21SC
M^OH: .ZHKA[_ .*_AK3_  QI7B)FN9=.U&;R4:.,%HF .=ZDY&-I'&?;-5[G
MXMZ1I^FZ7>:EI.LV8U*6:.&&6V'F QXZKG/S;E QGD]NM 'H%%<5X=^)NCZ[
M<:I:W%K?:1=Z9";BY@U*+RW6(#)?&3P 1GZBLR#XSZ))):S3Z1K5II-W-Y,&
MJSVH6W=LXZYSC@]NQ]#0!Z117!Z_\5=)T'Q'<Z =,U:]U* 1L(;. 2>8K+N)
M7G.%'7(%2^(/B5!H%W>1MX<U^[MK''VJ\@M1Y,? )PS$9P#SVH [>BO*/&7Q
M6N-*U3PK_8MA>W6GZGLGD=+3>;B)L8CBY'[P<Y7ME:U$UR"\^*NBJUYKMG+=
M:-]J&F3*$MU!+\RKNR)!@YX/0<T >AT5YM/\:=#B\ZZBTG6KG1H)O(EU:&U!
MMPV<=<Y(Y';OTZ5J:_\ $_1- U2RTYK;4+Z>^LQ=V@L81+YX8D*JC.<G!/3&
M.] ':T5S7@WQMIWC6RNIK."ZM9[28P7-M=(%DB;W )]_R-=+0 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 5Y5XVT;7]#^).G>.M"TN35
MH5MC:WMG"?WF.?F4=^".F>5]Z]5HH \B\7+XF^)G@/5K2+PO=Z486AFM8[R0
M+)=,"=Z[?X<#&,]34-W_ ,)!\0_$_A+?X6U#1K;1;E;N\GO4"*67:=D?=@2N
M,^_;%>QT4 ?,$8:YM_$>HW]CK=WX6.LS7%TNEW$:6DN'!!VN-Y[9(//'3%>H
M6-M<:O\ &72O%%E9SG1+CP\OEW)CP@+,6"GT.".*UY?A'X-EN)9#ITRPS2>;
M):I=RK [9SDH&Q^'2NUAABMX(X(8UCBC4(B(,!5 P !V% 'A-UX"\0:KX3^(
M%E%82Q7-SKK7EFD@V"X0.3\I/'(/'OBM;PGIEI<^)=+OKGPKXRBO+!'<W&JW
M#/# VPY";F)?)P!@#M7L=% 'SW#X8\56OBVV^)9T&5IY]5D\W2%@S+';E=HD
MQ_?QN_'![FO9?&F@-XK\%ZIHL;B.2ZAQ&S< ."&7/MD#-;]% 'D?A;Q5XTT3
M0K#PU<^ M1FU"S1;5+D2!;=D7Y0Q?IP,="<X[9J"R;Q#\/O%WBXKX5U'6;?6
M;DW=G<62!UW$L=LG]T MC\#P<U['10!X(OP^U[2_ ?@O3I+"2>[BUY+V[BB&
M\0(3_$1Q@ #/;)-;WQBN+JT\7> +FRLS>7,5]*\=L&"F4CRCM!/ )KUVLC5O
M#6EZWJ>EZA?0M)<Z7*9K5A(5"L<9R!U^Z.OI0!Y.GAKQ!X\\2>+-=FT>YT6&
M[T=M.M(KT;)))#M.6'I\N,^XZX-4;RT\4^)OA]H_P_\ ^$1U"QNK=XHKF^N%
M MT2/C>K?Q$\'CWQFO?:* /.=$T/4+7XXZ]JDEE,-/DTR&&&Z9?E=@(\@'U^
M4_E7'^+K#Q=JFM>*K&_L?$]XLZLFCKI\WEV(C(/^MP0"<8R#DDY'>O=J* /$
M-6T'7K'P?\-K^'1+R[FT.5)+RSA3,RCY3]W_ ("1^(K;O-(U77?BUI6L-I=W
M:65QX<:&621/^/>1S)\C$<;AN'%>J44 ?/\ :6OBS3OAE=_#D^#M0EOWD>*.
M^0#[*4:3=O,G3N<?A]*ZFQ\)ZII7Q0\&M]FEFLM,T 6<UXJGRQ(JN,9]\C\Z
M]7HH \\^'FCZCIOC#QW<WME-!!>:D)+9W7 E7+\KZCD?G7H=%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% '$?$[Q;J/@_1]+N]-2W:2
MZU**UD$Z%AL96)Q@CGY16EK7Q \*^';NYM-6UB&VN+=$>2)D<MAONX !W?09
MKD/CLC/X:T$*I/\ Q.X.@S_"]-L;&"[_ &C]9>YM8YECT9&C,B!@K9C&1GO@
MD?B: .V_X3CPU_PC \1_VO!_9).T7'/WLXV[<;MWMC-8'B#QW9:CX#OM8\,^
M([2R-O-'$]W=6TA6(EA\I0H6R01CY3UKS30;'0Y?A5JMMKM[<Z5:Q^)Y#:W<
M$+.+>18UVDJ!]WJ/J1R*36O$.M>(_@SXI&HRKJ$%K?6\5IJB6QA^V)Y@RVW
MZ8'Y^U 'LFL>._#GA:*QCU_68(+BYB5EVQNV_P#VMJ@E5)SR?Z5SWPZ\:S:M
MIWBK4]9U:*33['4Y4@N&V*B0#!7D 9&.YR37*WNIZ?X1^,*:QXG@D_LV\T2.
M&RF,!E57 0%0 #R<,/\ @7H:Y:#3+_4?A+XVCTS3KB$#71.;+RBKK",';L']
MW()';;0![OH'C_POXHO7LM'U:.XN57?Y31O&S+ZJ' W#Z9IFG?$3PGJ^K6NE
MV&LQ3WUUYGE0K&^3LSNSD87[IZXSCC->=>$IM%\2>.] U!/&MSJNHV,,@AM5
MT@6XB0QD%795  &??GIUK3^!&F6B>%]1OFLXA>'5)E\YHQOP%4 9ZXY;\S0!
MT'Q"U/QIH=G<:OX??1/[,L[1IKA+U9#,67).W;QC&.I'.:H^#?%'BJ?01XI\
M6W.AP>'WLC<*;2.7SD.1@L#D8QNZ9.<5T'Q'!;X;>(P 2?[/FX'^Z:XQD;_A
MF3;M.[^QQQCF@#L;?XC>$+J'4)X=<MVAT]$DNI-K!8P_"\D8))XP,G/'6I?#
MOC_POXKO)+31=62YN8UWM$8WC;;Z@.HR.1TKA[BX?PC\ =-U'1M&M);HV-J\
MN^W#A2VUFD8?Q$,<\]"<]JYO0+Z?7/C'IMW;Z^VM%])GB6_%A]E0/M8[ ,#=
MM+ Y]\=J .N^('Q8T2R\.:U:>'_$,*^(+8*(PD9;#>8H8*678QQNX!/?TK5L
M]?U.;Q9X5M9-=LTAO=)%Q/I[P'SKA]A)=6"[5&<<9'0\'->+)JNDVOP6U+PA
M<:7/_P )/!<M)-']D):+;("96?&  @V]<_@:]"MD;_A;OP].TX'A[!..G[MZ
M .PF^+7@6 PB3Q%;@S,44>7(<$'!W?+\HR.IP*U=?\:^'/"ZVYU?5(K<W +0
MJJM(SK_> 0$X]^E>(:-IELW[/?BZX>RC-R;]SYAC&_Y7CQSUXR?S-3ZSK%YH
MOBOPE>6<PMKL>%8$,LMJUTK ]1Y:?,I')W?A0![=X>\5Z)XKMIKC0[];R*%P
MDC*C+M8C./F KA=1\6^.;_XDZ[X:\-+H@BTR"*8?;DDW2!D1B,J>N6]!6S\(
MTT6#P)!:Z+JG]I)#*XN)C$8B)2=S#8>5QD8KB7\-3^)/CQXPMDUC4M*C%I;E
MY+%]C2J8H@5)(Z4 =GX/^)MAK7@)_$FN-!I:V\[6UR2Q*>8 #\G<Y##CD]>M
M;7A[QYX9\6/-%H>K1W4T2[FB*/&X'KM< D=.1ZUYQ\0_"5EX/\.>$DT^QFFT
M#2=56XU!,>8SJ2"7?UX##TY X%2Z;J-EXU^-VGZ]X92273+#37CO;P0-&CL0
MX5/F )(W+^7M0!%X>\;>(K_X::/JMUXEM+.]GUG[-)<7=MN$J<XC 1" 3ZX'
M3J*]%\0_$#PMX5O([/6M7BMKF0!A%L=V /0D*#@?7%>#644G_"EO"PV-G_A*
M5XQ[/78_VYI?@CXP^++OQ9%*D6IPQ&PN#;M*)$"@%%P#UX'I\O- 'JNF>*=$
MUG4[C3=/U".>[MXDFDC56&$< JP)&"""#D9ZBIM$\0:7XCM9;K2;M;J"*9H'
M=58 .N,CD#/4<CBO&OB7>3>$=4T?QUH=H]M!J6E/I\L)3RS$6CS#N4="../^
MF6*].^'/A[_A&/ .DZ:Z;9Q")9QW\Q_F8'Z$X_"@#J:*** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** $(!&" 0>U   P!@>E+10 A .,
M@''(S2T44 (%5<X &>N!2T44 %%%% !2 !0   !Z4M% ";1DG R>II:** "N
M,UOP VH>*6\2:5KU]I&IR6XMIGA1)%>,'.-K X/ _(5V=% '/>$?"%CX/TZ>
MVM)I[B:YG:XN;FX8%YI&ZDX  ^E=#110 4@4*,* !Z"EHH *0@'&0#CIFEHH
M YGQ?X-M_&+Z2E[>2QVEA=BZ>W105G8= V>@ZC_@1KIJ** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** (KBXAM+=Y[B18XD&6=CP!6;_PE.A?]!6V
M_P"^Z9XN_P"14U'_ *Y?U%>)UV8?#1JQ;;.:O7=-V2/;_P#A*="_Z"MM_P!]
MT?\ "4Z%_P!!6V_[[KQ"BNCZC#NS#ZW+L>W_ /"4Z%_T%;;_ +[H_P"$IT+_
M *"MM_WW7B%%'U&'=A];EV/;_P#A*="_Z"MM_P!]T?\ "4Z%_P!!6V_[[KQ"
MBCZC#NP^MR['M_\ PE.A?]!6V_[[H_X2G0O^@K;?]]UXA11]1AW8?6Y=CV__
M (2G0O\ H*VW_?='_"4Z%_T%;;_ONO$**/J,.[#ZW+L>W_\ "4Z%_P!!6V_[
M[H_X2G0O^@K;?]]UXA11]1AW8?6Y=CV__A*="_Z"MM_WW1_PE.A?]!6V_P"^
MZ\0HH^HP[L/K<NQ[?_PE.A?]!6V_[[H_X2G0O^@K;?\ ?=>(44?48=V'UN78
M]O\ ^$IT+_H*VW_?='_"4Z%_T%;;_ONO$**/J,.[#ZW+L>W_ /"4Z%_T%;;_
M +[H_P"$IT+_ *"MM_WW7B%%'U&'=A];EV/;_P#A*="_Z"MM_P!]T?\ "4Z%
M_P!!6V_[[KQ"BCZC#NP^MR['M_\ PE.A?]!6V_[[H_X2G0O^@K;?]]UXA11]
M1AW8?6Y=CV__ (2G0O\ H*VW_?='_"4Z%_T%;;_ONO$**/J,.[#ZW+L>W_\
M"4Z%_P!!6V_[[H_X2G0O^@K;?]]UXA11]1AW8?6Y=CV__A*="_Z"MM_WW1_P
ME.A?]!6V_P"^Z\0HH^HP[L/K<NQ[?_PE.A?]!6V_[[H_X2G0O^@K;?\ ?=>(
M44?48=V'UN78]O\ ^$IT+_H*VW_?='_"4Z%_T%;;_ONO$**/J,.[#ZW+L>W_
M /"4Z%_T%;;_ +[H_P"$IT+_ *"MM_WW7B%%'U&'=A];EV/;_P#A*="_Z"MM
M_P!]T?\ "4Z%_P!!6V_[[KQ"BCZC#NP^MR['M_\ PE.A?]!6V_[[H_X2G0O^
M@K;?]]UXA11]1AW8?6Y=CV__ (2G0O\ H*VW_?='_"4Z%_T%;;_ONO$**/J,
M.[#ZW+L>W_\ "4Z%_P!!6V_[[H_X2G0O^@K;?]]UXA11]1AW8?6Y=CV__A*=
M"_Z"MM_WW1_PE.A?]!6V_P"^Z\0HH^HP[L/K<NQ[?_PE.A?]!6V_[[H_X2G0
MO^@K;?\ ?=>(44?48=V'UN78]O\ ^$IT+_H*VW_?='_"4Z%_T%;;_ONO$**/
MJ,.[#ZW+L>W_ /"4Z%_T%;;_ +[H_P"$IT+_ *"MM_WW7B%%'U&'=A];EV/;
M_P#A*="_Z"MM_P!]T?\ "4Z%_P!!6V_[[KQ"BCZC#NP^MR['M_\ PE.A?]!6
MV_[[H_X2G0O^@K;?]]UXA11]1AW8?6Y=CV__ (2G0O\ H*VW_?='_"4Z%_T%
M;;_ONO$**/J,.[#ZW+L>W_\ "4Z%_P!!6V_[[H_X2G0O^@K;?]]UXA11]1AW
M8?6Y=CV__A*="_Z"MM_WW1_PE.A?]!6V_P"^Z\0HH^HP[L/K<NQ[?_PE.A?]
M!6V_[[H_X2G0O^@K;?\ ?=>(44?48=V'UN78]O\ ^$IT+_H*VW_?='_"4Z%_
MT%;;_ONO$**/J,.[#ZW+L>W_ /"4Z%_T%;;_ +[H_P"$IT+_ *"MM_WW7B%%
M'U&'=A];EV/;_P#A*="_Z"MM_P!]T?\ "4Z%_P!!6V_[[KQ"BCZC#NP^MR['
MM_\ PE.A?]!6V_[[H_X2G0O^@K;?]]UXA11]1AW8?6Y=CV__ (2G0O\ H*VW
M_?='_"4Z%_T%;;_ONO$**/J,.[#ZW+L>W_\ "4Z%_P!!6V_[[H_X2G0O^@K;
M?]]UXA11]1AW8?6Y=CV__A*="_Z"MM_WW1_PE.A?]!6V_P"^Z\0HH^HP[L/K
M<NQ[?_PE.A?]!6V_[[H_X2G0O^@K;?\ ?=>(44?48=V'UN78]O\ ^$IT+_H*
MVW_?='_"4Z%_T%;;_ONO$**/J,.[#ZW+L>W_ /"4Z%_T%;;_ +[H_P"$IT+_
M *"MM_WW7B%%'U&'=A];EV/;_P#A*="_Z"MM_P!]T?\ "4Z%_P!!6V_[[KQ"
MBCZC#NP^MR['M_\ PE.A?]!6V_[[H_X2G0O^@K;?]]UXA11]1AW8?6Y=CV__
M (2G0O\ H*VW_?='_"4Z%_T%;;_ONO$**/J,.[#ZW+L>W_\ "4Z%_P!!6V_[
M[H_X2G0O^@K;?]]UXA11]1AW8?6Y=CV__A*="_Z"MM_WW1_PE.A?]!6V_P"^
MZ\0HH^HP[L/K<NQ[?_PE.A?]!6V_[[H_X2G0O^@K;?\ ?=>(44?48=V'UN78
M]O\ ^$IT+_H*VW_?='_"4Z%_T%;;_ONO$**/J,.[#ZW+L>W_ /"4Z%_T%;;_
M +[H_P"$IT+_ *"MM_WW7B%%'U&'=A];EV/;_P#A*="_Z"MM_P!]T?\ "4Z%
M_P!!6V_[[KQ"BCZC#NP^MR['M_\ PE.A?]!6V_[[H_X2G0O^@K;?]]UXA11]
M1AW8?6Y=CV__ (2G0O\ H*VW_?='_"4Z%_T%;;_ONO$**/J,.[#ZW+L>W_\
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
M/$5_!J.J":!C(%B2-YBNTS,!@OCMFK5^<EVY3)HHHK4S"BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "O>='_Y EA_U[1_^@BO!J]YT?_D"6'_7M'_Z"*X,?\,3LP>[+M%%
M%>8=X4444 %%%% !1110 4444 %%%% &+XN_Y%34?^N7]17B=?0I 88(!![&
MF>1%_P \D_[Y%=5#$^RBU:YSUJ'M'>Y\^T5]!>1%_P \D_[Y%'D1?\\D_P"^
M16_U_P#N_B8_4_,^?:*^@O(B_P">2?\ ?(H\B+_GDG_?(H^O_P!W\0^I^9\^
MT5]!>1%_SR3_ +Y%'D1?\\D_[Y%'U_\ N_B'U/S/GVBOH+R(O^>2?]\BCR(O
M^>2?]\BCZ_\ W?Q#ZGYGS[17T%Y$7_/)/^^11Y$7_/)/^^11]?\ [OXA]3\S
MY]HKZ"\B+_GDG_?(H\B+_GDG_?(H^O\ ]W\0^I^9\^T5]!>1%_SR3_OD4>1%
M_P \D_[Y%'U_^[^(?4_,^?:*^@O(B_YY)_WR*/(B_P">2?\ ?(H^O_W?Q#ZG
MYGS[17T%Y$7_ #R3_OD4>1%_SR3_ +Y%'U_^[^(?4_,^?:*^@O(B_P">2?\
M?(H\B+_GDG_?(H^O_P!W\0^I^9\^T5]!>1%_SR3_ +Y%'D1?\\D_[Y%'U_\
MN_B'U/S/GVBOH+R(O^>2?]\BCR(O^>2?]\BCZ_\ W?Q#ZGYGS^SN^-S,VT8&
M3G ]*;7T%Y$7_/)/^^11Y$7_ #R3_OD4?7U_+^(?4_[Q\^T5]!>1%_SR3_OD
M4>1%_P \D_[Y%'U_^[^(?4_,^?:*^@O(B_YY)_WR*/(B_P">2?\ ?(H^O_W?
MQ#ZGYGS[17T%Y$7_ #R3_OD4>1%_SR3_ +Y%'U_^[^(?4_,^?:*^@O(B_P">
M2?\ ?(H\B+_GDG_?(H^O_P!W\0^I^9\^TY':-PZ,593D,IP0:^@/(B_YY)_W
MR*/(B_YY)_WR*/KZ_E_$/J?]X^?:*^@O(B_YY)_WR*/(B_YY)_WR*/K_ /=_
M$/J?F?/M%?07D1?\\D_[Y%'D1?\ /)/^^11]?_N_B'U/S/GVBOH+R(O^>2?]
M\BCR(O\ GDG_ 'R*/K_]W\0^I^9\^T5]!>1%_P \D_[Y%'D1?\\D_P"^11]?
M_N_B'U/S/G_>_EF/<VPG)7/&?6FU]!>1%_SR3_OD4>1%_P \D_[Y%'U]?R_B
M'U/^\?/M%?07D1?\\D_[Y%'D1?\ /)/^^11]?_N_B'U/S/GVBOH+R(O^>2?]
M\BCR(O\ GDG_ 'R*/K_]W\0^I^9\^T5]!>1%_P \D_[Y%'D1?\\D_P"^11]?
M_N_B'U/S/GVBOH+R(O\ GDG_ 'R*/(B_YY)_WR*/K_\ =_$/J?F?/M%?07D1
M?\\D_P"^11Y$7_/)/^^11]?_ +OXA]3\SY]HKZ"\B+_GDG_?(H\B+_GDG_?(
MH^O_ -W\0^I^9\^T5]!>1%_SR3_OD4>1%_SR3_OD4?7_ .[^(?4_,^?:*^@O
M(B_YY)_WR*/(B_YY)_WR*/K_ /=_$/J?F?/M%?07D1?\\D_[Y%'D1?\ /)/^
M^11]?_N_B'U/S/GVBOH+R(O^>2?]\BCR(O\ GDG_ 'R*/K_]W\0^I^9\^T5]
M!>1%_P \D_[Y%'D1?\\D_P"^11]?_N_B'U/S/GVBOH+R(O\ GDG_ 'R*/(B_
MYY)_WR*/K_\ =_$/J?F?/M%?07D1?\\D_P"^11Y$7_/)/^^11]?_ +OXA]3\
MSY]HKZ"\B+_GDG_?(H\B+_GDG_?(H^O_ -W\0^I^9\^T5]!>1%_SR3_OD4>1
M%_SR3_OD4?7_ .[^(?4_,^?:*^@O(B_YY)_WR*/(B_YY)_WR*/K_ /=_$/J?
MF?/M%?07D1?\\D_[Y%'D1?\ /)/^^11]?_N_B'U/S/GVBOH+R(O^>2?]\BCR
M(O\ GDG_ 'R*/K_]W\0^I^9\^T5]!>1%_P \D_[Y%'D1?\\D_P"^11]?_N_B
M'U/S/GVBOH+R(O\ GDG_ 'R*/(B_YY)_WR*/K_\ =_$/J?F?/M%?07D1?\\D
M_P"^11Y$7_/)/^^11]?_ +OXA]3\SY]HKZ"\B+_GDG_?(H\B+_GDG_?(H^O_
M -W\0^I^9\^T5]!>1%_SR3_OD4>1%_SR3_OD4?7_ .[^(?4_,^?:*^@O(B_Y
MY)_WR*/(B_YY)_WR*/K_ /=_$/J?F?/M%?07D1?\\D_[Y%'D1?\ /)/^^11]
M?_N_B'U/S/GVBOH+R(O^>2?]\BCR(O\ GDG_ 'R*/K_]W\0^I^9\^T5]!>1%
M_P \D_[Y%'D1?\\D_P"^11]?_N_B'U/S/GVBOH+R(O\ GDG_ 'R*/(B_YY)_
MWR*/K_\ =_$/J?F?/M%?07D1?\\D_P"^11Y$7_/)/^^11]?_ +OXA]3\SY]H
MKZ"\B+_GDG_?(H\B+_GDG_?(H^O_ -W\0^I^9\^T5]!>1%_SR3_OD4>1%_SR
M3_OD4?7_ .[^(?4_,^?:*^@O(B_YY)_WR*/(B_YY)_WR*/K_ /=_$/J?F?/M
M%?07D1?\\D_[Y%'D1?\ /)/^^11]?_N_B'U/S/GVBOH+R(O^>2?]\BCR(O\
MGDG_ 'R*/K_]W\0^I^9\^T5]!>1%_P \D_[Y%'D1?\\D_P"^11]?_N_B'U/S
M/GVO>='_ .0)8?\ 7M'_ .@BK/D1?\\D_P"^14@  P.!6&(Q'M4E:QM1H>S;
M=PHHHKE.@**** "BBB@ HHHH **** "BBB@ HHHH **C6>%YW@66-I8P"\88
M%E!Z9';-24 %%1PSPW"LT,L<@5BC%&!PPZ@X[TLLT5O$TLTB1QH,L[L  /<F
M@!]%5;+4K#4D9[&]MKI5.&,$JN!]<&F:;J^GZO'/)IUW%<I!,T$IC;(21<94
M^XR* +M%51J=@=3.F"]MS?B/SC;>8/,"9QNV]<9[U:H ***;)(D,3RRNJ1HI
M9F8X"@=23Z4 .HJO8WUIJ=G'>6%U#=6T@)2:%PZ-@X.".#R#5B@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "D==Z,N2,C&0<$4M(P)4@':2.#Z4 >?^$=(L]$^)GB>TLD=8_L-D[-
M)(SO(Y,N69F)+$^IKM]1L(M3L);*=YEBE #F&5HV(SDC<I!&>AQV)KF=,\&Z
MII_B6;6Y?%$]Q+<+''<QM9Q*)4CW;5X'R_>/(K832=1BM=3CCURY\Z[N#-!,
M\2/]E4X^15(P0,'KZT <_P##"U@L=*UZTMHEBMX=>O8XXU'"J'  'X5@_$2)
M?$'Q0\'^%-09SH\ZS74\(8JL[HK%5;'7&W_QXUUWA7PG>^&KB\9]>FOH+N:6
MYDADMHT'G2,"SY49['CIS1XQ\$6?B\6,[7=SI^I6$ADM+VU;#QDXR/<' _+Z
MT <)XAT/3O!/Q6\%7'ANU2P.I2RVMW;P<))&-O)7IQN)_ 'M7-^']4\8:%X8
M\7:WH=QIJ:=8:W<2S0W$1>2<Y0,,YPH"[3QR>:]1T+X=BP\1Q^(=;UR]UW5(
M(S';27(5$@!X.U!QG!//O6)/\&8Y(+ZTB\4ZI!I^HW37%]:(%V2Y;< /[IZ#
M/.<#CB@"O;^,86^(,^K-IMJL(\(C53((AY^,JVS?Z8/2LG0/BIKUYJ.@W$MY
M:7L6J7:P7&F0:=*ALT<X5Q,>'QQG_)&YHV@3:C\5=7FDT.[L] M]%.BJ;E-B
MS@.!\G/*%0<'TQ6UX?\  .I>'9+2UMO&&I/HUI)NBL&AB^[G.QI,;BOMQ0!F
M>'O$7C+QCK&H:CI5SI=KHEAJ9LA:SPLTDZ(5WL7!^4X;([9X/J><\'MXG7Q1
MX^:\U&RN;:U9OML#P,5F;RI-NP$X5<@9'<5V5M\-&T[7[F]TKQ)J=AIUW>"]
MN-.AV['DR"<-U53C! [<5.GP\$'BK5]8M-;NX+;5D87=B$4H[F-D#9//&XG'
MK[4 <AX4\9ZEIFF?#YFM[&WT363-:SQV\'EB*;S&$97GC<<?DQI+SXK:Q!X;
MU/6HQ:_9[K6_[,TEWB8JD8SNE8+R_ Z#OZUU5S\+["Z^'-CX0;4+A5LI!+!>
M*H$B.'9L@?\  B*FG^&>E3> M/\ "JW%Q$FGNLUM=Q861)@2?,],DLW'O^-
M&;X \::GK/B?4-$O+R/5;:*V6Y@U**QDM03D*T;*W?D8QV!_#TBN?\/:%J^E
M3S3:KXGN]89T"(DL$<2( >N$')]S704 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !2,RHI9F"J.I)P*6J]]86FIV4MG
M?VT5S:R@"2&9 RL,YY!Z\@4 /%U;L0!/$2>  XYI+6\MKV)I;2XBGC5VC+1.
M& 93AAD=P0017G'A+PAX;'CGQ9C0M/\ ]!OK8VO^CK^X/D(WR<<?-SQWK*T?
M6_$?AWPAJVMVR::VDV.K7;2P2*[33H;E@Y# @(1G@8;./PH ]BHKS_Q!XZGM
M_%5YHEGJ>E:9]AACDDFU"%Y?.D<$A%567   RV3]X8%=/X3UQ_$GA>PU:2W^
MSR7"$O%SA6!*G&>V0<>V* -FH3>6PO5LC<1"Z:,RK#O&\H" 6QUP"0,^]<._
MB3Q3JEOK6JZ(NEQZ?I=Q-!';W43O)=F'ASO# ("00O!Z<UFRZIJ6N^//#NI:
M +6&2_\ #DDV^\#.L*-)$V=JD%B#@8R.N<\8(!Z;)+'"H:61$!(4%CC)/ 'U
MI]>:7?BB[O= :+6-.TZXU#3_ !%;Z=.#&S0L3(FV5 3E3M<$9)P1WHUKXB74
M>LZU;6&H:19)I3^4L-]%)))>2! S %6 1>0H.&YS0!Z717#+XKUC7]0TS3]
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
M(G22UED4E/F9B'&1@G"]<T =8=:TL:N-).HVG]I%=XM/.7S=N,YVYSTYJ\2
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
M(!Z717BG@/Q!XGTR3QQJNM7=I=:=IE[=-=1*TAD\Y 3MAW'"Q\8 /-74\?\
MC/3--T#Q+K-MH[:'K%Q'%]GMED$T"29*-N)P>!D_EQG@ ]>HKS72?%OC'7?'
M.LZ996NE+I6C7WEW$DF\2R1GHB#)&[@G)P.E5? WC;7/&=S=6]SJFD6$[),C
MZ:L$BWEFPR%;YCA\<$\?ETH ]%M=<TJ]:);74K6=IHVEC$4JL716VLPP>0#P
M3ZU8L[RVU"SAO+.=)[:90\<L;95E/0@UB:%X-T[0+V.XMB[>19)8VRM_RRC!
M+-]6=CN8^PJA\/&,-KK^F+_J=.UJY@@7^[&VV4#\/,(_"@#L:*** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@#'TK01I>N:YJ0N#(=4FCE,>S'E[(U3
M&<\YVY[=:R)? J2^!]4\-?V@P6_GGF-QY7*>9*9,;<\XSCK77UE-XDTE?$ T
M+[2S:CM#-$D3L$!!(W,!M4D D D9H S;_P ,7X\0W&M:%K":?<7D217<<UI]
MHCEV9V,!N4JP!(ZX(QQ6_90W$%E%%=71NIU7#S; F\^NT<"LFP\:>'M2&;;4
MD*-.MM')(C1I+(Q8*L;, 'R5;[I/2MZ@#B;CP-J"-JMKI?B-['2M5FDFN+;[
M(LDB-)_K/*D+#9NYZJV">*FO/!$J:GIE_H6KMI<FFZ?]@@C-N)D:/*\."02,
M*. 0<X.>,'L** /,=9\/2:5I^FZ-"U[J>JZEKL&I7=VMJP0E949V8@%8U"J
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
MJT>J27#0 '<K1L5V@XP3'^&>^.=3Q'X;GUB]TS4M/U'^S]3TYI/)G,(F1D<
M.C)D9!P.XP170T4 <[X:\,3:#?:M?7.JR:A<ZG)'++))$$PRIMP .,>@[ #K
MUJ/5_"][/XA77=%U<:;?M;"UG\RV$\<T88LN5W*0P)."#WKIJ* .//@*+_A&
M6THZC*]Q-J*:E=7CQ@M-,)5D8[00 #M"@#H,=:["BB@#SRY^&E[+H=QX>A\3
M2PZ$\K2PVJVBEX\OOV&3=\R!N0, ].<<5MZEX.74;CQ-,;XQ_P!N:>EB1Y6?
M)VK(N[K\W^LZ<=*ZBJ6K:O8:'ITE_J5P(+9" 6*EB23@   DDD@  9H R]7\
M*KJFB:;9QWLEK=Z9)%-:7:(&*2(NW)4\$$$@C/>HI_#-_K&A:GI7B/6$OH;V
M(1C[-:"W$.,G</F8ELX/)Q\HXK>L;V#4;**\MBYAE&Y2\;(WXJP!'T(JE/XG
MT"VU,:9/K>G17Q( MGN4$F3T&TG.: ,ZT\.ZQ)97EGKOB)M1M[BT>U"1V:P8
M##!=CEBSX^@Y/%4!X&OW\/Z98S^(-U_I,R2:=?1V83R@J; KIN(<%<YY&<]L
M5VM% '(P^#+B8ZO=:OJ_VW4]1L6L!.EL(HX(2&X2/<>[9.6.<#I6I_8^H6OA
MNPTS2]56UN+.**(7$EL)5D"+MPR9'!Z\,"/6MJB@#"\+>'/^$<M+U9+H7-S?
M7;W=Q(D(B3>P ^5 3M&%'<G.3FJ-I97.F_$W4;A8)&LM7L(G:94)5)H25VD]
MLHZD9Z[3Z5U=%  1D8KRFP^#NHV>B/H!\;WPT.1F,MI!:1Q,X8_,-^2<'\O:
MO5))$BC:21U1%!9F8X  [DUFZ9XDT/6II(=+UBPO98^72WN$D91ZD ]* ,3_
M (5_8P^(?#&I6,YMK;0()8(;41[A('3;DMG@C.>AS2^'? 5KHOA75?#]S=->
MVVI33R2ML\LA91@J.3T'>NNHH X?PUX+\0^'FL;/_A,Y;C1K+Y8[-M/C5V0=
M$:7).![ =*KZ3\.-0T#6I7TCQ7=6FAS7OVV32UMD.6R"5$I.0IP 0!TX]Z]
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
MET:ZN?(#1N$$H,@4]/NJV,]1CI6I>2^)D\5Z5X9@\0X$NFS7%S>O:1F1BLJ
M%5QM#88#H1C)QG%;47@K2K>PT:S@-PD6E7GVV([]S2RD."9"02V3(Q/3FLOQ
M!X9O=9^(6FWT5Q>V,%OILR"]M'52DID3"D,"&!7=P01^(% &.OB[Q!#83:*U
MW#)JXU]=&CU%H !L9/-\TH,*7"Y&.F<5?EU;7O#NNWNCWFK'4TET>>_M;F6W
MCCDADC(!4A %93N!'';'-:H^'^D_\(^VE-/>M(UW]O-^91]I^TYSYN[& W;I
MC'&*ELO!=M!+?7-[J5_J5]>6ILVNKIDW1PG.50*JJHSSTY(&: ,32M0UR/P%
M'XAUSQ7#;-?6MO*C"Q5DMM^#A5'+NP(&#D;CP,<5CG6M6U.Q\7Z(VL7TL4&E
M"[@NKS31;3@$2!T*,B@J0G#;1C)YR*[F[\(6%WX3LO#S3W*0V*0"VN(W EC:
M'&QP<8S\H[8]JBL/!=K:WNH7MWJ-_J-SJ%H+2Y>Z=,,@+= BJ%^\1@8'XY)
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
MTN6XD']D+9J0(5)7_6?>W9&?_P!=<A9?$GQEJEFGB#3WU*Y+WF%TB#1F>W,
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
MMPI<#:8AA&0@9!S@YYY% &2MUK_ASQ;H6GZAK9U>TU<S0MYMM'$T,B1EPR[
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
MEU/PWI=_/CSKFSBF? P-S("?U- %8^*--1M:,KO';Z-@75PX'EABF\JISDD
MKGC^(#FH#XUT>*VO;FZ>:UAL+>&>\>6/_4>8,JC!<G?C!(&<9'K6#X)TRR\0
M>#-6@U2 3QW^KWCW498KEA.<#((/ 1?RIGQ0TJRT[X8>+)K2 1R7NV>X;<3O
M?<BYY/'"CIQ0!MZ!\1/"GB?4O[/T;5ENKK89/+$,B_*,9.64#N*Z>O.O"Q\6
MVW@9I]4?1DLDT8-9M8+*)U(B!4N6XZ>G>O.H[SQ=%X/\'>)4\9ZH;S5K]=/:
M*0AX8T8N@;8>'8;<Y;KGMB@#Z*HKQ:*^USPYJOQ T$^(-1U"*RT4WMK<7<NZ
M6*0QYRK=N3V]!6;!J7B'2-.\!^)SXLU#4)]8NX;6YL99 86C;@@(/XAC!8Y)
M)SQ0![%H'B?3_$CZFMB)@=.O'LI_,3;^\3KCGD>];-?/2>(-1\.^%?&LNES_
M &:YN_%TMI]IQGR%<\MS[#'XUTTEKK/AWXB6'A2V\5:O?6NMZ;<;WO;CS);6
M148K*C8!7D# ^O7C !Z_17A6@>,==\12>$?"9U"ZAUBUU"8:S(LA#F.W[,>I
M# X/J15&+6O&_BA=9U?2#XB?4;?47ALX[6>);&)$(_=R1LP+'!.21Z>] 'T'
M17B.O:WXEU_Q]JVC(/$$2Z;90F.WT2XCA*S/&K%Y"S#<H+8P,CC\Y=:E\?+X
M8\-WVM1ZPEK;0S?VS'H]PD5T&4D)(2.HV@$@<=<XH ]IKG--\;:7JM[86MM'
M=%[XW0B+1C;B!@CL3GA23P>_M5GPQ=V>L>$=/N+2]N;RUGM@%N+@XFD&,$L1
MCYN#DCO5FPT+2]+E26RLTA>.V2T0J3\L2DD*,G@9))]>^<"@#1HKG?&5];VF
MEV\4]WJ4#W5RD,,>F8\^=R"?+4G[HP"2<C '45Y]/KVMV'A?QQ;QW.JVTFFR
M6K69U"5)+F$2;"075F##KCDG!Q0!['6=K6LVN@Z>+V\\SR3-%#^[7)W2.$7\
M,L*Y)5U'PQXYTVU.LZCJ<&HV%U+/'=N&'FQ;"&0  )G<1M'%<C?VU_J?PVTG
MQ/>>(+^>XO[VSFGM6D!MR&N$PB)CY-O'(Y.#G.: /:I)$BC:21U1$!9F8X
MZDFFP3Q7,$<\$J2PRJ'CDC8,KJ1D$$=0167XLM?MGA+58?/FAS:NV^!]K# S
MC/H<8/L37 61O-'^''@VTL=6OHVUR6RMI+B20.ULCP[F$61A<[=HZXS0!ZO1
M7G-Q=ZAX2\37VFV^KW5Y:/H=QJ"_VC-YIMY8B &WGG8<\@]QQ6?X4_M34]<\
M/W,5]XH>);1I]7^WB2*$S%5V!0P"G+%N$RN,4 >K5#'=6\UQ-;QSQ//!M\V-
M7!:/(R-PZC(Y&:\AT74_%^O:/9^(;"UUZ74;BY$O-U;K8>5YN&C\HR;@ @(S
MMW;AG-=!X8T8)\4O%MQ_:6HMY$EJ_EM<923?"3AACD+GY?3 H [/0M:M?$.C
M6^JV0D%O/NV"1<-PQ4Y'U!K1KQ+0H-1T7X9Z)XCMM<U#S([Z-!9[P+<Q/=>6
MR%,<YW$[CSGIBMK4K_7=<\4^([6WB\0-'ILB6]H-*N8(4C8QA]\@>12Y);H0
M5P/7- 'J=%>:3_\ "1ZOXA\+Z1J6IWFE37&CRS:E'92*K-*K1 [6&0IR>H[9
M ZUU_B:SOY/!NH6VEW=Q'J"6I-O.K?O#(HRN3[D8/U- &Y5.\U2UL;NRMIV<
M2WDABA"QLP+!2QR0,+P#R<5YG#X]N[[Q9HNL1W7E^'3;V]M>QY^47%Q$\@)_
MW=L:_P# ZM:7JVLRP^"[RYO;D'6]3N+B2(N<"!XI7BCQ_="A#CUH ]"EU2SC
ML[VZ6=)H[(/YXB8,495W%3CHV,<'U%.TS4(=6TFSU*V#B"[@2>/>,-M90PR/
M7!KS+PUHPM-,\?7']HZC-Y-[>P>7-<;D?]PAWL,<OSUIFBPZCH&A_#_4H]<U
M"?\ M![6SGM97'D>5) 2H5 /E*[5PW4\YSF@#UB66.&)Y976.-%+,[' 4#J2
M>PKF;;XB^%+N[AMXM5&9W\N&5X)4BE;L%D90C$]L'FJ7Q89D^&^IX+"(M LY
M7KY1F0/^&W.?;-2?$B.P7X6:VDBQ"V6R/D!0-H< >5M_X%MQB@#6U7Q-:Z7J
M]II7V6]N[VY0RB*TBWF.,,%+ODC"Y8#U]JJMXXTM+G5%-O?FUTPLES>I;%X1
M(N-R#&6+#<.BXZ\URMOHL]S\5M/DN]2U**Y/A]9Y5CN"H#K+&I3&/ND\D=S6
M-:V]SH/@'Q_J=EJVI"YM[^]BC9[@D JZ_O/]\]VH ]G5@ZAAT(R,C%+7!!+W
MQ3XVUS3I=9U&PM=)AMEACL9O*+O*A<R,<'=V !XX/%9NIWNLZEXSU/1U7Q!<
MVVEVMNJ'2;F"W9I)%+&60NZ9Z8 &5X.10!Z?17F$[^*;V3P/I&J:C=Z7>WJ7
M:ZB;9T#N(U!4Y7*AB #D=-QQ4WB#[?H&L)<ZO?Z]_P (Y;VT$<-]97 )@=20
M[W*]7W?+\V&'7B@#TFLW4M<L=*NK.VN9");MGV 8^544L[L2>%4#D^X]:T@0
M1D'(K+U+P[I6KSF>_M!-(;66S+%V'[F3&]>".N!SU]* *=QXTT*Q\-6_B#4;
MP6.GW #0M<*0S@_=(49)R/F  S@]!4GAOQAH'BZ":;0M12[6 @2@(R,A.<95
M@#S@]NQKSWQ=;6<7QJ\"Z=?1HNC0VD@M8Y>8_. 8*.>IXBQ[XK<^*FMR>&/"
MMS=Z,UO::I=SP6LMTJ+OB1BV&;Z88#/3)Q0!Z%17D+RZOX%^(NEZ1#XEU#5;
M/4M/N)9EU6?S?)>-&82 X^525Z>F>O&,#P;+XG\3ZGX9NH]3\78E=[C5YIG,
M=H5!R@BXVD'I@=0>W8 ]]HKY_N[CQ+J.B^.]:3Q=JUL-"U:X6TMX9<)@..&/
M4KC "]![YK?_ +5UCQOXRT70)=;OM(LV\/Q:G,VG2"&6XE?;D!L< 9Z>Q_
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
M[4O >AWNI%FO)K.-Y&8<N<<,?<C!_&IM2\(>'=9OQ?:CHME=70 !EEB!+ =
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
M)E<A794!.WJ<_*3QFMSQ3X136=/D33Q:P7$M[#>7"SQ%HKPQX 24 Y*X"_\
M?(JCHG@?R-9OM1U*TTB"*[L38OI^FP%(9$+99I,XW-V' P">N: .TCD2:))8
MG5XW4,KJ<A@>A![BJDVC:9<32S3:=:22RO&\CO"I+M']PDXY*]O3M5BVMX;.
MUBMK>)8H(4$<<:# 50,  >@%2T >0>']0LM&^//B]=;N(;:XNX(6LI;AP@>,
M*,JK'CLO'^R?2G^/M9L?$'BKPCH_]KJ/#5]<7"WDUK<[$FDC48C+J>F2!U_B
M]0*]%UOPMH/B01_VSI-K>F/[C31@LH] >H'M3)_"'AVYT6/1IM%L6TZ([H[?
MR0%0^HQT/)YZ\T >'ZCJ$_A[3_B/I'A_5[@:-9K:"TD\]I!#)(RAXT?)QG+K
MUXQ^-:OA;1(GO/$6NV5LVGV%OH\D=O:_VL+I_.*-OD^1V&,>O?D5Z!XE^'EG
MJ'@>X\.>'Q;Z/')*DI$<7R2E2#M<#!(.!SG/ K+\-_#6XL_%;:[JJ:);+]C:
MS^PZ-:&&&56^\TF3R<<8QZ>E 'G-EITFE>$?A_XNAU/47U:[U6&UE:2Y9D,)
M9QY87H%P@'ODYJQJ,.K>+/%?C-'@26_LKMH+&XFUEK0V"+G8Z1@88' ).>?;
M.:]R/AG1#IUEIYTNU-G8RK-:P[!MB<9PRCL>3^=5=6\$>&-=OQ?:IH=E=76
M#+)$-S =,GO^- 'COQ"U/7/#UQH>H:9J#S^(9]!==52W8R1^4$ ^T<< [MQ#
M?[(_'UGPCHVA-X,TP6L<5_;2V4:FXG0.TZY+_-G/\3,<=B36K'X=T:*[FNH]
M,M5GFMQ:R.(QEH0,"/\ W< <=.*L:9I=CHUA'8:;:QVMI'G9#$,*N3DX'U)-
M %NO,;O0[?Q#XR\;)J$]XT5I!;&WBCN7C2-VA)W@*1\PP,9Z<^M>G5533K*.
MYN[A+:,37847#A>90HP-WK@'% 'E.FVKVFC> /$HO;Z75]2O+>&\N)KEV\Z.
M6)RR%<[<# QQQC/7)J!+#7?%!\27D-K$VJ0:E<06U_)J\D+6/EMB,"((5"@
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
MB._::Y>3[3B'S S G&0PXP!C..E<=JEC8ZC\(+KQ/J%]<?V[<W1$SM=L,O\
M:-OD;,[=H4#"XXQFO<)-.LY;BTN)+:-IK/=]G<KS%E=IV^F1Q65+X)\,3WUQ
M>RZ%8/<W&3+(81EB>I^I[GJ: -ZBBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHK/UV[BL/#VI7D\#W$,%K++)"GWI%522H]R!B@"U%=VTS2+%<12-']\
M*X)7Z^E<7'X_F:V\1:LUM9?V/I!N(DQ='[1-)%_L[=H5CD YSTKD]#>RE\>^
M$FM+3P[:QWEG<^;:Z2=Q\IH@P68@ -R.,CJ#3!X>T1/A?X]G71[!98;S4EBD
M%LFY CML .. O;T[4 >BZ+K>M7::8;[3;(K>^8SS6=X'6!0BLH(8 LQ)*G;D
M#&>]1Z'XIO-9T?3;]-+5OM5]-;2A;A5$*(\B[_FY;[@X'//M6&=/L]-\5_#Z
M"QM(+6$PWCF.",(NXP)DX'<U@Z-_R+O@7_L9[K_T*ZH ]<-U;BY%L9XA.1D1
M;QN(^G6J,/B#39]?N=%2<?;;:..1U. ,.6  /<_*<CZ5X]XFU'3[VVNM1LK#
M0=/N8M=2-&+9U%Y4N%#/T!7(W'!S\M=?:Z?X?MOC/JK7=GIL5U+96L]J98D5
MVE+RAG0D9+$[<D<]* /03<VXN1;F>+SR-PBWC=CUQUH>Y@CG2!YXUF<92,N
MS?0=Z\,T?3I-6T)VO-3\-:?K0U)Y)[NZ!%_#<+.<#<6'8!0.FT@5TFMMIVA^
M-;C6&_L76EN]0M8I+:4J;ZSF&Q%\KKD X?;\I')S0!ZH2 ,DX%0Q7EK/$TL-
MS#)&F=SHX(7'J17(?$]]GAFT$[,NF/J5LFIL"0!:EQOW$=%Z ^Q-9-O9>'I?
MB79VOARWTY[";2IUU>&S1#;NA*"(.J_*6)W]><9[4 =)X/\ $M[XI@GU!K:S
MATUG=;81W!>;"NR9D7: N=I(P31J?BZ2'7)=%T;1KG6+^WC66Z6*5(H[<-]T
M,[D#<1R%';FLOX1Z;8V?@.TN+6RMX)[B283211*K2;9Y NX@9.!P,]*K:%JU
MAX;\>>++'6[N"QFOKF.]M9;F01K/$8U7"L>#M*D$4 =II^JBZTE+Z]M9M,.2
M)(;PJK1D$CD@D$''!!P015U)8WB$J2(T9&0X8$$>N:\WUK5- UWQSX?EU*YM
M+KPV]K=?9GF(-M)=JZKSN^5B%W[<^^*YK4WM+;P[XP72?*_X1K^V;);=5;%J
M3F/[0NX<+$6X) (Y/% 'M$5_9S!C%=P2!5+$I(#@#J>O2GI<P23-"DT;2H 6
M16!8 ]"17CEI;Z/>:#X^UVPCT*W>?1WA2TTV:.5H56)]S,5 V[SMX''R#/-:
MT6AZ;H>J?#R[TVSBM[JY=X[B=!\\ZM;,S>8W5_F /.>: /33<VZW"V[3QB=A
MD1EQN(]<=:=YT6'/F)B/[YW#Y>_/I7A5GISZOI&J?;M3\-:?K/\ :4S37=Z"
M+ZWE68["&+# VA=H'&#CUK3\<^7'XPOFM#/_ &&4ME\5^3]W;O&SWSM^_C^
MB@#UV[O;:QL)KZYF2.UAC,LDI/"H!DG\JYK3/&.HZF]I<)X3U1-*NW58KQGB
M+;6.%=HMVY4YSGL.2*=\0=.GU7X:ZS9:6@>22S)A2+^,##;5QZ@8'UJ32?'7
MA>_T[3GM]8LE>Z\N**U$H\T.V $*#Y@0>#QQ]* .A:ZMTN%MWGB69QE8RX#-
M]!UI9;F" $S3QQX )WN!@$X'7WKQ5E\-3?#[Q+<:W]C/BP7%WO:0C[6ER'80
M"/\ C QY>T+QC\:Z)-#MM=^)5C'XCLX[R6'PS!)+#.NY/.\UPS%3P2,MC/3-
M 'H\EW;0_P"LN(D^;9\S@?-Z?7VIT]Q#;1&2XFCBC'&Z1@H_,UY#(G@V3Q'\
M0!XE-@UPDV8UNR,K&;>/)B#=&R!ROS<+[4W0OL]QK'AF'QQY#0CPW&]HFI8\
MMI]^)"0_!DV>7UYQF@#V'S8]BOYB;'QM;<,'/3%1-?V:V_VAKN 0YV^89!MS
MZ9Z5XQ+:V]UX.O+.U+?V#+XN@BL/*<A?),L8;RB.B;R^"/?%=1XD@T#2M8TG
M0+;0/#T(-O/<QRZFJI;1*"@8*N,,YX)Z< G- '::OK^G:)#:37LP5+NXCMHB
MN#EG( /TY&3VJ0:A,^LQ6D=H'LY+9IOMBSK@,& ";/O'(.=W3M7C,-MIMU\+
M]"N+^"QGM+3Q*(Q*Z!HHK<W9# %ND9&!@\8QFNOO!%#X[@'AY+<*GA>Z^Q+:
MA?+W"6/:%"\8SZ4 >@K=6[7#6ZSQ&=1EHPXW >XZTDEW;0_ZVXB3Y@GS.!\Q
MZ#ZUXJL?AL_#[PW<:(;-O%KW%H4DC(-VUR77S_,/WR,>9NW<8_"M_P#X1S2-
M:\4?$.;4["&[>,Q)$9EW"/-JA)4'[K<#YASP.: /4:*Y/P5K=M_PB'A.UO;U
M?[0O]-C:))&^>;9&I<CUP#DUUE !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4=:** *EMI6
MG6;!K6PM8"&+@Q0JOS$8)X'4BI?LEMY,L/V>+RI2QD38-KENN1WSWJ:B@",V
M\)DCD,,9>($1L5&4SP<'M3%LK55C5;:$+$YDC C&$8YRP]#R>?<U/10!4;2M
M.>YDN6L+4SR !Y3"NYL$$9.,GH/RJ26QM)[F*YFM89)X?]5*\8+)]">1^%3T
M4 5'TK3I;T7LEA:O=KC$[0J7&/\ :QFE.FV!OA?&RMC> 8%P8E\S'^]C-6J*
M &NBR(R.H9&&&5AD$>AJ&ST^RTZ-H[*TM[9&.2L$80$^N *L44 ,AABMXA%#
M$D48SA$4*!DY/ ]ZAO-/LM014O;.WN44Y59H@X!]1D59HH KSV%G=6HM;BT@
MFMQC$,D89!CIP1BLGQ!X9BUG2+6QMIQ8&TN8[FW,<2LBNARH*< K[<=JWJ*
M.9TWPI-'KL^M:SJ$6HWDMH;(+':B&(1%MQ!7+%B2!U/X5T)MX&,1,,9,)S%E
M1\G&./3CCBI:* *DNE:=/>+>36%K)=+C;,\*EQCT8C-2_9+;9,GV>+9.295V
M#$A(P=WKD<<U-10 U$2.-8XU5$4 *JC  '8"J\>F6$5XUY'8VR73_>G6)0Y^
MK8S5JB@"J^F6$EZMZ]C;-=K]V=HE,@^C8S4_DQ>?Y_E)YQ79YFT;MN<XSZ9[
M4^B@#G['PG96VJ:M?7207AOKQ;M%F@4^0PC1."<\_)G/'6MB\L+/4(A%>VD%
MS&#D)-&'&?7!JQ10!";6W,,<)MXC%&5*(4&U2.F!VQVIMW86=^J+>6D%RJ-N
M431API]1D<&K%% $#65H]M);/:PM!(27B,8*L2<G(Z')YHBL[6 QF&VAC,:>
M6A1 -J?W1CH.!Q4]% %6/3+"&\>\BL;9+I_OSK$H=OJV,FIEMX5:5EAC#2_Z
MPA1E^,<^O'%244 0+9VJ& I;0J8%*PD(!Y8(P0OH, =*GHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBD=UC1G<A549)/84 +17.>'_ !G8>)-6U"PLK>\3[''%+YT\
M)C697W;60'YL?*>2!GM6OJFH'3-/DNUL[J\92 L%K'OD<D@  $@=^22 !R:
M+E%<[H'BV/6M4O=)N=-O-,U.T1)9+:ZV$M&V<.K(Q!&1CKUJOXN\=6GA&^TN
MQDTS4=0N]2,@@AL8U=B4QG@L/[W;T- '545S?A3QMIGBZ*\%I'=6EU8R"*ZM
M+R/RY86.<;ADCG![]JZ/(SC(R>U "T4WS(\XWKG&[&>WK0)$+E ZEP,E<\XH
M =13&EC618VD4.W12>32O)''MWNJ[C@;CC)H =137DCB ,CJ@)P"QQS3J "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH *"<#)Z44A 92K $$8(/>@#A=$O[.3XL^)"EW WF6-DJ;9 =
MQ!ER!ZUT>H>*=$TS2M0U*?48#;:>YBN3&X<I(,?N\#^/D#'7D4MMX4\.6=S'
M<6N@:5!/&=R2Q6<:LI]00,@U8ET329[>XMYM+LI(+B7SIXWMU*RR<?,P(P6X
M')YXH YCP5%]OU?4?$M_/;C5-1C1([*.97:TMD^ZC8/WB6RW;)QVKF_BFNHO
M\1O *Z1);1WYDNO):Y4M&#M3[P'/3->D6'A[1-*N#/IVCZ?9S%=ADM[9(V*]
M<94 XX'Y5:GT^RN;JWNI[2"6XMB3!+)&&>(GKM)&1GVH \4\;^";WP]\+_&&
MJZE?+?ZQJUQ;373PQ[(T595PJCK@;CS]/2KL^OZ5KOQC\+OI6H07B1:/<"1H
M7W!28V."1W]1U'>O8IX(;F"2"XB26&12KQR*&5@>H(/451L_#NB:<839:/86
MQAW>48;9$*;N&Q@<9P,^M 'A/A3PSIL7P#U;Q*4E?59]/NK<RO*Q"1!\;%7.
M ,J#TSDFH-)30+?5?AM>^&;XS^(+N>-=5*7+22%,+YHD!/R@?, ,#@=\9KW'
M6_"]KJ/@W4/#NGI;Z=!<P/$@AA 2,MU.T8'7FD\.>$=+\/6-B([&R;4;>TCM
MI+Y+94DEVH%)+=><=,T >#RIX=U'P?XRU?Q+=H/&,-_,(/-N"L\3*1Y:QIG[
MN<C@=,^E:7BN%H8]+\2Z^=*UIX=%MHK_ $>_NS%<0LP!,D8!^\<\\9SGKV]Q
MN/#>A76I+J-QHVGS7RD$7,ELC2 CH=Q&:=>^'=$U*]CO+_1["ZNH\!)I[9'=
M<=,$C- 'B'B*3_A(OB7/!?P:2;'^R()-/M]=NY+=$1T4LR%0<R D@]^/:O5O
MAM:7=AX!TRTO-4M=3DB#HMU:S&6-U#L% 8@9P./PK;U/0='UH1_VKI5E?>7]
MS[3;K)M^FX'%6[:VM[.W2WM8(X((QA(HD"JH] !P* ):*** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M39YY+?3-0\57L%ZZ2&/>OF3,L988(#, #SSTH ];U6^&EZ1>Z@T9D6U@DG*
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
MYD +*V?E/TQB@#V"BN$\/:?;^'_B7J>D::)(M/ETJ"[-N96=1+YDB%AN)P2
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
M+N7_ (2"YNRLTC73!FD^T8,!3.-H4<+CC:#0![W1110 4444 %%%% !1110
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
MO?$MP\3%K*.RM55<,B!B[ECW)8C'L*Z"B@ K(MO"V@6D-]#;Z-8QQ7YS=1K
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
MB@#-3P_H\5J;6/3+1+<S+<&)8E"^8NW:V.F1M7!]A4FJZ+IFNVGV35;"WO8
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
M($&%(Z8':I: "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ I'941G8X51DGT%+02 "2< =30!S?A[QE:>(]8U'3[6SO(19QQ2
MB6YB\OSDDW895/S ?*>H&:V-4O9-/T^2YAL;F]D4@);VP!=R2!_$0 .<DDX
MS7&Z'JNG2_%GQ&8[^U<365DD6V93O8&7(7GD\CI72WNN:3+I]ZJZ[!9^5,;.
M2Y61 8)\?=^<%=W(X(H K:#XJ.KZM?:1>Z7<Z9J=FB2O!,Z.&C?.UE9"01D$
M'TJKXI\<P^'=5L='MM,O-5U>]1I(K2U !"+U9B3@#@_D:PO![?8OB;K-@FIK
MKHGL([F;4F*F6%@Y58&*?(!@E@ %[Y!ZU%\2K#PO?ZU:277BH>'/$EE;^;:W
M7F;,QL6&#G 89#< YY/8T =WHVL?VIHD>I7-E<Z83N$D%ZH1XRK%3GMCC(/<
M$&KXN(3!YXEC,.-WF!AMQZYKYVN?$M_XH\/>!YO&4G_$DEU6>*]N,&..Y"!?
M*9\8P,EQV^Z36QXN'A.*/PK8Z5/$/!4NLRC4C#,QM_-"H54MG&WDG@XZ^E '
MN$=S!+!Y\<\;P_\ /17!7\Z%N('F,*S1M*%W% P+ >N/2OGVX33;>Z^),'A5
MXV\-C1E9A;/O@%Q@?<.2.F_I_2JND+X=35/AK<>%KCS?$$T\?]J&.5GD*87S
M?,!/&/GQ[>U 'T8US DZP-/&)F&5C+C<1[#K4M?+\=B^N0^(VU/5/#6G:VNJ
MNS7FIW4D5[ 48%?+[;.,#'OZ"OINV61;6%9G#RA%#N.C-CDT 2T444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4A 8$$ @\$&EHH S8/#NB6TZ3V^CZ?%*ARDD=JBLI]00.*L-IM
M@\,\+65LT5PQ>9#$I65CU+#')X')]*M44 5;'3;#2X3#I]E;6D1.2EO$L:D^
MN !3-0T;2]6V?VEIMG>>7]S[3 LFWZ;@<5=HH K3Z=8W5E]BN+*WFM, >1)$
MK1X'0;2,5'_8^F?V=_9W]G6GV'&/LWD+Y7_?.,?I5VB@#!UGPK97_A#4?#UA
M';Z;#>0M$#! H5"PZ[1@&G^'O"^G>']/L8H[6U>]MK2.V>]6W5))0BA<D]><
M=,FMNB@#.N= T:\O1>W6D6$]T,8GEMD9QCI\Q&:T:** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M9XX-;] !17.IXL$AUP1:7>7#Z5>):M%; /)*65&W*"1P-_//12:Z*@ HHHH
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
M[,S&X2$!]S?>(/8GN>] &9XYN;(6FFZ?=6$U_+?W@AM[5+DP)(X5C^\<'[@
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
MEY(LUPK1@B5UV[6;U(VK^0JOJGA;0-<NXKK5-'LKR>(822>%6(&<XYZCV/%
M'GFNZG=>&M0U_0;*XDDD\11PRZ.Y<MB64B"7#>WRR?B37;Z_Y_ASX=:B-*+F
M?3],<6['YF!2,X;W/&:=J7ALZEXPT35Y6A%KI,4QBBV?.99 %SGLH4'CU(]*
MZ @,"" 0>"#0!YPFGZ7X>\#3Z[H-Q))K$FBRS1RF[>1KIO+#&1E+$.0<'..,
MX[UG2Z;IVBZ;X-UG0[N9]5O[ZUCDG^U/(U]'(/WV\$D,,9;./EQVKT+2_"N@
M:+=2W6F:-8VD\H(>2&%5)!Y(XZ#V'%-T_P )>'=)U!K_ $_1+"UNVS^]B@56
M&>N/3/M0!YU<:%;:M8?$/4KR:[>YL+VY-D5N746S);HX9 " &SCGT %3P:3I
M^L_$#PQ?:E%YD]YX?-S*YE9=\JF'!X(Z G@<5Z6NE6"PWL2V<(CO69KI0@Q,
M64*Q;UR !^%5[WPUHFHQV4=[I5I.ECC[*)(@?)QC 7T' X]A0!YIKL]P?#7C
MT)=3Q.OB&U1)$<AHP6M?NGMU-;MKI-OX;^)5O8Z4;B.WOM'GDN(WG>022I)&
M%D.XGYL,1GOFNSDT32YHKJ*2PMVCNIEGG4Q@B61=N&;U(VKS["IVL;5[^.^:
MWC-W'&T23%?F5&()4'T) _*@#R>VU1?^%3>! ;[_ $F;4K&/!E^=RLPWCKDX
MP<T3Z?JOBG7_ !:K65K<75I=FVM9I]6EMGL4$:F-XT6-@,DEMV?F.1T%>BQ>
M#O#4-[)>1:%IZ7,DBRO*L"ABX8,&SC@[@#]1FG:IX2\/:U=K=ZGHUE=W"KM\
MR6$,Q'H3W'L: .#\2:?>6:6_B#7HH==LK+2X4OHH+UHI+65<L\\0& V[/JK?
M*,>E=WXCM[;5_!^H1RH9()K1I N2I.%W+TP>H%+>^$?#NHW<-W>:)83SPJJ(
M[P*2%7[HZ<@=AVK9(!&",CTH \=M[2ST_P"'/@BUMI)+2QUF>SCU.6.=@7!A
M)V[L_(&90IQCT[UTFBV=OH/Q1FT?1F=--DTG[3<VHE9TAF$H5& ).TLI;COM
MS72P>$O#MKIUUIT&BV"65TVZ>W$"[)#ZD8Q]/2K&D:!I&@0/#I.G6UDDAW.(
M8PN\^I/?\: .7\8&QU/Q'::(VC'5;T6;W7ESW[6UO'%N"ECC.6ST^4D>HKC+
M>\:]\ >!DU#4YH8)-=EM9)TNR"8@;A%3S>"1@!<\''H:]9U;P[HVNM"VJZ7:
MWC0Y\LSQ!BN>HY['N.AK)UOP79:E%HMI;VUG#I]CJ!NYK4Q#9(K)(&7;C')D
MSS[T <3JT,6A2>/])T661--B\/BY:(2LRV]RRR#Y222I90&(_&K,5I8:5J?@
M;4M%O9I[_5)_+NI#=-*;N$PLTC."2#M(4C  '3BNRO\ P=IR^#M7T'1+.TTX
M7]M+%F./:N]E*AFQR>M6-%\):)HDBW=II5E#?F()+<Q0A6?@9Y]R,GU[T >=
M6C2Z9X6@\30NX&D>([Q[E5)PUM)</'+D=\ AO^ UV7@5Y-4.L^)'D9H]4O&%
MJ">!;1?NXR!VW$,WONK2UOP^+KPEJFC:0EK9O?1RIEH_D#29WL0.I.YC]:TM
M+TZ#2-)M--M5VP6L*0QC_94 #^5 '":-H&E+\7O$UP;?_2(8;2XA)E?[[^;O
M.,X.3CV%<N8+:?X2R^,Y+RX'BK<THNQ</YB7(E($(7.,=$V8QCM7KMQH.DW>
MKV^K7&G6TNH6XVPW+1@R(.> ?Q/YU6_X1'P[_;']K_V)8?VAO\S[1Y"[M_\
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
MA-PZ_+^Y./K4CZ&LNB>"O[8MUDGUC7CJ%[$XR"\L4KA2.X"[5QT^7% 'I_\
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
M:1V5T]A=6-U>16SW$=N;M$WA>Y;G:N>"V,"I9-:L+*VMI-3O;*RDG0$)+<J
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
MTDK]%'J:9)JMA%J-MI[W<2WETC200EOFD5<;B/ID4 7*CCMX80!%#&@&<!5
MQGK7)^)O&5OICZ5+::A;+:_VS]@U"20C;&!$[.I)Z$$+S5YO%FFZCX<U34=#
MU2PD:RB<M)/N\N%@N09 /F"]^.W2@#H/*CV!-B[1R%QP*RGT"*7Q;%K\L[O)
M!9M:P0$#;'N;<[C_ &CA1]!4=]XJTC1+*RDUC4[6"2YC#*%)/F< DJO)V\]>
MW&:Q;[QU9:?XPMX;G4[5-$GTC[9%+D'S)#*%7:1RV5)X'UH [4@$$$9!Z@TW
MRTPHV+A?NC'3Z5F_\))HO]A+KG]IVW]ELNX77F#8><8SZYXQUSQ4%OXO\/W5
MF;N'58&@6=+=F)(*2,0%5@1E2<C&<4 ;6U=Q;:-Q&,XYQ3([>&+_ %<,:<EO
ME4#D]34,NI64.H1V$ES&MW)$TR1$\E%(#-]!D?G6?IGB[P_K-\;+3M5MKBXV
MEE1&^^!U*GHP'J,T :XBC65I1&@D889P.2/K21V\,+N\4,:,YRQ50"WU]:RK
M/Q9H.H:H-,M-4MYKTASY*-EAL8JV?3!4]?2GR:C-'XICL#<V*VQL7N&A;=]H
MR' W#^'8 <'ODB@#4\M!&8]B[#QMQQ^5-:")V1GB1FCY0E02OT]*S=)\3Z)K
ML\D.EZC#=21KN(3/*YQN!(^89[C(I^K^(=)T%8CJE]%;F8D1HV2SXZX49)QW
M..* -$1H-N$4;>%P.GTI656 #*" <\CO63<>*="M=(M]5EU2V%C<$""97W"4
MG/"XY8\'@<\&B'Q3H=QHS:O%J=NVGK((FGW8".6"A6[@Y(&#ZT :Q56(+*#@
MY&1T-,>"&21)'B1G3[K,H)7Z'M7(W/C.WOM5\.+H5]!=65[J,MI<N@W [8'?
M /U"G(ZBM.R\0Q1:9J5_J^HZ:EO:7DL)F@9E2-5;:%?=_P M.QQQGI0!O%5+
M!BHW 8!QR*%55SM4#)R<#J:R+7Q7H5[IMYJ-OJ<+VMD"UR_(,( S\RD9''/(
MJ;2O$&DZX]RNEW\-V;5PDQB.0I.>,]#T/3TH T2JE@Q4%EZ''(I2 001D'J*
M** (XX(8E58XD0*" %4# H6WA202+#&'"[0P49 ],^E244 -,49# HI#'+<=
M3[TDD,4K(TD2.R'*EE!*GU'I3Z* "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ JKJ2EM*O%4$L8'  ZGY35JB@#RK0M,F:/X5BXLI"+6TF,HDB/[IO(&
MW=D?*<],]Z9XAL+HZ1\4XX;28BX:)H52,_O";>/<5'?GKBO6** ."U^7^QO'
MFA:]J%O<2:5'ITUKYL4#2_99F9"&8*"0&52N<?6N9UC3Y]6\,^-]2M]/N5T_
M5K^R-K!) R/,J-$LDGED9 8@GD9(&:]CHH XWQ?IXGUWP9&EH)+>#4RS*L>4
MC"P2;2>P .,>^*I6NEC_ (2KXAS-8_\ 'S!;HCF+_6C[.0P!QSSU]Z[^B@#R
MJTU;5=(\/>#+&62XTNS?1D\Z^33VN91*JH!#C:=F1D\@YVX%9]G!=V?P^T:Z
MN;6]V67BDW=P'MB)4A\^3+F-1D?>!( KV6B@#SK5H+K6_%U]/I:S!;WPG+%;
M3O&T8$CR':#N VGD'!P:R&NX=;\)^%_#.FZ9>PZO9W-DTL<EG)&+'R64R.SE
M0O0,!@_-N]Z]<HH \\L],+2_$AY+(E[J5D1FBYE3[*@ ''S#)/XDUT_@Y)8_
M F@),KI*NF6X=7&&#")<@@]ZW*.M 'A.B7D&K?"/0?"^G:;>+K$L]NZ8M'5$
MVS!VN/,QMV[0><YR<5U-KJ=MX9N_%]AK6G7LUUJ-]+<6XBLY)A>PO&H1%95(
MR,%<$C%=[H>C6OA[1+32;+S/LUJGEQ^8V6Q[FM"@#R)[*3PQX;\.O-J%_I_B
M>QTGR8S'8O=0SJ<'[.P52"054<$$=>15KQ!J-S:&TUZ!KW3O%KZ5$KZ>NGR7
M%O=GEA!PO!#EAD,",\Y%>IT4 >3WAOM,\<ZS?:KJ6I:-#J=M:M"]M8+=1MMC
MVO$6,;X(;<<<9W9I][8Z9X=T709--U76+'4+*QD2QN)=->43QLP8Q2QA.#D+
MA?E8<5ZK10!Y7KNI74$5AKX>^TOQ<VDH&LDT^2X@NLDMY! 4X;?D<,"N[G(I
MNH-J.G^.;C5M4O\ 4=%BU#3+58Y;2R6Z177=YD+$QOM(9LCH#GOBO5J* /*?
ML-KX9/@C48UU&ZT*Q:]$DTUHWF1--RCM$%!5<[@/EX##UK;\#.+KQ9XPU&&P
MN+2TO)[:2'S[<PF4"+!?:0#R03SSSS7=T4 >=7FI6N@?%;5=3U*RN_LLFEVT
M4=Y%9O,J-OD)3*@D9X]N!GMG 2RN_#7@/2/%CV,T$FE:E<7GV-EVR)93R,&C
MV]CM96QVQ7LE9NN:):>(=,;3KXR&U>1'D1&QOVL&"G_9) R* ,SP'ID^G>$[
M:2\7&H7S/?WGKYLIWD'Z A?^ US-I>OI7C5;3P[/?7$%_J<CZEIMU8.JVY;<
M7G24J,#< 0"6#;N*]+HH \2U2\EM/AQXE\*G3=2DU<WURXBCM)&4Q-.9!)OQ
MMV[3ZYSQBNK?48?"_P 1/$-WK%M=F#4H+;[%/#:23APBLKQ#8IPVXYP>NZO0
MJ* .)T>T$GQ/U._-@\,;:-:)$TD.TH"TA9/8CY<@>@JQ\,K>6T\ V,$T+PLD
MMR!&ZE2H\^3'![8Q7744 >*1ZK9)X7\=Z&-+O)]2U'5-0BMUBLW=;EV<JN'
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
MC0,RMR2,XXKTVB@#R33K37/&?AOQ1K<]G/::I<Z4-*M(9E,;96/=+C/0-*Q
M/HHJSX:BL]4U+PZL^MZW+=Z;\\=C-I0@6V81%61W6%<#!(^]@G'6O4J* ..^
M&UC]B\.WA>U,$TVJ7DC[DVL_[YP&/K\H&#Z8J+5K;?\ $KSKBUGELO\ A'+F
M.7RXV;=F9"4&.K$9P!S7;44 >>^!+ZYCU<Z+87=UJ7AVVL08;F[LF@DMG#!5
M@+%5W_+D],C;S5?Q7'=Z=\2(=7FU+4--T^72Q:QWEI9K<!)!*69&!1]NX%2#
M@9VXSQ7I5% 'E_GR^&_#VE#2+N^_LZ^U&XEN]4N=-+26V[<V5A"#:&?@';@
M].16))8W=]X%\9QR0WUV+O7+:1#<6AB>="UOE_+"C@@'L..O>O:Z* .1\46K
MGQ-X+\B!C#!J$F[RT^6-?L\@&<=!T%<1?:7J?]A2W,<=[#%:>,;B\G,%OYDB
MP[G E5&4[P"RMT/'/:O9:* /)[RSMM1\-^,]3LM5U75[VXT<VS--8>0K *Y4
M*!&F]AD],D9'M7=QWMKX;\,:6#9S^4%@MEAM8"Q0MA1E1T [^E;M% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4CL$1F() &< 9/Y4M(S!
M%+,0% R2>U '+^'/%MQKOB'5=,GT:?3ELX89HS<./,D63?@L@^Y]SIDGGG'2
MNG=TBC:21@J*"S,QP !W->:^'O%F@7?Q7UQ[?5K:1;VTLX;8J_$KJ9,JOJ1D
M?G6SXFFN?%^A7VF>')()V@OQ9ZE'<.\ 9%YDC#[#URJY (P3S0!+X/\ &Q\6
MZEJ\"Z<UK;V8ADMI7DRUQ%)OVOMP-N0F0,GAA4'C'QOJ'A[Q%HNAZ5H::I>Z
MHLK1J]V( -@!(R5(Z9].E9G@Y];'Q,\2I>:786L?V:R686]TSB(!)-@3,:[L
M\YZ8P.M9GQ)TQ]7^*W@BR2]O+$RQW0^TV;[)8\)GY6P<=,?0F@#K/!OCD>)S
MJ]K?Z:^DZCI$HCO())ED5,YP0XP"/E-;%GXJ\/:C'<R66N:=<):H9)VBN481
M*.K-@\#WZ5X8MGJ%IX ^(7A2*"67Q#:W*37%RNYIK^W+@[R222=N20.S>I.=
MCP-9Z%KGB_2+F'Q)IU[)!8202:;:Z(UN'A9,%)CN*G!/0]<4 =;X ^(%[XNN
M]7O;NXT2WTBU:010I,?M**I&)),G;L(SSQR*['3_ !+H6K0SRZ=K%A=QVXW3
M-#<*XC'JV#P.#R:\!MM%FD^ VMRZ;8#[0=687+0PCS'MT=3MXY*@X..F :V]
M$ATG4M4U/5=.\465]<QZ!<0O:6&CM:)Y>WC>=Q&02..O'M0![):>(M$OY)([
M35[&X>*$3R"*X5ML9Y#G!X7WI--\2:'K/G#3-8L+PP#,OD7"OL'J<'@>]>*P
M^&%7]FMKK1=-4:I=P!KJ6*/,TT8FRP)ZD *..F :L^$X=(U/Q+;ZE8>*+*ZN
MK;2IHC8V.C-:_N]F,2-N(RI(Z^E 'KL7BSP[/=VUK#KNFR7%R-T$272%I1VV
M@'FI=0\1Z'I-W%::CK%A:7$O^KBGN%1F^@)KY[AT/3[;X(>%=8@T^*/57UE"
M]VL?[T_O9% W=<85>.G%=&U]X:T3XD>-$\=V GFOGB.G^=9M/YT.T@+'@'!^
MZ.W(Z\4 >P:EXET/1KB*WU/6+"RFE&4CN+A49AZX)Z4NI^(M%T586U35K*R$
MW^J-Q.J;_ID\UX5X@CCM_B#XQM_$.L6>D1ZBJ"WEOM*:Z\Z#80!$P(V%>.G<
M>HJ;Q-#I?ANQ\/ZE:^(X)]7LM$2."VU/37:+4("6*A5(.Q^V,YQC.* /H".1
M)HDDC=7C<!E93D,#T(/I3JS?#MQ)=^&M+N)K$6$DMK$[6@7:(25'R =@.F*T
MJ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ P/2BBB@ HHHH *0*JYPH&>N!UI:* "D557.U0,]<"EHH *0*
MJYVJ!GK@4M% !@>E(5!() )'0^E+10 A56QN4''3(H*JQ!(!QR,CI2T4 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
MD35M-DN(K=-0M6GF4M'&)E+./4#.2.#0!<HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** .,\)_P#(\^.?^OVV_P#29*X*YT;34^$7BG5A90?VBNIW
M4JW6P&5&2Z.TJW48QV]3ZFO;@BJS,J@,QRQ Z_6D\F(QF/RTV,22NT8.>O%
M'G.LV]E=^,?&5KJ-Z;*SGT&VBEN<X\I6:8;L_C5WX?ZE')J.IZ2D>C7)LH8/
M^)II"!8IU.X*K@9 =<$X!(^;M7=&-"S,44EAM8XZCT--A@AMH_+@BCB3.=J*
M%'Y"@#C?BJDC^#HDBD\J1M2LPDFW=M/GI@X[X]*9?^%=2LM-U[6O[5N=4\12
M:5+:VDOE+$(A@L%C1>Y;!R23D"NW=$D&'4,,@X(SR*=0!XTLGA>YT3P5;^%_
ML1UR.]M&"VP7[1&H_P!>9<?,!MW;MW4U)K/_ "+OCK_L9[7_ -#M:]<2V@BE
M>6."-)'^^ZH 6^I[TXPQ$,#&A#'<PVCD^I]^!^5 'F+7'ABV\;^+QXR.GK+(
M8?LO]H!3OM?*'$0;K\^_(7G-4?$PGTG7M4\,:>'2'QB(6M&52!$Y(CNC_P!^
M@'KUN2W@F='EAC=XSE&902I]O2LNYT".\\56&N33LQL;>6*"WVC:KR$;I,^N
MT;?Q- &G;6\5I:PVT"!(846.-!T50, ?E7F%U=Z=H7CF2:TN='UDZGJ\23V4
MBJ;ZTF^5-R'DE%VAL$# S@UZI47V: 7!N/)C\XC'F;1NQZ9ZT >22:%I5YX7
M^)]_<V%O->+>7P2:1 SILA5EVD_=PQSQ5P76EKXUTFY\62VHLY/#T)L9=0*^
M3YQ;,V"_R[R-GOBO4?*CVNOEKM?)88X;/7/K39;:">(130QR1CHCH"/R- 'C
M*-#:>%AJ4 \KP[!XQBNK5]I$<=H'4%U](]Y8CMS6Q=ZOI^M>-?%%QIMU'=6\
M?A<Q&:([D9@\I(5APV,CD9YR.HKU%HT:,QLBE"-I4CC'IBFI;P1J%2&-5"[
M%4 ;?3Z4 >1V4NE0:GX(E\3-:II/_",*+5[W;Y N<1[LEOE#;.F?>N@^% L!
MIWB/^RXQ'IYUR<VZA2HV&.(K@'H,=/;%=W);031+%)#&\:XPC("!CIQ3U14S
MM4#<<G ZF@#@/BF=-#>%3K"JVG#6%-P'4LNT0R\L!_#Z]L9SQFN2U_RKH>.I
MO!OE-IATZT2X>P&8GE$A,NW9P2(3\VT_K7MC(CXWJK8.1D9QVI(88K>,1PQ)
M&@Z*B@#\A0!YMX7M;"Z\7:9?V7B+PS*T%G+&+31;7RFFB;;C?^];A2 1D#!)
MKMO%7_(H:U_UX3_^BVK1AM;>W9VA@BC+G+%$ W'WQUJ0@,I5@"#P0>] 'CVK
M:-:Z9\(?#LVGVEK;PS/82ZK.\!D$D1PS--@AG3>P)&>F>@J[;-8V#>(]>CU+
M0-:1='9+G2M%M_+CF522K2?O'&<%EZ=#[5ZH$4)L"@+C&W'&/2HX+:"V0I!!
M'$I.2(T"@G\* /(]!NX[CXC:#)8W'A]GDTNY#)HL)58P1&RI(VXAL'H,*1SQ
MS6 \GAAOA?I,#K:MXI2_A-PI4&[2?[2OG-)CY@.O+<<K[5[W%:V\  A@BCP2
M1L0#!/7I1]EM_,>3R(M[XWML&6QTR>] $M>,ZC;QW7AK7+>9=T4OC=$=<D94
MS1 C(KV:F>3%@CRTP6WD;1][U^M '$6.G66D_%]K?3K2&T@FT#=)%!&$5F6<
M!20.,@$C/I6A\2EO&^'.N"Q$IF-OR(OO&/</,Q_P#=74;%W[]HWXQNQSCTIU
M 'E7B6Y\*W7@;5E\&&PDO%T]/,_LM1Y@M/,3>K%>AV[N#SU]ZE,OAJ\\:>$#
MX,;3WFA:5KEM."X2T\HC$NWI\VS ;G->F0V\%N&$,,<08[FV*%R?4XI(;:"W
M+F&&.+><ML0+N/J<4 >*W&C:<OPB\2ZL+*'^T5U.YE2Z* R(R79VE6ZKCT'J
M?4UT^N0RW7C#QC!"A>67PLB(BC)9B9P /QKT7R8O+,?EIL8DE=HP<\]*Q=*\
M.M8>(=3UNYU"6\NKU4B0-&J+#"A8J@ Z\N<D\F@#@(_$>D:K#\-;*POX;FXA
MN86FCB.XPXMI%(?'W6SG@X)P?0U5N=#TNX\"?$C49K&"2]34-0*7#H"Z;#N7
M:3RN#SQWKV%+6WC)*01*2V\E4 RWK]?>G>5'L=/+3:^2PVC#9ZY]: /,7N]%
MB\?R3^,)+)8)=$M_[/DU';Y1Y;S@I?Y=Y)3/?&.U.G3PM:_$?P_=R0Z=!IES
MH;+9R7$:HCN)(O+ W ?,$Q@=<<5Z5+;03JJS0QR*IRH=0<'U&:62"*;9YL2/
ML.Y=R@[3ZCT- 'CFJX&G^(FN59M*7QG$VI@ E?LPCAW;@/X<[<^U;EL^C77Q
M(2?PJUF]K'H\RZE)8;3"267R5)3Y2_#^^/:O21&@# (H#G+<?>/O38;>"VC\
MN"&.),YVHH49^@H \9TS1].L?AIX!U*ULH8KYM3L&:Y5!YC%W"MENI!!QCIC
M [5[53/)B"*GEIL7!5=HP,=,4^@#P>_T^^NC>^";,R))X9GN]6ML9P5 62U7
M/?F9Q_P"KVHW:^(_ASXV\8*I$6I>5!:AATAA*KQ]9#)7M C02-($4.PP6QR1
M]::((A#Y(B01?W-HV_E0!Y_>QZ'9?&B*74H["%KG2(_L[W"HOFW G(&TGK)@
MKTYZ5SEQH>ES^!/B1J4MA!)?+J.H,MPZ NA0[DVGJN#SQ7L<D$4K(TD2.T9R
MA902I]1Z4OE1['3RTVODL-HPV>N?6@"'3W:73;61R6=H49B>Y(%>;I<^&+;Q
M?XQ_X3-M/6X>2,V_]H!?GL_*7:(MW4;M^0O.?>O40,# Z5%+;03LC301R,AR
MA= 2I]L]* /&H+2VL_#OPVN_$T$$<4=Q+%-+?HOR0M%*84D+=!C9P>]=/8Z/
MHVL?%/6Y;FQM+R&/2K(6^] Z!'\W[HZ<@#GT^M>@2PQ3QF.:-)$/574$'\#2
MB-%8LJ*&( ) Y('2@#PR!IU\(?#YIKFRATJ&YO(Y9=2B::VC=6=8/, 9>@#
M$G .*O:SI]LGP_\ %LUOK>EW\-[>6;21:1'Y4$#^9$K8P[X9AM)P>M>QF"$P
MF$Q(8CP4*C:?PI$MH(X1"D$:Q#H@0!?RH @TW2M/T>T%KIME;VD Y\N",("<
M 9..IP!S[5Q_B/2['5OBMX<AU"UCN88].NY!%*NY"P:(#(/!QG//?![5WE-*
M*7#E1O P&QR!0!Y!J4447C_Q+;:E?>&["%X+>.T76K0NK6PBP1"?-0!0^_('
M?\*T]/M'L?$'@:T@U%=1:+0[Q8;P#"RC$.UNIXQCO7I,UK;W.WSX(I=IROF(
M&P?;-/V(75]J[E& <<@4 >&>%[."_P!#T.VNO$/AVPU2&_CDDC>T*ZB+D2_,
MK,9LEF.03MP0>F*U-3@D@\0ZC\.T1A;:UJ46H1D#@6CYDN%!Z#YXF7'_ $TK
MUS[+;_:/M'D1>?C'F;!NQ]>M/,:&02%%+@8#8Y ^M 'C7C[5+"Z7QC9&W\/6
M,UM (C]L@WWEXQA!1HL%2 . I^;&W/%;EMIUGK/Q&T0ZG;1WGE^&5F43KO&_
MS%&X@\$X8]?6O1GMH))1*\$;2!2H=D!.#U&?2GB- P8(H8#:#CG'I]* /%;J
MSL(? 4XGMX/L.F>+V1?,0%+>W%X-PY^ZF.O;%>Q:;)82Z= ^EM;-8E?W)MBI
MC(S_  [>,?2IS#$8WC,2%'SN4J,-GKD=Z5$2)%2-51%& JC  H \^&J67A/X
MIZ[-KEQ'96FLVUJ]G=SMLB)B5E>,N> W(.#ZU6\3Z[H6LZYX5OY[J"Y\,17E
MQ'<3R#_1OM C'E%B?E(R6PW3/?BO29H8KB,QS1)(AZJZ@C\C0T,3P^2T2&+&
M-A4;<>F* /%]::R>P^(5SX?:,:'):6R-):#]PUQDB0KMX("%=Y7MGJ:T?#SZ
M7JNMZMJL?]A6ETFCM;16&GN68@;B93N1".H48!XZFO0M?\.VNO:!)I#.]K$S
M(Z- %'ELCAU(!!!&5'!&#5.Q\+7 UVWUC6-7EU*ZM89(;8>0D*1A\;SA>23M
M Y./:@#@+'1].T[P/\-]0L[*&&]DO[ O<(@$C^8A#@MU((.,=.GH*I7%O%=W
M?C.PUO6O#>FW%Q?S!FU6U+7(A('DO&YE7Y0N-N <$5[;Y4>Q$\M-J8VC:,+C
MICTILEK;S2I)+!$\B?<9D!*_0]J /'_'<$[:E&NDR7-U-::4B^))K8[6GLRR
M_+W_ 'I42,.X7=ZBO6M,ELIM*M)--,9L6A0VYB^[Y>!MQ[8Q5D1H&9@B@O\
M>('7ZT(BQH$10J@8"J, 4 >63W/A*W^*?BMO%#6"G[+:^0;\ IM\L[PN[C<?
MEXZD#CO6/HHAM-/^'[>* (]$6&\\K[=_JDD+9M_,W< ^5G;FO4[;PW;0^(-6
MU61A.=1$&Z&1 5C,2L 1]=U:\L4<\9CEC22-NJNN0?PH \5UC[')X:^)-QH@
MB_L&46WD-;@>0\X $QCQP1]S)'!(K:\5K?MK_CA=,\PWA\-P>6(_O?>FSMQW
MQG%>GB"(0B$1((@,!-HVX^E."*'+A1O(P6QR10!YH]UX'G\$ZFGAPZ8UZOAZ
MXP+55\U(?+&1(5Y!W;>&YSGWK%D9XO$F@O?7NBV=HWANW6SDUFV,L!?_ ):A
M/WB /C9GDDC%>Q):V\0D$<$2>8<OM0#?]?6B6V@GB$4T$<D8Z(Z @?@: /*3
MI&EV?AC067Q;H326EW=7-@UT@%C,I+!H@"YX3=A2&)';-=YX)U--8\'Z??QZ
M?%8)*K8MX1B,88C*<#Y6QN''0BMJ2UMYHA%+!%)&N,(R @8]JE    & * /.
M?&&K6"^+I-.NH/#UJR:<LK7VLP^:9D+L/*B7*DXY)P?XAQ7.Z%90:MI'PJM-
M2A6YA(NMT4HR&V1,5!!Z@%1P?2O9)((9G1Y8HW:,Y0LH)4^H]*40Q+LQ&@V?
M=PH^7Z>E 'CFOVJV-A\1;&QA,.GQWUA+/!;K@+$R1&<@#IE02<=LUJ6DOA:?
MXM^'Y/#(L& T^Z6>2P4>6>(]@)7Y=P&>.H!&>U>H"- S$(H+?>..OUID5M!
M%$4$<87.T(@&,]<4 4_$'_(M:K_UYS?^@&O'M+E\-W'AGP#!H'V0^(EO;-Y5
MA ^TKA<W#2?Q;"N[KP1C'&*]JOK47VGW-HS%%GB:(L!R-P(S^M5=$T:WT32;
M&QC"R/:6L=MYY0!W5%"C/Y=* .*\*:-;37OC75(;."35TUBYCMIY$#-&1$A4
M*3]WESTZYYKDUD\.S_#+1;/2_LI\8^?;;(U ^VI>"53*S_QC^,DGC'X5[BJ*
MF[:H7<<G QD^M,6V@6=IUAC$S##2!!N(]SUH \Q2X\+6_BWQBGC,Z>+J2>,P
M"_527M/*78(@>3\V_(7G/O65?113^)O&-IK.J^'+![B4*G]LVI>1K4Q*$,3F
M5 %!W< '#9)KV22W@ED222&-WC.49E!*_0]J2:UM[AD::"*1D.5+H"5^F>E
M'EK+H^G>,=%3Q5?6=WIT?AM([.\OPHAFE#?O6&_(WLFP]<XK&L6L;3P*+VU0
MPZ19^,UN-Q5E$5N)AAB#R  1UKVR6"&X55FB20*=P#J#@^O-*8HRCH8UVOG<
MN.&SUS0!Y=?ZQI^M>,_$T^F7<=W!'X5>(S0G=&6#R$A6'#8R.F>>.U4]3T6W
MTWX)Z3+IMG;P+/'82ZG-Y)<R0DJTADVD,ZY))&>F1P*];2W@C4*D,:J%V *H
M V^GTJ0*JJ%"@*!@ #@"@#RW3[#2;J_U>]D\5>'_ +/+HLMM=1Z'#Y(2(D8F
M?]Z_*@L <#K[5H?#Z^@BU:YT*'^Q;];.RB9-6TE%59$R56.4#(#\%L!B,'.!
M7?0VMO;JRP011*QRP1 H/UQ2PV\%LA2"&.)2<E8U"C/KQ0!Q_P 6+6*Y^&NK
MM);I*8465=R!BF'7+#T^7//IFLG6K3P[K?BCP+#91:?=Z0T]ZRI;!6@9EBST
M7Y3AAR/7K7I) 8$$ @\$'O3([>")46.&-%CSL"J %SUQZ4 >4W-S9>&T^("+
MI5K<:?%J%F19RJ!;HTD<67<8("AB&/':CPXEMJ'C_7+9)-$OH)M$C$JZ5;[;
M=W$C8!!9@S $<^A P,5ZN8HSOS&OS_?X^]VY]:2*WA@ $,,<84;0$4# ].*
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
M[;8TD;2J2S)C@$$DC&.M=!X@TV\N_%NM1V$;++<^&7ACD P#+YC!1GIGFB>
MH1;AS.^NO1)6WT\_+8%)G2V7BK0M2O39V>JVTTX#$(C_ '@O4J>C8[XS5+PW
MXVTCQ-=WEK9SIY]O,Z*F[)D1<?O!QT.:Y7P[%::A)X=MKC6-5-UIS*Z6#Z:(
MO(=8RI5G$8PN"1R<'CK6[X/N4M=:\1:5<)-'=R:I-=HK0L%:)@F&#8V\_7-*
MO@Z-*,TDVTD_36U]E=;?Y@I-V.GU'4K+2+&2]U"ZBMK:/&Z21L 9. /J3QBL
MBX\2V]U9:==Z/J.G/!<:A':R-<EQN!SN1 .1)TP&X]:C\<0:=/H4?]I7-Y:)
M'=1RPW=I"TC6\JG<CD!6XR,'(QS7(/?:QKNBZ'+?1/<&W\4P+#=I:M#]I@7I
M,8SRHR2/3C->0:'5:/X_T76?$^H:%!<1BYM91'%\^?/^3<Q48XV\@_2M"W\7
M>'KO5O[+M]7M9+W<R")7^\R]5!Z$CN <BN9LIFMO'OC'36\^"\U00R6$GDOL
M<+;!2P<#:,,IZD<US/A>R@N-)\.:%JFLZQ!>Z=<0.=+_ ++ \J:-LY\P1?<)
MR=^[D$Y/- 'LU<WI_BNRA\.V%_KFK:5')=*Y$UO(P@?;DG87YX []\UTE>0^
M'=,E?2OAE'<V,C""YNGE62(_NR(Y2I8$<<X(SWQ0!Z5I_B31M5TR;4K+4[:6
MR@+":8/A8BHR=V?NX'/-<[X@\>Z>W@K6]4\-ZG:W5W80B0 ?-MR0 2IZ@\X/
M0US?B;2;ZZD^(4=I8S3+)-IL_DQH?](1 C2JO]XE5(P.O2M+QCKFG^*/A[XA
MCT:UNYI$LE!<V4D?5A^[!9021U(&<4 =]'J%I)?R6"SH;R.)9I(0?F5&) /T
M)4_E5.?Q/H=MHPU>;5+9-/,AB6<O\K.&*E1ZG*D8'H:Y:]U*/PW\3+J_U""[
M^RWVDPQ6\D%L\V^6.20F/Y ?FPP(S7,:0D^F^'_!&KZE8726%AJ>H/>1F!G>
MW:2281NR $X!/4=-P- '4V_CA]1N/%DNF:CICV.FVMM-:7$Y/DJSJY?S"O.
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
M>E$;?,H]\$X^E8O#4X8R-*7PW6[_ #T5ON5OQ'=N-RUID_BO[;$-6L]*^RR
M[FM)GWPG&1D,,,.V1CZ5+:>+O#]]J0T^UU>TENB2JQJ_WR.H4]&(]!65<^)[
M7Q+I5[I>BQZ@;ZYM)D5GLY(EMW,;;=[.  <X'&>?;FN<-U!K'ACPWX>TVPNX
MM5M+BT:2)[5T^Q^409'9B !P&'!YW>];1P?M+NK'E>VFEEK[S3OI]W^:YK;'
M;WWB_P /:9.\%[K%I!+')Y;H[\JV >1V&&7GIS5G5/$&D:+##-J6H06Z3'$1
M=OO\9X Y/%<K:Z?N?X@N]IE[B1D5C'S(OV9< >HR3^.:SM.G_L+4O"VJZM!<
M"S/AR.U640/)Y,_R,0P4$J6''3MBB.!HR^&[:6VEW>/-9::?B',SI/#OBN'4
M+;4KJ\O+?[,FK-96DJ$;74[/+ (ZDENM=#]NM1J'V#ST^U^5Y_E9^;9G&[Z9
MXKRR.WF'A+5;V'2[J&&'Q0E_]F^SE9! 'B8D(.>F3CV-:5W<2^)_$^KRZ/#=
M".7PW-:V]S+"T2R2E^-NX ]2.?8^E:5L!3E-RB[15_16Y?\ ,%)G61^-/#<S
M7"Q:S:.;=&>3:^?E!P2#W /IFD\*>*]/\6Z2E[9NJR;%::#=N:$G. 3^!K.\
M):WIMWIFEZ5!9745Y;6@22*2S=!;,J@,&9@ "3QP>:3X:72'P;9:8R31WFGQ
M"&YBEA="C9;C) !Z=L]O6N>OAJ=.E4M!IQ:W?1WUM;9V7X:]VI-M'1:IK.G:
M+ DVI7D5LCMM3>>7/H!U)^E0IXCT:33(]274[8V4D@B6?> N\G&TGL<^M9/C
M#5KS3+G2DA?[+:3R2+<:@+4SFWPN5 49QN/&2".*XJWLI[SP]<I/;W-PD_BZ
M"5OM%KY9EB+1$NR8& 1DGCZU6&P$*E*-2;M=_A>W;?Y_+4')IV/3-*\0Z1K@
MF_LS4(+KR"/,$;<KGH3['L>AK U'QWITM]I%KHFJ6ES+/J<=M<(IW'RRKY*^
MO*@9&157Q!IMY=^+=9CL8G62Y\,O#&ZC ,GF,%&>F>:R#?V>IVW@BSL=,NUN
M-/O;<7&ZS=!: 1LK(S$#DG' S]W)[5M0P=%_O$FU;;33W6]=-==MA.3V/4ZX
M[POK?B?Q#866JM!I$6GW#'<@:4RA0Q4XXQGBNQKROX=CP[866EI<P7\.NAW0
MAX;K:&9V SQY8X(]JY<)2C+#U)<MVFK:7Z2OU5EHM=;#D]4=3IGCS2M9N=5L
M[.XC^TVC.L0W9\X*@;>!CIDD?A2>$_&VFZQIFDP76J6C:Q=6R220(P!+E0Q
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
M%YU80\+PP9F&0P(SS0!ZO14=N\DEM$\T?ERL@+IG.TXY&:DH **** "BBB@
MHHHH **** "BBB@ HHHH ***;)(D,3R2.J1H"S,QP !U)- #J*\ZU7XAVNH7
MWAN#1;B\B%YJT2%Y;1XTNK<J^XHSKAESMY'/2MRW\46EA;:Q=:AJK7<=OJAL
MXXXK-E='(3; JC)D;+?>'7/M0!;U3PI:ZEJXU6*^U#3[XPB!YK*8)YD8)(5@
M00<$G!QGFKVBZ+9Z#IXLK)7V%VE=Y'+O)(QRSLQY+$G.:I3>+M+MM$_M6[^U
MVT1E$"PSVLBS-*3@(L>-S$]L YK$UOQ:UU::+-I3W=JSZ[;6=U%<6S0R!6R6
M0JXS@@@Y'YT =Q17-:IX[T32;VYM9FO)FLP#=R6MG)-'; C/[QE4A>.<=<5/
MJ'B_2;![6-6N;V2Z@^TQ1V-N]PQAX_>80'"\CGOGC- &]16=#K=C/JZZ5'(_
MVMK1;P(8R/W1;:#R.#D=.M9MUXY\/V6DC5+B\:.S^V/8^88F/[Y"P*X SU1L
M>O'K0!T=8=YX;>\NY+@:]K-N'.?*@N%5%^@*FH9?&NEPV5E.T.H^=>[_ "+(
M64AN6"'#$Q8W #U.!R/45J:1K%CKNGK?:?*9(2S(=R%&1E.&5E(!5@1@@BM*
M=25-WB)JYE?\(G)_T,NO_P#@4O\ \11_PB<G_0RZ_P#^!2__ !%1ZCX^T+3+
MRZ@F>[D2S;;=W$%G)+#;'KB1U4@$ C/IWQ6#XO\ $TK^+="T.SO=6M;2YBEG
MFN--M#*TO">7L;8P*_,2Q ..,XS6OUNMW_!?Y!RHZ+_A$Y/^AEU__P "E_\
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
MR"0X5@"00#BCZW6[_@O\@Y4,_P"$3D_Z&77_ /P*7_XBC_A$Y/\ H9=?_P#
MI?\ XBH;#XA>'M2O+*"WGN=E\=EK<O:R)!,^,[%D(VENO&>H(ZU4T3Q0MI9>
M*+_7+[;:V&LS6\;,N2J!8]J*%&2<MP.2<T?6ZW?\%_D'*C1_X1.3_H9=?_\
M I?_ (BC_A$Y/^AEU_\ \"E_^(J.+Q[HDD-^THOK66QMC=S6]U9R12^2.LBH
MPRR_3IWK4FU_3H9-+C,^YM4;;:!%+>9\A?/'0;1G)]J/K=;O^"_R#E1G_P#"
M)R?]#+K_ /X%+_\ $4?\(G)_T,NO_P#@4O\ \138?'FA3WT5LDMSY4L_V:*\
M-K(+:27.-BRXVDY!'7!(P#3M3\<:+I-[<VT[74AM #=RV]I)+':@C(\QE!"\
M<^PY-'UNMW_!?Y!RH/\ A$Y/^AEU_P#\"E_^(H_X1.3_ *&77_\ P*7_ .(K
M8O+K9I%Q>6[J^V!I8V'*GY<@^XKBY/'$J_"$>(!>V?\ ;']EBYVY7'FE ?N9
M]>U'UNMW_!?Y!RHW/^$3D_Z&77__  *7_P"(H_X1.3_H9=?_ / I?_B*=?\
MBZQTB*%;N"_FE-NMQ+]DLI9EC0Y^9BJD <'C.>*+_P ;:#IUOID\MV\D>J1F
M2R\B%Y#. %.%5022=PP,9_*CZW6[_@O\@Y4-_P"$3D_Z&77_ /P*7_XBC_A$
MY/\ H9=?_P# I?\ XBGV_C70I] O-::Z>"TLG,5T+B%HY(7&/D9"-V[D8&.<
MC%8=EXR_MGXBZ?IUF]Y!;_V=<2W%I=6K0ON#1[&(< XP6P1QUH^MUN_X+_(.
M5&S_ ,(G)_T,NO\ _@4O_P 11_PB<G_0RZ__ .!2_P#Q%<WX&^(]C=>&-#75
M[NZDO;D+!)>-:OY!G).$,H78&/'&:Z35?&^C:1?SV<OVR>6U0/=?9+.2=;92
M,@R% 0O'..N.:/K=;O\ @O\ (.5!_P (G)_T,NO_ /@4O_Q%'_")R?\ 0RZ_
M_P"!2_\ Q%3ZAXNT;3[*PNC</<C4!FSCM(FFDN!C=E%4$D <D]!6#XF\9177
MP]U75-!NY8;JTECAD$D1CE@?S4#*R.,@X;N.]'UNMW_!?Y!RHU_^$3D_Z&77
M_P#P*7_XBC_A$Y/^AEU__P "E_\ B*TK37+"^U>\TRUE:6XL@OV@JA*1L>BE
MNF['..HJKK7BJPT.?R;B#4)G6+SG^R64LPC3)&YBJD#H>^>.E'UNMW_!?Y!R
MHLZ5I#:6TI;5-0O?, &+N4.%QZ8 QUK2KGK[QMH.GVVF7$MV\D>J1F2R\B%Y
M#. %.%5022=PP,9_*EM_&NA3Z#>ZRUT]O:6+F.Z%Q"T<D+C'RLA&[=R,#'.1
MBL)S<WS2W'L=!17"67C+^V?B+INFV;WD%N=/N);BTNK5H'W!H]C$. <8+8(X
MZUT>N^)]*\.-:+J4[QM=LR0*D32-(P&=H"@DD]AW-2!L45@V7C+1+W2+[4S<
MO;0:>Q2\6[B:*2 @ X9&&1P1CUSQ3=)\9Z3J^HII\8O;:[DC,L,5[:20&9!U
M9-X&X#(]Z .@HKDHOB3X:FEB5+BY,3S_ &9KG[))Y,4N[:$>3;M4D^I[CUKK
M: "BO./%7Q'L6TI4T2[NDG?4+>WBN_LKB&;]^JR*DA7:WR[NA[''2NA/B.UT
M[4?$DNHZN&M-.\@M!]E*FVWH"!N&3(7)!  X)Q0!TU9NIZ'::O>:;<79E/\
M9]Q]IAC#81I-I4%ACG&21[U4'BW2TT:ZU6\%W86UJ0)?MMK)"XSC&%(RV<@#
M&<GCK6!XF\9^?X.U"ZT@WUC>VT]HK+=6CPR*LDZ+D!UY!&X9'O0!WE%<]JWC
M72-'OY;&47EQ<01B6X6SM))_LZ'D-(4!VY'/KCFG7?C'1[:VT^>*6>]_M%#+
M:1V4#SO*@ )8*H) &1DGUQUH WZ*S(=?T^?4+*Q5Y1<WMJUW"CQ,A,8*@Y!
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
M)J/P9X?UN*'5GUBTE2;3]._L73RW_+:)"Y\P>S#RQ_P&O4** /.!H>I#P)X
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
M,MHDF(^5G5Y2P!]0"OZ5PMOX8U>S\/>"[R:RU51IGVR*[@L'V7,8E8[749Y
MVC('.&KV.B@#R[4/#_VSP;J[Z9IFMF[O=0LWE_M,YEF$<L7S $DA0H/7!^6N
MINM/NF^*&FZBMNYM(])N(7F ^4.98B%)]2 3^%=110!YEH=HT7PZN/#>N>&]
M7F^QRNLJP1@>8&G9U>%@P+;?E;CD>]6])U_5O#OA_4KS58=4O+1;V&WTJ.]5
M5O9E<HN& ZX8MC/S$ YKT*H9[2WN9())X(Y&@D\R(NN=CX(W#T."1GWH FHH
MHH **** "BBB@ HHHH **** "BBB@ HHHH *9-((8))2CN$4MM1=S' Z =S3
MZI:Q%>SZ)?PZ;,L%_);R+;2MT20J0I/T.* ,>P\7FXURUTJ_T34M+FO(WDM&
MNO**S! "P^1VVL <X.*DT#Q6/$4BRVND7Z:;)O\ (OY/+\N7:VT_*'+KD@XR
MHSBN0T'PMK*>*O#NIW&C3VGV&.9;VXNM4-S)-(\6W<!N.%W?0\] !5_0-#U:
MW\8PW]OHCZ!8%)6U&!;Y98+J1L;3'&IPI!R2V%)Z8YH Z[6-5N--6%;71[[4
MYI2<):[%"@8Y9G95'7CG)K%?XA:7%X=CUF6TOT4WW]GRVWE!IHI]Q4J5!.<$
M?PDYR,4SQGINL7VHZ3):VMS?Z5%YHO+&VO?LSR,0/+8MN7<HPV5R.H.#7%WV
MB:OX>\%VT+V=O#>S>+(;FVMVN#(@#R@HI?J1G@DC/?% '>67C:">ZO[.^TK4
M--O;2T-]]GN@A:6 9&Y2C$=>""002*JV/Q%L[U]*E?2-4M=.U1TBM+^>-%C>
M1AE5(W%AGH&(P3T..:S;G3]:U/5-6\1ZMIBZ9%;Z'/906YN%F>1F^=G)7@#Y
M0 .O4\5F:%8^(_$?A/P7IMQI4-KIUG]BO7OQ<JPECB0,BJGW@Q^4'/ P<$T
M7;;5Y(--\02WFHZE&J>*A;1/;.&=59H55/GX"9;D#L3BNCO?&:0:M=V%CHNI
MZH;':+V6S1"L)89"X9@7;!!(4$C/KQ6!<^$M8DTG6+=;=#)<^)X]1B'F+S )
M(B6Z\'"-QUXJY!:>)?#6O:[_ &;HL6IVFJW0O(9S=K%Y+E%5ED!YQE005!XH
M U->\8/H+74TN@:K/I]FH:YOHEC$:+@$D!G#. #S@'&#Z5BZIXCN;#XGPQVE
MMJ&I1W&AB2&SM"-I;SC\YW,$7Y>-Q(["LOQ9X6\1ZQ-XDMY--EU$WB%=-N/[
M3,,%LAC V&+<,MNR<[2&R,D"M:XTWQ'I7BZQUFPTB/4+>+18[&:(7*QR;PY8
M[=W!QQUP,'@\8H 9JWBE-;L/#%[ISW=IN\116EU!(?+D1E$@>*0 XZ@<<@\5
MJZAX\MK*74'ATG4;RPTQS'?WUNJ>7 P +#!8,^T'+;0<5A6OA#6A8:=/<01+
M>S>)_P"V;R%)05MXR&&T-QN(&W..IS55_!4]AJFMQS^%CK=OJ%[+=0W$>I>0
MH67EHY$+#H<\@-D&@#U"*6.>%)HG#QNH96'0@\@T^LNU:_MM4AT^/38HM(CL
ME*W"S9*RAMHB"8S@+SN_"M2@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ J"YL[:]6-;JWBF$
M4BRH)$#;74Y5AGH0>AJ>B@!LD:31/%*BO&ZE65AD,#U!%-M[>&TMHK:WB2*"
M) D<<:A510,  #H *DHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@"EJ^H?V5I
M-S?>5YODKNV;MN>?7!KB?^%H_P#4'_\ )G_["NI\7?\ (J:C_P!<OZBO$Z[\
M)1IU(MR1QXFK.$DHL]#_ .%H_P#4'_\ )G_["C_A:/\ U!__ "9_^PKA)[&\
MMHUDN+6>*-_NM)&5#?0FJ]=2PM%[+\6<_P!8JKJ>A_\ "T?^H/\ ^3/_ -A1
M_P +1_Z@_P#Y,_\ V%<)]ANQ:_:OLL_V?_GKY9V?GTJO1]5HOI^+#ZQ5[GH?
M_"T?^H/_ .3/_P!A1_PM'_J#_P#DS_\ 85PHTZ^,(F%G<&(C<'\IMN/7.*AB
MBDGD6.*-I)&Z*@R3^%'U6AV_%C^L5>YZ!_PM'_J#_P#DS_\ 84?\+1_Z@_\
MY,__ &%<)/8W=J@>XM9X5)P#)&5!/XTXZ;?B'SC97/E;=V_RFVXZYSCI2^K4
M.WXA[>KW.Y_X6C_U!_\ R9_^PH_X6C_U!_\ R9_^PKS\Q2+$LIC81L2%<C@D
M=0#2RP2P%1+$\990RAU(R#W'M3^JT>WXL7UBKW.__P"%H_\ 4'_\F?\ ["C_
M (6C_P!0?_R9_P#L*X'[-<>>8/(D\X?\L]AW=,]/IS4D&GWMS'YD%G<2IG&Z
M.)F&?J!2^JT.WXL?UBKW.Z_X6C_U!_\ R9_^PH_X6C_U!_\ R9_^PKA'L+R.
M9(9+2=99/N(T9#-]!WJ%(WED$<:,[DX"J,DGZ4_JM'M^+%]8J]ST'_A:/_4'
M_P#)G_["C_A:/_4'_P#)G_["N#N;*[LRHNK6: MT\V,KG\Z88)1 )S$_DEMH
MDVG:3Z9]:/JM#M^+#ZQ5[G?_ /"T?^H/_P"3/_V%'_"T?^H/_P"3/_V%>?-'
M(B([(P1\[6(X;'7'K4TMC>00+/+:SQPM]V1XR%/T-'U6CV_%A]8J]SN_^%H_
M]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\\HH^J4>WYA]8J]ST/_A:/_4'_P#)G_["
MC_A:/_4'_P#)G_["O/**/JE'M^8?6*O<]#_X6C_U!_\ R9_^PH_X6C_U!_\
MR9_^PKSRBCZI1[?F'UBKW/0_^%H_]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\\HH^
MJ4>WYA]8J]ST/_A:/_4'_P#)G_["C_A:/_4'_P#)G_["O/**/JE'M^8?6*O<
M]#_X6C_U!_\ R9_^PH_X6C_U!_\ R9_^PKSRBCZI1[?F'UBKW/0_^%H_]0?_
M ,F?_L*/^%H_]0?_ ,F?_L*\\HH^J4>WYA]8J]ST/_A:/_4'_P#)G_["C_A:
M/_4'_P#)G_["O/**/JE'M^8?6*O<]#_X6C_U!_\ R9_^PH_X6C_U!_\ R9_^
MPKSRBCZI1[?F'UBKW/0_^%H_]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\\HH^J4>W
MYA]8J]ST/_A:/_4'_P#)G_["C_A:/_4'_P#)G_["O/**/JE'M^8?6*O<]#_X
M6C_U!_\ R9_^PH_X6C_U!_\ R9_^PKSRBCZI1[?F'UBKW/0_^%H_]0?_ ,F?
M_L*/^%H_]0?_ ,F?_L*\\HH^J4>WYA]8J]ST/_A:/_4'_P#)G_["C_A:/_4'
M_P#)G_["O/**/JE'M^8?6*O<]#_X6C_U!_\ R9_^PH_X6C_U!_\ R9_^PKSR
MBCZI1[?F'UBKW/0_^%H_]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\\HH^J4>WYA]8
MJ]ST/_A:/_4'_P#)G_["C_A:/_4'_P#)G_["O/**/JE'M^8?6*O<]#_X6C_U
M!_\ R9_^PH_X6C_U!_\ R9_^PKSRBCZI1[?F'UBKW/0_^%H_]0?_ ,F?_L*/
M^%H_]0?_ ,F?_L*\\HH^J4>WYA]8J]ST/_A:/_4'_P#)G_["C_A:/_4'_P#)
MG_["O/**/JE'M^8?6*O<]#_X6C_U!_\ R9_^PH_X6C_U!_\ R9_^PKSRBCZI
M1[?F'UBKW/0_^%H_]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\\HH^J4>WYA]8J]ST
M/_A:/_4'_P#)G_["C_A:/_4'_P#)G_["O/**/JE'M^8?6*O<]#_X6C_U!_\
MR9_^PH_X6C_U!_\ R9_^PKSRBCZI1[?F'UBKW/0_^%H_]0?_ ,F?_L*/^%H_
M]0?_ ,F?_L*\\HH^J4>WYA]8J]ST/_A:/_4'_P#)G_["C_A:/_4'_P#)G_["
MO/**/JE'M^8?6*O<]#_X6C_U!_\ R9_^PH_X6C_U!_\ R9_^PKSRBCZI1[?F
M'UBKW/0_^%H_]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\\HH^J4>WYA]8J]ST/_A:
M/_4'_P#)G_["C_A:/_4'_P#)G_["O/**/JE'M^8?6*O<]#_X6C_U!_\ R9_^
MPH_X6C_U!_\ R9_^PKSRBCZI1[?F'UBKW/0_^%H_]0?_ ,F?_L*/^%H_]0?_
M ,F?_L*\\HH^J4>WYA]8J]ST/_A:/_4'_P#)G_["C_A:/_4'_P#)G_["O/**
M/JE'M^8?6*O<]#_X6C_U!_\ R9_^PH_X6C_U!_\ R9_^PKSRBCZI1[?F'UBK
MW/0_^%H_]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\\HH^J4>WYA]8J]ST/_A:/_4'
M_P#)G_["C_A:/_4'_P#)G_["O/**/JE'M^8?6*O<]#_X6C_U!_\ R9_^PH_X
M6C_U!_\ R9_^PKSRBCZI1[?F'UBKW/0_^%H_]0?_ ,F?_L*/^%H_]0?_ ,F?
M_L*\\HH^J4>WYA]8J]ST/_A:/_4'_P#)G_["C_A:/_4'_P#)G_["O/**/JE'
MM^8?6*O<]#_X6C_U!_\ R9_^PH_X6C_U!_\ R9_^PKSRBCZI1[?F'UBKW/0_
M^%H_]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\\HH^J4>WYA]8J]ST/_A:/_4'_P#)
MG_["C_A:/_4'_P#)G_["O/**/JE'M^8?6*O<]#_X6C_U!_\ R9_^PH_X6C_U
M!_\ R9_^PKSRBCZI1[?F'UBKW/0_^%H_]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\
M\HH^J4>WYA]8J]ST/_A:/_4'_P#)G_["C_A:/_4'_P#)G_["O/**/JE'M^8?
M6*O<]#_X6C_U!_\ R9_^PH_X6C_U!_\ R9_^PKSRBCZI1[?F'UBKW/0_^%H_
M]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\\HH^J4>WYA]8J]ST/_A:/_4'_P#)G_["
MC_A:/_4'_P#)G_["O/**/JE'M^8?6*O<]#_X6C_U!_\ R9_^PH_X6C_U!_\
MR9_^PKSRBCZI1[?F'UBKW/0_^%H_]0?_ ,F?_L*/^%H_]0?_ ,F?_L*\\HH^
MJ4>WYA]8J]ST/_A:/_4'_P#)G_["N]L[C[796]SMV>;&LFW.<9&<9KY_KWG1
M_P#D"6'_ %[1_P#H(KDQ=&%-+E1TX:K.;?,R[1117"=84444 %%%% !1110
M4444 %%%% &+XN_Y%34?^N7]17BJ.T<BR(Q5U(*D=B*]J\7?\BIJ/_7+^HKQ
M:&0131R%%D"L&*-T;!Z'VKU,#_#?J>?B_C1T1NKF#PI=_P!HSR22:BZ&WCE8
ML<*<M)ST!Z>]<["H>>-&.%9@"?QK6U+7HM3,LDVE6JSNNT2J\F5],#=@8],8
MK.>Y5[&*W%O$K1LS&8#YWSV)]!73!-+;<PFTWN=?'<S/\0YK%G;[(2]L8<_(
M(@A &.F.,UQ%;DGB65R\XL[==0DC\I[P;MY&,$XS@,1QG%8=%.+COV05))['
M2:SJ-[8R:.UK=30E=/A8!'(&>>U:4,4<?Q%M611$98A*Z*,!&:$EN/J<_C6'
M_P )"K1VWF:792S6T2Q1RR;SPO3*[L'\JK6VM74&MC5I-L]QN+-YG1L@CM[&
ML_9R::MT9?.K[]4)J31E8UBU66]&22'1EV^G4GWK<\1!<QG^V!$?L4/^B8D^
M;]V..!MY^M8%Y>VUS$JP:;;VK!LEXWD)(]/F8BFZA?R:C<)-(BJRQ)%A?15
M'\JOD;:?^1/,DF:%W_R)^F?]?4_\DK;UU1J\<MC@?:[&WBGM_5XS$I=?P^\/
MQKE);^272[>P**(X9'D##J2V,_RJ=];N3K$6IH$CGB"!0.A"J%Y^H'/UI.F[
MW[7_ #&IK;T.B'_)2I?]U_\ T0:RO!]Q.OB.SA6:01%F)0,=I^4]JK'7YSX@
M?6/)B$S[OD&=HRA7^1JIIE_)I>HQ7D2*[Q9PK=#D$?UH]F^5KR2_,.=<R?F:
M7AFXFN/%>F&::20B8 %V)Q^=2:4[6FB:W?0$K=(8HED7[R*['<0>V< 9K(TV
M^?3=1@O8U5GA;<%;H:ET_59M/EF*QQS0SKLFAE&4<9S^8[&G.#;=O+\Q1DE:
M_F:6E7,U[HNLVUU*\L,=N)T\QB=D@8 $9Z9R16AIL\+>&=/TVZ(6VOI9XRY_
MY9R#9L;\#Q]":PKK6?,LGLK.R@LK>1@TJQ%F:0CIEF).!Z55EOY)M-MK(JH2
MW=W5AU);&<_]\TG3<O+7]!J:7W?J;&JQR:=INAQSQ#S+=I@\;="1+R*FU<'5
MX+[5-.U*:6!B)+FSE8AH@3QQT90<=.G%9NH:_=:F;%KF.%VM%P"5SYG(^\._
M3FB;6U-G/;V>GVUF+@ 3-$6)8 YP-Q.!GL*%"6CZ_P#!!RCJNG_ ,FBBBMS$
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH *]YT?_D"6'_7M'_Z"*\&KWG1_P#D"6'_ %[1_P#H(K@Q
M_P ,3LP>[+M%%%>8=X4444 %%%% !1110 4444 %%%% &9X@LIM1T&\M+< S
M2IM4$X&<BO-/^%?Z_P#\\8?^_HKUZBMZ6(G25HF-2C&H[L\A_P"%?Z__ ,\8
M?^_HH_X5_K__ #QA_P"_HKUZBM?KM3R(^J4SR'_A7^O_ //&'_OZ*/\ A7^O
M_P#/&'_OZ*]>HH^NU/(/JE,\A_X5_K__ #QA_P"_HH_X5_K_ /SQA_[^BO7J
M*/KM3R#ZI3/(?^%?Z_\ \\8?^_HH_P"%?Z__ ,\8?^_HKUZBCZ[4\@^J4SR'
M_A7^O_\ /&'_ +^BC_A7^O\ _/&'_OZ*]>HH^NU/(/JE,\A_X5_K_P#SQA_[
M^BC_ (5_K_\ SQA_[^BO7J*/KM3R#ZI3/(?^%?Z__P \8?\ OZ*/^%?Z_P#\
M\8?^_HKUZBCZ[4\@^J4SR'_A7^O_ //&'_OZ*/\ A7^O_P#/&'_OZ*]>HH^N
MU/(/JE,\A_X5_K__ #QA_P"_HH_X5_K_ /SQA_[^BO7J*/KM3R#ZI3/(?^%?
MZ_\ \\8?^_HH_P"%?Z__ ,\8?^_HKUZBCZ[4\@^J4SR'_A7^O_\ /&'_ +^B
MC_A7^O\ _/&'_OZ*]>HH^NU/(/JE,\A_X5_K_P#SQA_[^BC_ (5_K_\ SQA_
M[^BO7J*/KM3R#ZI3/(?^%?Z__P \8?\ OZ*/^%?Z_P#\\8?^_HKUZBCZ[4\@
M^J4SR'_A7^O_ //&'_OZ*/\ A7^O_P#/&'_OZ*]>HH^NU/(/JE,\A_X5_K__
M #QA_P"_HH_X5_K_ /SQA_[^BO7J*/KM3R#ZI3/(?^%?Z_\ \\8?^_HH_P"%
M?Z__ ,\8?^_HKUZBCZ[4\@^J4SR'_A7^O_\ /&'_ +^BC_A7^O\ _/&'_OZ*
M]>HH^NU/(/JE,\A_X5_K_P#SQA_[^BC_ (5_K_\ SQA_[^BO7J*/KM3R#ZI3
M/(?^%?Z__P \8?\ OZ*/^%?Z_P#\\8?^_HKUZBCZ[4\@^J4SR'_A7^O_ //&
M'_OZ*/\ A7^O_P#/&'_OZ*]>HH^NU/(/JE,\A_X5_K__ #QA_P"_HH_X5_K_
M /SQA_[^BO7J*/KM3R#ZI3/(?^%?Z_\ \\8?^_HH_P"%?Z__ ,\8?^_HKUZB
MCZ[4\@^J4SR'_A7^O_\ /&'_ +^BC_A7^O\ _/&'_OZ*]>HH^NU/(/JE,\A_
MX5_K_P#SQA_[^BC_ (5_K_\ SQA_[^BO7J*/KM3R#ZI3/(?^%?Z__P \8?\
MOZ*/^%?Z_P#\\8?^_HKUZBCZ[4\@^J4SR'_A7^O_ //&'_OZ*/\ A7^O_P#/
M&'_OZ*]>HH^NU/(/JE,\A_X5_K__ #QA_P"_HH_X5_K_ /SQA_[^BO7J*/KM
M3R#ZI3/(?^%?Z_\ \\8?^_HH_P"%?Z__ ,\8?^_HKUZBCZ[4\@^J4SR'_A7^
MO_\ /&'_ +^BC_A7^O\ _/&'_OZ*]>HH^NU/(/JE,\A_X5_K_P#SQA_[^BC_
M (5_K_\ SQA_[^BO7J*/KM3R#ZI3/(?^%?Z__P \8?\ OZ*/^%?Z_P#\\8?^
M_HKUZBCZ[4\@^J4SR'_A7^O_ //&'_OZ*/\ A7^O_P#/&'_OZ*]>HH^NU/(/
MJE,\A_X5_K__ #QA_P"_HH_X5_K_ /SQA_[^BO7J*/KM3R#ZI3/(?^%?Z_\
M\\8?^_HH_P"%?Z__ ,\8?^_HKUZBCZ[4\@^J4SR'_A7^O_\ /&'_ +^BC_A7
M^O\ _/&'_OZ*]>HH^NU/(/JE,\A_X5_K_P#SQA_[^BC_ (5_K_\ SQA_[^BO
M7J*/KM3R#ZI3/(?^%?Z__P \8?\ OZ*/^%?Z_P#\\8?^_HKUZBCZ[4\@^J4S
MR'_A7^O_ //&'_OZ*/\ A7^O_P#/&'_OZ*]>HH^NU/(/JE,\A_X5_K__ #QA
M_P"_HH_X5_K_ /SQA_[^BO7J*/KM3R#ZI3/(?^%?Z_\ \\8?^_HH_P"%?Z__
M ,\8?^_HKUZBCZ[4\@^J4SR'_A7^O_\ /&'_ +^BC_A7^O\ _/&'_OZ*]>HH
M^NU/(/JE,\A_X5_K_P#SQA_[^BC_ (5_K_\ SQA_[^BO7J*/KM3R#ZI3/(?^
M%?Z__P \8?\ OZ*/^%?Z_P#\\8?^_HKUZBCZ[4\@^J4SR'_A7^O_ //&'_OZ
M*/\ A7^O_P#/&'_OZ*]>HH^NU/(/JE,\A_X5_K__ #QA_P"_HH_X5_K_ /SQ
MA_[^BO7J*/KM3R#ZI3/(?^%?Z_\ \\8?^_HH_P"%?Z__ ,\8?^_HKUZBCZ[4
M\@^J4SR'_A7^O_\ /&'_ +^BC_A7^O\ _/&'_OZ*]>HH^NU/(/JE,\A_X5_K
M_P#SQA_[^BC_ (5_K_\ SQA_[^BO7J*/KM3R#ZI3/(?^%?Z__P \8?\ OZ*/
M^%?Z_P#\\8?^_HKUZBCZ[4\@^J4SR'_A7^O_ //&'_OZ*/\ A7^O_P#/&'_O
MZ*]>HH^NU/(/JE,\A_X5_K__ #QA_P"_HH_X5_K_ /SQA_[^BO7J*/KM3R#Z
MI3/(?^%?Z_\ \\8?^_HH_P"%?Z__ ,\8?^_HKUZBCZ[4\@^J4SR'_A7^O_\
M/&'_ +^BC_A7^O\ _/&'_OZ*]>HH^NU/(/JE,\A_X5_K_P#SQA_[^BC_ (5_
MK_\ SQA_[^BO7J*/KM3R#ZI3/(?^%?Z__P \8?\ OZ*/^%?Z_P#\\8?^_HKU
MZBCZ[4\@^J4SR'_A7^O_ //&'_OZ*/\ A7^O_P#/&'_OZ*]>HH^NU/(/JE,\
MA_X5_K__ #QA_P"_HH_X5_K_ /SQA_[^BO7J*/KM3R#ZI3/(?^%?Z_\ \\8?
M^_HH_P"%?Z__ ,\8?^_HKUZBCZ[4\@^J4SR'_A7^O_\ /&'_ +^BO5=.A>VT
MRT@D #QPHC 'N% -6:*RJUY54E(TIT8T]@HHHK U"BBB@ HHHH **** "BBB
M@ HHHH ***CGE$%O),4=PBEML:[F; S@#N?:@"2BN3L?&S2^(++1]3T'4=)E
MU!7:R>Y,;";8-S*=C'8V.<&NBU'4+?2K"6]NF<0Q %MB,[')P %4$DDD  >M
M %JBL3POXEA\4:?<7<-G<VGD74EJ\5RH#AD.#D G'TJWKNLVOA[0KW5[TD6]
MI$97"CDXZ >Y.!^- &A17/:!XBGUG4KRRDLTA>PBA%T5DW!;AUWM&O'(52N6
M[D].*RO#?Q-T?Q/XNO\ P]:0W$<UJ)"DT@&R<(^QBG.3S^F: .VHKBKKQS='
MXB#PKINE1W*01)-?74ET(_)1B!\JD?,0"#C-9.G_ !.UC5K/5=2TSPFUYIUI
M<&W@:.^42S,'522A'RC!SWZ8]Z /2Z*XV;QQ<)XNUK0(=':>73M+%^FV8!IF
MX_=XQ@=>N370Z9JC76AVFHZA;_V;)-&'>":0'RB?X2W0T :-%8_B#Q/I7AC2
MTU'4YREM)(L2LBE\ENG [>]:CW$,</G/-&L7]\L OYT 244WS8_*\W>OEXW;
M\\8]<US,'C!;CXBOX5CM4:(:8+\7:RYW?.$V[<>^<YH ZBBN4\7^.H/"5]I5
MB=+OM1N]3:18(K0*22FW/4C^]^AJ;PEXVT_Q<+Z.WM[NSO;"01W=G>1[)8B<
MXR 2,'!_*@#I:*CBN()U9H9HY%4X)1@0#^% N(68A9HR0N_ 8?=]?I0!)14<
M4\4\?F0RI(G]Y&!'YBB&X@N QAFCE"G!*,&P?PH DHJ(7,!=$$T>Z0$HN\9;
M'IZTKW$,<J1/-&LC_=0L 6^@[T 245QMYXVN8M9NK"TTM;D)J-OI]NXE(\YV
M7?-QCCRUY/;KTKL20!DD >] "T4SS8\.?,3"?>^8?+]?2G!E*A@05(R"#Q0
MM%-21)4#QNKJ>ZG(I$ECDW>6ZMM.#M.<&@!]%-\V,N$#KN(R!GDB@R()!&74
M.W(4GD_A0 ZB@D 9)P!34D25 \;JZGH5.10 ZBFLZ("7=5 &22<8%*&4KN!&
MW&<YXQ0 M%-66-X_,5U9/[P.1^=)YL8#GS%PGWCG[OU]* 'T4WS$\OS-Z[,9
MW9XQ]:%D1H_,5U*8SN!X_.@!U%-$B%F4.I9?O 'D?6L;PUKSZ_I4VI26RVUM
M]IE2V??D30JQ"R\@8#8S]* -NBD5E=0RL&4\@@Y!I/,0R&/>N\#.W/./I0 Z
MBF>;&&52Z[FSM&>3CKBE>6.( R.J G +'&30 ZBD) (!(YZ>]&1DC(R.M "T
M4U)$E7=&ZNOJIR*$D25=T;JZYQE3F@!U%%-\Q/,\O>N\#.W/./I0 ZBL3POX
MA'B+18[]XDMW>>>(1>9NSY<K)GH.NW/MFHM<\17.C:?KMXVENT.F6?VF*5I5
M"W!"L2HQDKC Y([T =!15>VNTFLK>Y<K'YR*P!;NPSCWK-\-Z_\ V_8W5RT
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
MZA9V]W!G/EW$2R+GUP010!@^ M0L]0\.-]BTN#34M[J:W>WMF#0^8K'<8V
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
M1,# V@C P/2J>J^&K#5;2*S>-8K07274\,2!5N"G*A_4;@A/KM Z4 ;-%%%
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
MMX[BVFCF@D4,DD;!E8'N"."*H7/B+1++44TZZUBP@OGQMMY;E%D.>GRDYYK
M^&48A\)S6Z+LBAU*]CC0# 11</@#VKB?MVA6G@WQ5H>MQ1MXENKF\S:O$6GN
MI'9O):,8RPP4P1P,=J /6-0UW2-*)74=4LK1@JL1<3JA 8D \GH2"!]#5V::
M*WA>::1(XD4L[NP"J!U))Z"O.-*T99_B1IZ:U;1W5Y:^%;=7:90X$OFLKGGC
M/7GW/K6O\38G?PS:N\+S:?#J5M-J,2*6W6RR OE1R0."1Z T ;]GXDT+4+6X
MNK/6=/N+>V!:>6*Y1EB'7+$'"C@\FN7O/B58W?P_U#Q#H,UK+=6J[C:S2*[1
M_O=@+JC9 ."1SSQ56SN=(\0_$S3;WPV;>YL[?3IXM2N+=/W3JQ3RHR0,%@0Q
MQV%<LD^G-\"=:TF(Q#4[3S$O;<+B2/-TVT,.O3I0![!9:WI6I74]K8ZG9W5Q
M;G$T4$ZNT?\ O '(IJ^(-&?53I2:M8MJ(ZV@N$,H_P" YS7*:EIMMIGQ(\*Q
MZ7:PVF[3[Z']U&%&U1$54X[ G-</X:M[>ZT'2-#U/Q/8V&J6]]'))8-IW^F+
M<K+N)W;\DL?X\8(:@#V1M=TA+Y+)M4LA=O(85@,Z[V< $J%SG(!!Q[CUJ>^U
M"RTRT>[O[N"UMT^]+/($4?4GBN.\&:99OXJ\97\EI$UW_:_EK,R L%$,9 !/
M3ECTJK\2?/@UWPM?R7<5GIEM//Y]U<6WGPP2L@$3.N1C^,!B< F@#MH=:TNX
MTY=1AU*SDL6(47*SJ8R20H&[.,Y('U.*BM_$6B7:W;6^L:?,MF";DQW*,(0.
MI?!^4<'KZ5Y;K%C8R_#WQ7=VFMVVL1ZA?6;3?8[?RH5<2Q*VW#$$D8)(/6NL
MGTVSL?BKHL5I9PP0R:-=0R)'&%5D5XMJD#C R?SH M6OC[3];\*7.K:'<Z>U
MS""3;WEXD8C D*9D()V X)!/7(J[)XWT*'Q:?#<U_;17HA63+SH%+LVT1<G.
M_H=N.A%>9)<Z?_PHS7=*B,2ZK9^<MY %Q)'FZ8KN'7ITKK[^?3-,^,L$NH^1
M +W2$AMGE08EG$Y^53CE\%?>@#M/[6TW^S1J7]H6OV @$77G+Y1!. =^<=>.
MM69IHK>%YIY4BB12SN[!54#J23T%>1V]G,/%R?#PQ/\ V?;ZF=:!Q\GV/_6+
M']//./H*ZOXFQL_ARRDDA>;3H-3MIM1C1"^ZV5\OE1U4':2/0&@#H+7Q-H-]
M9W%W::UIT]M;#,\T=TC)$/5B#@?C5V6]M8/(\VYAC^T.(X=\@'FL02 OJ< G
M ]*\Z4:)XN\?PMH7DW.F_P!D7%KJEQ;+^Z=9"HCC+#@L,,<=A5+P2;_6]>L-
M-OE??X/MI;:1W7Y9+EF:*-N>O[E-V?\ ;H ](7Q!HS:L=*75K$ZB.MH+A/-_
M[YSFEEUW2(+U+*75+)+MY?)6!IU#F3 .W;G.<,IQ[CUKQKPY;6]UH&F:%JOB
M>QL-4@OTDDL6T[_3%N5FW9W;\DL?X\8PU=WX6TRSE^('C6^EM(GN5O;=$E=
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
M[@$XH W\<YHK&L_%>BW^K-IEK>&6Y5W3Y87V%E^\HDQL)&#D YX-6-8UW3=
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
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !4<
M[2)!(\,8EE5240MMW'' SVSZU)4-W<I96<]U*',<,;2,$4LQ &3@#DGCI0!R
M$'B7Q'I_BW2-'\06&FB+5UF^SO8S.S0O&F\J^X#<,=QCFNIU234(M/D;2K:"
MXO<@1I/*8TY(!+$ G &3@#G&*\[\*^(M.\0>+$US5GN8M2D#6VFZ>UE/MM(B
M>2SE-OF/@9.< 8&:ZG5?&MMIVA:OJ45A?W#Z=<&U, MV#2R\8V\<I\P^;ZT
M1>'?$>KW'B?4?#FNVEFE[:V\=U'/9.QBDC<D8(;D,"/QK9\1:G/HWAZ_U&VL
MI;VXMX2\5M$I9I&[# YZ]?:N4^'U[IMS>7UQ)>RWGB'4 +B]D-E-#&BK@+%&
M70#:N<#G)R3].^H X"_\5:_HNB>(M1N[99!HMK"B>9"8UNYRH:20'^Y\P4 >
MAS3=/^(5[KFNZ#I&CV$$\T]E#?:O*S'99HZ*P48ZN<\ ^H]\:?Q0AEN/AGK\
M4,;RR-;$*B*6)Y'0"N \$V=_\.]>T7_1+B71/$UE;><1&S-:78C'WNX4DGKT
MS_LT >C7'Q$\'VLZPS^(;&.1I6AVM)R&4X(/ISQD\5=UWQ=X?\,K$=9U6VLS
M-S&LC99AZ@#)Q[UXJOAWS/A/\09I-(+:@^LRF)VM\RL@DC(V\9QRW3U-;'VA
M?"WQ$M-=\2:==SZ;<Z!!;VUPMJTPAD 7<A !VDX;_OKW- 'J<?BS0)DTUXM6
MM734V*6;*^1,PZ@'U&>E3)XBT>2XU*W34;<RZ8N^]7=S ,$Y;\ ?RKPV/PSJ
MUO\ "JYUV#3;BVN;3Q#_ &SIMFT9$B0Y5<;>H]<>B@UCZA8>)+.TDUFUL+Q[
MGQM#<P3P[&/D,UP"N[CC,9P/J: />Y_'GA6UMXKB?7;.**:W^U1L[XWQ;MNX
M>O/'K6II&LZ;KVG)?Z5>17=JY(66(Y&1U!]#[&O-)O#%O;?&'PI9&P%QI^GZ
M"84>2'<BLA8 G(QGO^-:7P?LI=/LO%,#6SV\0U^Y,*,A4;,*!M'IQVH U--\
M<^?XO\6:7?QP6UAH,<4GVG<<E60LQ;Z8[5IV/CGPOJ>K1Z79:Y93WTB;TA23
M)88SQV)QSCK7FE[87AU_XOL+2<K/IT8A/EG$A\EN%]?PJ'^P19Z;\));72C#
M.EQ$UR\<&&7<JEBY SR<DYH ]3C\:^&IO$!T*+6;5]4#%/LZMD[AU7/3(P>,
MYK.\/^+"VAZOJGB'5-&6WLKZ6#S[-V\N-%VX5RW\>3T'J*\_T.YFT;XBP:?X
M7>_N]/OM2DFU'3;[367["Q^]*LQ'3TY[#J36#<:/J3?#G4Y#IEU/!:^,GO+J
MV$1W2VX4 D+W&2/Y]J /2])^(4>O_%"+2-(OK2\T1](-T9(QEA,)-I!/4<8X
M([UT-CXZ\+:GK!TFRUVRGOLE1$DF=Q'4*>C'Z$UY9"O_  DOQ)U:_P##FD7=
MA;WGAF>WMYY+4VZS39P&'YJ,G^[69X/L(;V/PMH^IZIK,%_I5\DJ:8NB!/(D
M5\DM,%'RGJ23]1Q0![2OC7PT^J#3%UJT-Z9I+?R-_P PD09<'TQ[\543Q_X?
MU*UU(:'J46I7MG;O+]GM07=\<#:,?-\Q XXYKB_!6@61N?B+>ZII$DC/JEVJ
MN(,S/%ALB(D9R0QQCKFH_A?>7MKXG_L+3+BYU3PS;V3-%=7>GFWELW+?ZG<0
M-_J?TZ4 =OX9N_$USJ;PZPL:P6MC!'.RQ;1)>-\TA0]T52HSTSGT-:^J^(='
MT,J-4U&WM"Z-(HE?:64$ X]>648]Q6G7':S9?:/BGX9G>V\R."QO6$A3(C<F
M( Y['&?UH T/^$[\*A;-O[?L-MY_J#YP^;G;^'.1SCD8J[K'B/1M \K^U=1@
MM6ESY:NWS,!U( YP.YZ"O.+C1POP]^)2II^)KC4;QD A^:0 *5(XR1G)'XU/
MJ_VO2O'O]IWNJWNEVEUI,$,%Y%9"X7<K,7C8E&V$Y#=L_A0!W]YXFT/3]-M]
M0NM5M4M+G'D2^8")<C/R8^]QZ41^)=$FTB/58]4M6T^201+<"0;-Y;:%SV.>
M,&N#^TMX6T'P[::7>7,>E7,]T\VK7.FLTEOEBX41;1L#L2 2N,#IR*Q8;&XO
M? ^KQSV]S<K<>+89#]HM#&TT320$L8\# (R3QZYH ]5TGQ1H>N_:/[+U6UNO
MLV#-Y<@.P'H3[<'GI2Z3XFT77998M+U*WNWB 9A$V?E)QD>H]QQ7,ZM9P_\
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
M7!>'!I^L>(]%NO[?U.[NM.CD\JTDTL6ZPAH]K)(5C4+CC@GJ!BKGQ/FM[?\
MX12>ZM9+J"/7(W>*.+S6($4IR%[XZX'/'% '2V7BS0-1TV[U&SU:VFM+,$W,
MBOQ$ ,DL.HXYIL?B_P .S6U]<QZS9M!8L$N9?-&V,GH">F2>/KQ7GNL/_P )
M#)XZUK2+:X.G2>'OL8D,#I]JG D;*A@"VU6"YQ[5J>+]*GM_"7A-[&.:VL]-
MN[>:Y%K;"5H4$; .(\'=M9@2,'U[4 =G9>)M$U#3KC4+75+5[6VS]HE+A1#@
M9._/W>.>:S[SQ;977AR\U'0M4TQWMV16DNV81(68#Y\#<,@\>IQ7*QV&@:M8
M^)+^]UO5M3@N[6"WNYDT]HMJJS;&0)&-[*3DD X&,\50U/4M7UKP#XGM))9-
M5M;>2T6SU$6;0O= R*74KCDI@?,H .?8T >D:KXIT+0[N&UU35K6TGF&4CED
M )&<9/H,\9/%9'AGQA#/X T_Q!K][;6QG+*TA^16;S&50H[D@=!61)?VOA[X
M@^)I-:LKF6/5(+;[$8[1YQ.BH5>$;01G=D[3C.[-<K96&H6'A3P!?R&]TZTT
M][Q;J2*T$SVK.6",T95N.&7..-U 'K4/B;1+C2&U:+4[9K!7$;3A_E5RP4*?
M0Y(&#ZU!9^,?#FH)>O::S9S+9(9;@I(#Y:#JWNO'4<5Y[K&F6MYX$\37=E?7
MVL/J-[9&=IK+RE<K+$#M4(H8;0,D ]/K777=H8OBMHLT%N4A&CW,3.B84 21
M%5)''K@4 2>'/B'H'B'09M5%[!;);@M<I+*/W"[RH+'ISC(^M;NDZUINN6SW
M&F7D=S$C^6Y3^%L X(/(."#^->;:&VE7'PNG\/:TVH6DMC<.+KR;60O;O]I9
MXW'R$$9"MQD8Z\5UG@75]3U6WU$7TOVRWM[@1VFH_93;F[38"6*'N"2N1@''
M% &CJ7C#P[H]]]BU#6+2VN1MW1O)@IGIN_NY]\5-JGB;1-$?9J>IVUJYC\T+
M(^"RYQD#OSZ5YUXYUC4KH^+-'DDFLU^S&.SM+?3#,^H!H>7,F",9^7C&T+UK
M9TBQ9_B#H-S/:LWD^& %D>/[DGF1@C)Z-@GWQF@#K3XDT4:$-<.J6HTLKN%U
MY@\L\XZ^N>,=<\5BZ)XPAU_QM=V&G7EM=:7'IL5PKQ<D2F1U8$]N%'!KBGM)
MK+2X[N:RG;3=/\97%S<1)"S;8=SA9 H&2JLP;@>_:NC\-W5OJOQ3U?5+"SGC
MLYM*@07,ELT0N'$CY8;@">,#)_N^F* .LUCQ)HV@>7_:NHP6K2Y,:.WS,!U(
M4<D#N:2;Q-H=O86M_-JUFEG= M!.THV2 *6.&Z= 3^%<YXMUV]T[Q-9V@N&T
MRPEM'D.H1V#7+R2A@!"N 0O'S<@YZ"N4\.Z9-)H_@"&[LIF$.M7SR)/!M*8-
MP5++C"\X(]\8H ]*M?%OA^]T[[?;ZM:R6OGK;F4/PLK$ *?0DD=?6M!]0M(]
M0AT][B,7<T;2QPY^9D4@$X]!D?G7!7'APZ[KOQ"TQXVBCOH+/R92I"^:(VPX
M/<AE0_@*=\-[N[\47]]XKU*!X9U@BTN)'&"IC&Z<CV,K$?\  !0!T'B3Q'=Z
M=J6GZ+H]G%=ZQ?AWC6:0I%#$F-TCD G&2  .I-3:?J6KV5K>S>*DTRS@MU5U
MO+>X/E,ISG<' *D8'<@[JPO%#3>'_'NE>*I+6XN-,^Q2Z?=O;Q-*UON=760J
MH)*Y4@D#BJ7BS6H/%&A07.EV.H7FG:=J=I=7F;.11<0JY+A%8 R;<!B ,=*
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
M#ES@H1N VD9Y]JY?P/\ $>PN_#&B+J]Y<R7USB&2\:U<0F<L<(9 NP,>.,T
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
M4]*\00ZG9B<Q76EINFM7+GAAGD,".H*G'..*] \*OK$GA?3WU]0NJF+_ $@
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
MET_[6K>8-KQNR3-@/RV[)QDYH U?'WB4-X2\96=@]U;7VDV\6Z=&V<R ,"C
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
MR)$52P1,<$ C.>@Q0!TUCX\@N;W3XKS1M4TVWU-MEC=7:($F8@L%.UR4) )
M8#-5KSXE65J=3=-&U>XM=*N'@O[F*%/+@VGEN6!8=\*"0.2!55['Q-XEF\/V
MFJ:(FF0:7>17MS<?:DD$SQ [5B5><%CDEL8'K3QX9U3_ (0_QSI_D+]IU6YO
MI+1?,7YUDC"IDYP,GUZ4 ;-_XOBM]5&G6&EW^JSK;)=R_8_+Q'$Q(4_.Z[B=
MIP!D\5T=>;^)?#^K7=I9Q6&@2C5[>RCAM-9MM06$V[XY$@R&9 >=N&!R>!7:
MVD^K#56M;FSC-DELC"]649DFR0R[.H'0Y]Z ,7Q[;:C%X>U+6-/U[4-/DL+&
M698;<1&.1E4L"VY">V."*YO73J>B?#B+69_$>K7DD\FGRMOV Q@S1EPGEHK'
M()&#G(XKN?%=A<:IX/UK3[1 ]S=6,T,2D@;G9" ,G@<FL;7] U&_\ Z=I5O"
MK7D$EB70N  (Y(V?D\<!3]: +NE>,;?4-5N--N]-O]*NHK;[8JWRHOF09P7!
M5FQ@XR#@C(JM9>/;2\FT]WTK4K;3M2E$5CJ$R((IV()7@,74-CY2RC/%&L>'
M+O5/&C717982Z%<Z>\P896221"..O0$Y]JYWPSX1FL/[(LM2\'EY[!H\ZC_:
MFZ M'TE6,MNSP#M*C&: .NTGQ6NM:B\-GI.H-8K-+;C43Y?DEXR0PQOW@94@
M$K@FJ(^(-D2MT--U'^QFN1:C5MJ>07+[,XW;]F[Y=VW&?;FLVST/5QXWM]0L
MM$DT.$SROJ<B7RO!>J5(!$2G[Y;:=Q52.>M8^A^!9=*M(-%O_"3:DD$^%U :
MGMADCW[E=HRV0P&/E"D9'6@#U*]NDL;&XNY QC@B:5@O4A1DX_*N4L?B+97L
MFE2-I.JVNGZHZ16E_<1*L3R,,JN-Q89Z D8)Z$CFN@\1?\BSJO\ UYS?^@&O
M.M#L?$?B/PKX+TV?28K73[,V5[)?BY5EECB4,BJGW@Q^4'(P.<$T =3?>/[:
MUFU!K;1M4O[+37:.]O;5$,<+*,L &<,^W^+:#BK-YXSMX[VVL],TZ]U>:>S6
M_P 6?E@+;L<*^9'7.3G &3Q7/)IGBG1+'7]"L-%BOH-1NKF:UOS=HB1"<DD2
MJ?FRI)^Z#D8Z5%KGA.]@T33-*TW0YKJ^T_3DMK+6K:_6VD@D"[?FY#;,@-@;
M@<D8H W=0UUK'Q%J@@&IW5S!I$=R+!1'Y6"[@,,D'?P<Y.,#CFLFR\7W6K>
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
M5_8]D\ DNH'D,US%"P9%\LJ A.U<G<>^*WK/P[=V^I^++EY(2FL.C0 $Y7;
ML9W<<<@],\5TU% 'GEYX/UF3P5I/AUM-T'44MM/CMWDNY9$:"95V^9&0A)'3
M'W3QU]-G1Y]7M-;L?#V\7=GI^E1_;KZ5&WR7'"H <X)(5F/7&1SS7544 <OX
MV\/WOB"RL$M!:SK:W:SS6-X[+#=H%(V.0#W((R",CD5S2_#S5&T+Q+:*FCV4
MFK7-K/#!9AD@@$10LOW1S\AY Y)S@9KTVB@#G-5\.RZEXNL-39X_L<-A=6DR
M9(<F4IC'&,84]_2N67P;XN?P]I/AV:YT@6&E75LZ7"M(9;B**12H*[<(0H[%
MLD < YKTRB@"AKFE1:[H.H:3,Y2.\MW@9UZKN4C(^F<UR,?AOQ1JD>BZ=KLF
ME)I^EW$-P\UI)(TMVT7W 590$&0">6Z8%=[4,5W;3>9Y5Q%)Y<AB?8X.UQ_"
M?0\CCWH YFQT/6-.\7:Y<Q_89-)U9UF9FD831.L(CVA=NT@E0<Y&.>*HP^"]
M0C\!^&=",]M]ITNZM)IG#-L812!F"G&<X'&0/PKNJ* //+CP/>6>O:M=6>B^
M'-6M]2N/M0;5%*RV[E0&&1&^Y,C('&,FM^U\/7,'C.UUC_18[6+1_L!AA!7:
M_F*WRKC 3 P.?2NDI'=8T9W8*BC+,QP /4T 5]0%VVGSBQ6W:Z*_NUN<^63Z
M-CG%>5>(/#%[HO@?QMJ$]MI^G0WMDH73M.D9X4=2=TG*J S9 P%'0=37JMEJ
M%EJ=O]HL+RWNX,E?,@E$BY'49!QFIW1)$*.JLA&"&&0: .+M=!\1ZIKVBWNO
MRZ:MII >2+[&7+7,K)L#,K !  2< MR>M9FB> KS05ATU-!\+WUG#,3'J%S&
M1<B(ONPR^6=S@' .\=!7I-% '%6^A^*-#U?5AHCZ5+I^IWAO-]XT@DMI&"A\
M*HPX^7(^9>M1ZIX+U"]T[QQ;QSVP?7F4VQ9FPF(43Y^..5/3/%=S10!SFH>'
MKB\\3^']1WQ?9M.MKJ&=23N8RK&!MX_V#G)':L[PMHOBKP]:6>A-+I4FD699
M$NPTAN'BYVKLP%##(!.XCCI7:44 >5:;\.-8MYM%$]MH0ETW44NY]44NUW?
M,2=Q*94X/(W,"0.@%;-[X)U&YTKQ!:I/:A]1UN'48B6;"QHT)(;C[W[INF1R
M.:[RB@#S/QCHG]I_%#0K2WF BOX-^JP </!;2+)&3]7.SZ&O3#TINQ/,\S:N
M_&W=CG'IFE5E90RD$'H0>M 'G=EX(US1]'\*2V$UA+JVAI/%)%,[K#/'+]X!
MPI((PI!V^M)/X U?6+#Q2NL7=@+K6);:>$P(S1Q/"%VJP;[R_* 3W&3@=*]!
MCN8)I98HIHWDA(65%8$H2,@,.W!!YJ6@#C]!T"]M;J22Y\.^&=-_<-&)M-!,
MCL<=S&NU>O&3VJM%X,U!/ OAC0S/;?:=*NK.:=PS;&$3AF"G&2<#C('X5W-%
M '+6FBZQIWCS4]3@^Q2Z7JBPF??(RS0M'&5PJA2&!^7J1CFLO2O!&HV.D>#[
M22>U,FBWDEQ<%6;#JRR@!>.3^\'7'>N\#*20""1U&>E+0!PNL> Y]:/C".:Y
MACBUHVK6S8+F-H57&]2,$;E' )R*GT7PU=)-(NH>'/#.GQO;O"\^F F5RPP<
M9C7:,9XR:[.B@#S1?!WB^30=&\/SW.D"PTBZMI$G5I#+<Q0R*5!7;A"%'8MD
M@=!S7<^(M/EU?PSJVFP,BS7EG-;QLY(4,Z%03CMDUI4V21(8VDD=4C0%F9C@
M*!U)- '+R>&;QKOP=*)8-NBAOM')R^;<Q_)QSR>^.*SM6\!7&L1>+HI;BW1=
M7N+:XM6*EPC0I&!O4C!!9.0,\&NSLK^SU*V%S8W<%U Q($L$@=21UY'%6* .
M,T;P[?0O<&X\.^&-,+6SQ+-IH)D9V&.OEKM7KQR>E,B\'WZ>%_!NF&:V\[1+
MFVFN&W-M<1QLK!..3EAC.*[:HEN8'N7MEGC:>-0[Q!P653G!(Z@'!_(T <CJ
MWA&_OKKQE+%-;A=;TN.SMPS-\CJDJDOQP,R#IGO5>V\,^);V]T"#6YM,_L[1
M)1.DEJ7\RZD5"B%E880 ,2<%LGTKNZ* /-M/\ WFC/+8PZ#X7U&S-R\L5[?1
MG[0B.Y;:R^6=Y&2 =PX Z5U>EZ)<6/C#7]7D>(V^HI:K$JD[E\I6#;N,?Q#&
M":WJ* .&@\+ZQ<>-[+7+JTT>P-LTGGW.GR2>;?*RE5612H  R#R6.0,5L^+]
M!NM=TZS-A/%#J&GWD5]:M,"8V=,_*^.=I#$<>M=!10!R>F:)K5YXKC\0Z_\
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
MVNO^)=:C4]2GMM/N+R0I"MO%D&:0YY)*G &,[EK0N_A]+-\/M)\.V^K&WO\
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
M-NA638 IX/)^8\=.#S4G_"9ZAK T"TT"UM4OM5T_^TI'O"S1VT.%'(7!8EG
M'(Z$UL6GALVVI>)+LW0;^V60A?+QY6V$1^O/3/:L>+P+>Z;:>'YM(U:*#5-(
ML?L!EFMB\5S%A<AD# CE000W'O0!5D\>:K807<>I65HMUI6J6UKJ3PEC']GF
MQMF3/(/S+D'.,&K"?$)(_%/B73[JW1+#2K5IX;@$@S&)5,P_X"70<>]6HO P
MFT'Q!::I?"[O]=!^UW2P[%4[-B!$R<! !C))SWK(N_A8;W0-(L)]89KJVN99
M;ZZ\GF\29]TR$9^7=A1GG&WI0!8C\5>*;N_T72K:PTV._O\ 2/[0G:<N$MSN
M4$;0<M]X#&1R<YP*WO"&NW6O:5</?P10WUG>365RL))C+QM@LN><'@\U.V@E
MO&D'B 7 "Q:=)8^1LZ[I$?=NS_L8QCO1X=T(Z$FIJ;@3?;=1GO>$V[/,.=O4
MYQZT <7+K<_AV_\ B;J\$:2RV<EM*D<F=I(MH^#BMRS\1>(;;Q3I>FZY9Z>D
M&K0S26XM'=G@>,!BCD\-\IZ@#D4FJ>!6U&V\7PC4!'_PD/EX/DY\C9$J>OS9
MVY[=:U]1\/M?>(=#U5;H1_V6LX\O9GS/,0+USQC&>^: ,3PAXIU#Q/\ :)+E
M])2)5D6;34WB[M6#8"R GG(SGA?;-96A>)[T^&/!^F>'M-TZUO-5M9)PDF_[
M/:Q1X+' .XY+  9[GFMRS\)ZI)XGM=;UG4[*XGL[>6")K2Q,#2AP 3*2[;L8
MX48&3FJ<'@&]TW2O#2Z7J\46J:'"\"3S6Q>*>-P-RL@8$=%(PW&* ,&Q\3W?
MA=O'>KZM;6HOTO[6'RHYB(6D:&-%.\C*J<ACGD#/7%;.B>/Y;O6I]+FOM$U)
M_L$EY%/I,A9$*$ QN"Q(^\"#D9P>!4R_#R:XT_78M1UM[B[U2YANUND@"&":
M(+M*KD@@%!@>G!)/-;=CIWB)TN(]9U;3YXI(&B1+2Q:([C_&Q:1L\9X&!S0!
MS%KXT\4?\("WBR\TW3E@EMH9+>"(R,Z;F4-)(1GY "7P.0!@GTZ[PUJ%UJ>E
M?:KF^TN^5W_=7&F%O+=<#J"3@YSW/;Z57L-"U'1_!FGZ+INI0QWEE!%"MS-;
M;T?8 #E-P.#CLV13?"OAJ70&U.YN;B"6[U*X%Q,MK!Y,*$*%PB9)[9))R2:
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
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !114<\7GP21%W3>I7=&
MVUER,9![&@"2BO-(M%L]&^*NBV?AMKE"EM/+K*FYDE5HRN(C)N8_.7Y'? )Z
M5W.OVUM=Z)<Q7BW;VP7?)'9EQ*X4YVC9\QSC&!USB@#2HKS7X>26@\8^(8=+
M2ZT_34B@V:9>EUE$GS;I1&YRBG@>Y'TKM_$6FW6L>'K_ $ZSOC8W%S"8EN0N
MXQYX) R.V>] %Z.Y@F*B*>-RR;UVN#E?4>WO4M>9^,] ?P[X&\8ZA!=G,UI%
M#:K&I0VL$:A5C4YZ9+'M]ZN9\">+IO!?ASQ%I^K7,D[65C%JUB9W+&1)HUP@
M)["1E7ZL: /<J*\*^%HUS1_$WB6*ZEGU#41I,%X8+BXVAII%\S:2>%Y;;GM7
M2Z5\1];F\6P>'KRVT&XN;VVFDM6TV_,JQR(I8)*<<9QU'ZT >H45XSX!\<>(
M[7PYXFUGQ&B7.F:=<W),OV@M*LJ[,0J",;.>#ZFM/PY\5;S4/$.BV&I0Z*8=
M91C!_9M]YTMJP7<$F7'!(XX[_2@#U,G R>E("& (((/0BO);'QWKOB[P[K]Q
M<>'+4:#:VM[#=2FY8-*R(Q"J!R 1@$^IXZ5<TGQ!J&F_#?PS-H-AHUE:SVQ+
M/JFH&.&#!X4$Y9B<GZ8H ]+FN(;=0T\L<2E@H+L%!)Z#GO4E>$>*_&#^-?AI
MIM]-;16]Q;>)8;2989-\;,H)W(W<$,*['XVM,/ "I!<2P-+?P1EXF*G!;VH
M]&HKY[NO$NICPGI_AC5;F5=<T/Q':VLS[R&FA)?8^>I! Q] I[UZ!J7CCQ%>
M^)=9TGPGHUE=IHJ*;R:\G9-[L"0D8 Z\$9/&1],@'HE%>5R?%N[O--\)W.BZ
M(EU/KS7$1MI)]ABECP,;L8V[CDGT'K6MX6^(C7)UVV\61V.CW>C7$<,\@G_<
ML),[""W^Z?TH [ZBO%_BMK>BZGJ/@F=M8#:#/=7"W,]I<D(5&P'YD/;FL[PW
MXMO?#&A^-]9T>6[U3PU82P#2VOW<AF9PKA6/.T;OY>IH ]YJ.&>&Y0O!+'*@
M)7<C!AD=1Q7)77C.X@\8>%=$6TB,6M6TLTDA8YC*Q[P!ZUY3X+\8^(_"/@*]
MU.UT&VNM#M-3D-U.]QME;<Z@[%'3&1R<]?8T ?08N(3.T FC,RKN:/<-P'J1
MZ4\$, 5((/0BO&;J[MKCXE^,[TQ?:+23PGYOEEBOF(44XR.1D>E6M%\:W5EX
M<\'^'_"NB6S:CJ5FTZ0W%P_DV\2DY)8Y8Y(- 'KM%<_+<ZI-X%O9]5M$L=1^
MQS^;%#+O52 P!5O0@!O49Q7FGACQQJ7AKX7>"%M;#^U+K5;B:V"23;6+>:^W
MYC[X&3T% 'M=0V]W;78<VUQ%,$;:WEN&VGT..AKRJ\\<^)[[0?&VC7>DV=IK
MFD6F]C#<$Q^2\9)93UW*O(]2>U8_@O7KKP9\/M!BLO#UDVL:_.L5D(YB!<
M9EF..""V,#M0![G17F2_$C6=./B33==TFTAUG2-/.H1?9IF:"XCP.Y&1R1^O
M3%59OB?XELO!B^*+[PW;16=S-;+91"XW22I)NW$^AX4K_O<T >KT5Y4GQ \<
MGQ+<>&6\*6 UAK<7< %[^ZCBZ'>>YSA>,<^U:.E_$'5M=^']MKMAIVG07C7#
M6]T+^\\FWM]N<N6QDC[O Y^;VH ]$I"RKC<0,G R>IKQR\^(^O:QX$\6BSAL
M(M4T<JDMU8W9:(Q,K'S(FQR1MZ?_ *JAO=6OKKP/X$NO%6DV]W-<:K9+;2+=
MON*M&")GQCYR<Y4Y% 'M5%>::A\0/$=YJFOQ^&-$LKJQT!BEW+=SLCRNH)98
MP!U&#UJ*X^*E]>?\(JOA_1([N;Q!;S/'%-/L\J2/@@MC!4$,2>I XH ]-FFB
MMXFEFD2.-1EG=@ ![DT)-%*\B1RH[1G:X5@2IQG!]."*\ZT?4KSXEZ)J_A_6
M[:+3KG3]06WU&. F1)HU.[:I)^7<5P3SQ]>.PT#04T4ZA,THFN]0NGN9Y0NT
M<X"J!V"H%'O@GO0!L45Y[?\ CGQ!&GB.[L=%LI;#0+ATN'FN65YD1%=@@"G#
M!23D\= ,\XOZ?XMUA_$&CVNIZ5;6UEK<4CV31W!>6,HF_$HQMR5Y^4G!&.>M
M '9T5YC-\5PD$VK(='.DQ7)A-NU^!>O&'V&41XQURP4\D#.:V_%_BK5_#8NK
MN.+1!9VT7G+'=7QCN+D!<L$7;@'J!R<D=J .SHKC;WQ9JL^OV&DZ%IMM.][I
MG]H+-=S&-8EW ?, "3]X# [GTJE+\0KJ+PM#?36-K;7_ /:K:3<F><BVMI%9
M@TC/C.SY1C@<L!GO0!W]%4M)FO+C38I;\6GVALDFTD,D3#/!4D \C!_J:X'2
M/%4NF^$?#":'H<).J7EQ;1VK73!8R&E;=O;)QE<GKP3@=!0!Z74-O=6]VA>V
MGBF16*EHW# $=N.]>>:YXDUZZ\(>-=-GM+&WU;2K-C+)#.YB:&2%F#H=NX.
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
M%\(_M=D8582,B%%(?JO&,COBJ:>!H$\$67AG[=(8K6:*83[!N8I,)<8]R,4
M<YJ_C_4&U77(]/U"SLUTF4P16TUA+.UY(JAFRZD!!D[1C)[GTK0G\2>)-8U[
M2=,T46FGK?:,NI2O>0M(]N2P&W:"N3\P&#C')]JU9?"=_;:M?WNAZ_)IL>H2
M":Y@-JDR^;M"ETW?=) &>HXZ5HQ^'PGBB#77NY)9X].-@590-^75RY(QSE>@
M&.: -A=P0;B"V.2!@9KR\^+?&!\(WWBL2:4+/3KB=6L_(<O<11S,K'?N^1MH
MX&#DC)ZX'J->5^'? FIZGX:N+#4=6O[/3+K4+F2YTUX%!=?M#D!7(W(C *3U
MSDD8S0!O?VSX@\1Z]JMIX?O+&PM-,$2&6YMFF:XE=!)C ==J@,HSR<YK*F\?
M:G<^&] U',&DP7DD\.HW[VS7$5K)$Q0# (PK,K89C@ 5T%YX0NUUJ]U/0]=F
MTE[]$6[C6W29'*+M5U#?=;;@=P<#BGIX3NM,T6PTK0-:DT^WM8WC<2VZ7'G;
MCDNV['S9+'(X^8\4 4'U"YN/%NBVT4FE3W=SHMS*FIQVV\!PT8!3YL^62V2N
M[GCFN3TR\UBR^">JZGJ-Q8:I @N#%;7-F6&X7+@[R7.\9Z# QQUQ7=:-X'L]
M#N]&FM;F9DTNQELT1P"9/,96+$CH<KT QS5(?#Y_^$8U?PX=;F;2[TR>1$8%
MW6V^0R-\W5^2<9Q0!+<^+Y-$USQ'::J(EM;'3TU*R*#:7A *NIYY(=0/^!"L
M2Z\;:Q!<:1H]]>V>EZA+IBW]]<FRDG"L[$+$D:G@C#9)/;WKH_%?@BS\5WNF
M7-Q<RP?8W_>+&!BXB+*QB;_9)13^?K4^L^&9KW7(=;TO5'TW4HX#:N_DK,DL
M6[<%9#CH<D$$=30!Q\^NW7B"Q\&W5["L=Q'XE\AV2-D279',!(@;D*PP<'IF
MKX\:ZM_PCC6Q2V_X25=8_L?;L/EER^1)MSG;Y/S]>U=%<>&9[^'1O[0U66YN
M--OQ>^<843S2%=0NU< ##^YX[UAP>&S<?&:\UO[/<1VEK91G<ZD1S73!DWIV
M)6+Y21ZT =S-,EO;R32'"1J78CT R:\W;Q;XI@\(0^.)I-._LJ39,^EK;MYB
MV[N ")=_+@$'&W'45Z6Z+(C(X#*PP0>XKAHOATZ6$.B2Z_=3>&X95=-.:%-Q
M56WK&TO4H"!QC.!C- $RZMXDU/Q[JFD6$]A;:;IGV:2226%I))!(N2@^8 9P
MWS=N.#75:E</::7=W,>-\4+R+GID*2*IV&A1V/B+5]86=G?4E@#1E<!/*4J,
M'OG=5^\MA>6-Q:LQ431M&6';(QG]: //=-\4^*DL?"FM:G+ICV.MRP6[VD$#
M!XO-0E9!(6Y.1RNW SC)QFJ>I?$746N-;N-/O;.%=+N9;>'3I+&65[PQ<-F1
M3A"Q!"X!QQFNO_X0Z'^P?#FE?;)-FB36TJ2;!F4PKM ([9S4/_"(ZA8W]_+H
M?B&73K6_G:YFMS:QS;96^\T;-]W.,X(89H Q-?\ &VH)J%Y!:ZEINBI::5%J
M"+J,6Y[EG#G8!O7 7: <9.6JW<>(-6A\-:%<WWB#2M)N[VW\Z;S[%GD9B P1
M(O,S\H.&.3T[9K&U[3)U\>:K>7::];QO#;"TFTW3ENUG9%.6;=&X1@3C'R#
MSGFMK3_#GB#5+;1=?OM3.F>(XK)[6Y(MTE5HV<-RN<*_RJ21QG(P10!SNI^(
M-=\2^#?"^IV]_:VD[Z[':S&.!RDCK.45P-X(3Y<E#USC(Q6_JE[K-KXH:SM8
MM-N-:3PY-<1W?V3:SRK*@"#YB0A)^[D\X-7!\/XX_"<6BQ:M<B:WU ZC!>O&
MK.LOFF0%EZ-R2#TS[5JVOAV2+Q%:ZW=7[7-W#IS6+_N@@DRZN7P.G*XQ0!C6
MWC9]5N?#(TX1>3?6,FI7Y*EC#"J@;1SP3(VW_@)KG=-^)&IWJ:9JBW%K-#?7
M,<;:3%82^9#"[[0PFSAF4$,>,=<>M==X9\#67AG4=5NXKB2X%\Q$<4BC;;1%
MW<Q)_L[I&/Y4W1O"6I:$+>RL?$DZZ-;R;HK-[6-G5-V?+\P\[>W3..] ',#6
M[SP[?>*]5@6-K2'Q' +_ 'J21;M#$K,O/!4LI^@-=EI>M76J>,-9LXA%_9FF
MI%"7"Y9[AAO89SC"J4&,=35>[\-VMEI/BR299[V+5O,GEMXX\O\ ZD)L0#))
M.WCW-8N@Z#KFA?"6.QLA+_PD5\F^69V :*:8C+L3_<4C/?Y,"@#T.O/M%37W
M^+'B5&U:W-G%':.\!M6.8V$NU5/F85ACEL'=Z"N]MXWAMHHY)3*Z(%:1A@N0
M.2?K6&?#4T7C&77[/5)+=+F*.*\M3"KK,(]VPACROWCTH \[\/ZMXD\/> %U
MN&;3SI-KJ4R-9M"QEFC>[96;S-P"L"QP-I'')YQ6WK?CJ]_X2/6-.L=2L]/7
M2]B*)[&6X-U*4#D$H0$49 [G.36Z? T!\"R^%_MTGE23--Y^P;AF?SL8^O%2
M77A2]CUV]U71-<DTU[_8;N)K9)D=E7:'4'&UMN >H.!Q0!K>'M4DUKP[IVIR
MVSVTMU;I*\#@@QL1R.?>N+USQ+<:)>>/;RSL[%;G3;.SE27R</*65^)&!RP&
M./3->@VT4D-I#%+.]Q(B!7F< -(0.6(  !/7@ 5S.K^!X-7'B7?>R1_V[;PP
M/A ?*$8(!'/.=U %.+5O%%AXGTW3-4N--E76+:X>$6\#+]DEC4, 26/F+ANN
M%.1VJO8^-M1U'1?#4444":W?W[6=[$5)6'R2WV@@9XX7CG^-:ZB]T&.]\0:/
MJS3LKZ8LRK&%R'\Q0IR>V,5G:;X(L],\:W_B2.YE=KH,4M6 V0.X3S'7W;RU
MS^- ''7?Q*U)TU'4[&ZM/*L[J2&'2C82R27*1OM8F4'"LV"0 "!QG-;VH>*-
M2C\:_P!F2:A9Z/:%86L_MMHS"_+#+J)-RJK#[H7DYYYZ5>A\(:CIMS=+HOB.
M:PT^ZN'N6MC:QRF-W.7\MF^Z"<G!!QFI/$/A*\\1R36UUKLHT>>2-Y+(6T98
M;"IPLG4 E<]">3@B@#'T)-??XJ^)U?5K=K.$6C/ ;5N499-JJ?,PI&.6P=WH
M*R8O&7C,^%=/\3DZ1);W%X+06/E.I<-*8@YDW':=V. IX[YKMQX:FA\8S:]9
MZI)!'=QQ1WEH85=9O+#!"&/*_>.<=:IQ^!H(_!]CX=^VR&.TNTNA-L&6*S^=
MC'UXH HP^)]8T'6-9L/$,MI>I9Z3_:T<MI 8<*"P>,@LV>5X.?K65HGCS5;J
M_P!#>:[M+V/5)%CGLK:PFC:S#J2K"5B0X!P&R!UR*[*[\+VM]XAN=4N9&D2Y
MTPZ;+;D?*8RY8G/7G<1571/#6KZ,;2V_X2:>XTRT4)%;O:1AV0#"J\G4XXY
M!..M '+W7BSQ<-&\1:]!+I:66AW]S"+9X'9[F.*0@Y?< AV], Y([=*M[M=N
M/C /LVK6\=F^D1S^0]JS?NO.P5_U@&\\_/CH<8XK;?P5"_AC7]$^V2!-8N+F
M=Y=@S&9CD@#OBI;KPM,WB2PUNQU62TF@M5LYT\E9%GA#A\<_=.<\CUH W-0O
M(].TVZOI@3%;0O,X'7"@D_RKS\^)O%=AX>TSQ;?RZ:^F7CV[3:=%;L'@AF95
M4K+O^9AO7(*@'G&*]$N((KJVEMYT#Q2H4=3T92,$?E7&6OP^F2WL-,O/$-U>
M:%82I);V+PHI/EG,:R2#EU4@<8&<#- #],U;Q)K'C+6;2*>PM])TJ]2)MT+/
M+.K1(Q7.X!<;B=W.<@8XYV_%M[J6F>%=1O\ 2$CDO;6(SI'(I(<+\S+@'J5!
M ]\4_2="CTG4M8O4G:1M3N5N&4K@1D1JF!Z_=S^-:K*&4JP!!&"#WH XG4/'
M>R^BGL%2;2[?1)-9O&QEF0C]RBG. 3ASSG@54/B#Q7I-GHFMZM/IL]CJ5Q!#
M/906[(UJ)B I60N=^"1G(&><5I^&_A[IOA[2M6TYIY;V#4LQ.)>"EOM*K$,=
ME#-S[U'9^!+E3IEMJ7B&ZU#3-+E26TM'@1"63_5^8XY?;VZ9(!.: ,_PJFO-
MX^\6K=:K;36<-S$)8/LK#<#;J5V$R$(!D9X.<'IGBCI'B767\.>!K71K;2K.
M768Y@Z^05A@"(6RB*1Z$XSR>XKL+?PS-9^+;[6K;5)$MM0V-=61A5@[K'L5@
M_5> #CU%5=*\#P:7%X7C6]DD_L!95C)0#SO,0H<^F,YH Q)_&FMZ/H?B>._-
ME<:CHMU! MT(VCA9)O+*R.FXD;0Y) /;\:O^%=;UC4/%VI:=/K.FZIIUG;12
M"XL[7;F20M\I82, 0%SCG(8=.]+QMX5N%T_6;RR6ZN9-4U"RGG6WC#26Z0[
M7C7^-@$S@_D<5-X+&IP:_+;6K:I)X>%J69]3T]+1UN-PP$"QQEAMW9)7' YH
M W?&.N7>AZ1;G3XXGU"^O(;&V\[/EK)(V-S8Y( R<>U<DESJVB?$RXN]?N;6
M]6T\-SSK-:PF$NBRHQ!0LV",'H>>*[;Q+X?B\2:2+-[B6VECFCN+>YBP6AE1
MMRL >#SV/8FLJR\%2#7)M7UC69M4GGL)+"6-X5BC\MF4X55Z=#GJ3NZ\ 4 <
MWHOC_5;N[T.>2ZM+R/5)DCFT^WL)D:S5P2K"4G#[3@-D <DBMSP_JWB7Q*YU
MFTNM.M](^VR01V<ENS220QR%&<R!OE<[6(&TCIGUJ[HGAC5M$%I:)XFGFTJT
M 2*V>UC\PQ@85&D[@#'( /'6HM/\'7FDW[C3O$-U;Z0]V;LZ>((SAF;>R"0C
M(0MG(QGD\T 8'_"37^G^'=4NM/L[2U5?$=Q:7-Q!9LZP0AR&G>-#EVX&3[Y/
M2M"[U@RV_@^9KG2=:^UZMY2WL5N-H7RY2&0;FV.-H!.?7I6K!X6O=.L[N+2=
M;DM)KG4IK]I&MDD4^823&5/4#/4$'BJ]GX"M[2WTQ3?RR36FJOJLLIC5?.E=
M7##:.%7Y^@]* ,=O$WBK4/#^J>*],FTV+3;)[@P6$UNS/<10LRL6D#C:QV-@
M!2!QG-7)O$>O:UXFL]+T*:RL[6ZT:+4C<74#2O'N<C 4,H)(V]2,<]:DF^'T
MQM[_ $RU\0W5KH-_+))/8)"A8"0YD1)#RJL2>,'&3@UNV_ARWM?$RZS#(4":
M<NGI;A?E5%<L#G\<8H Y"3QOK9\'V-]*MO:S#49K'4KY+9YXK81LZF01@YPQ
M51DG"[N:[C0KI[S1;:X?4+34#(I(NK1=L4HR<$#<V.,9Y/.:Q[;PI?Z9IK6V
MD:]):.][<73N]JDJOYKERI4^A/!!%:7AK0(?#6B1Z;#,\V'DEDE<!2[NQ=C@
M< 9)P!T% &/>ZKKNK>+;[0M#NK.PCTVWBEN;FXMS.SO)N*HJ[E &%))SWKD/
M$.KZUXE\-:*7FL[2\M?$T6GWB"!I(WG2<*KKE@=G&2IZYQD8S7<:GX5NIM?D
MUO1M:DTN\N(%@N1Y"S1S*I)4E6Z,,D9ST[5$G@6SBT33M-CNYR;34H]3DN)
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
M+%)@':P4D'!XZUQ\LGBVWUSP[9_\)0S#7H93<$V<>+8HBR9@&..,K\Y;UYH
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
MHOT;S-SR3#<2TC')8DL2:Z&LV^UNVT_6=*TN5)3/J32K"R@;5,:%SNYXX'&
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
MT:-FSG"XSC))"DD ]JU;#6[;4=6U73H4E$VF21Q3%P K%XPXV\\\,.N.:TJ
M./3X<:0F+<7>I'21/YXTDW'^BAMV[&W&[;NYV[MN>U7=6\&6.JZRVJ?;=1LY
MY81;W(L[CRUN(P20K\9XR>00>>M='4$5[:SW%S;Q7$<D]L5$\:,"T98;@&';
M(.10!B:?X*TK3(M"BMS<!-%:5K0%P?\ 6*RMNXYX8XZ5F7WPPT6_@OK22]U6
M/3KR1YGL(KK; LC')95QGKS@DKGG%:5YXRL;70]/U-+2_G_M"86]K:I!LFDD
M.[C:Y7;PK')(X%;UM,;BUAG:&2!I$#F*4 .F1G:V"1D=.": ):*** "BBB@
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
MTL-1OHEDL+>PEARLS1RI*SH59&7!'"L,@CKCO0!QZ:MJT:OX976+S[,?$_\
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
M-Y;9_>--(0,$8^ZJ@D<]6H Z2U@^RVD-OYDDOE1JGF2-N9L#&23U)]:EHHH
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
M0""5&!P#7<:#;6%K;7:Z??O>(]W*\K/<>=LD+?,F>P!XV]J -6BBB@ HHHH
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
MX^R*%M_-MU;RE'0+D<#@<5JT4 9MQX?T:[TH:5<:79RZ>IW+;/"IC!SG(7&
M<D_G4\&EV%M+YL%E;Q2>0MON2, ^4N=J?[HR<#IS5NB@#)TWPQH.CW<EWIFC
M6%G<2 AI8+=48CTR!T]JM?V3IQM;JU^PV_V>[9VN(O*&V8O]XL.Y/?/6KE%
M#!%&L0B"*(PNT)CC'3&/2JT.D:;;_8_)L+:/[$A2UVQ >0I !"?W00 ./2KE
M% %1M*T]EO%:QMF6].;H&)2)^ OS\?-P .>PJG:^%O#]C82V-KHNGPVDS*\L
M*6ZA793E2PQR00",]*UZ* ,V_P##^C:K>07>H:597=S;_P"IEG@5V3G/!(]>
M:2Y\.:+>:6FEW.DV4MA&=R6SP*8U//(7& >3^=:=% %&VT72[*":"UTVTAAF
M4)+''"JJZ@;0" ,$ <8]*@TKPQH.ASR3Z5H]C92R#:TEO J,1G.,@=/:M6B@
M"EJFCZ;K=J+75+"VO;<,'$=Q$'4,.AP>_6I(-/L[6XDGM[6&*:1$C=T0*65,
M[02.PR<#MFK-% &9/X=T6YTI-*GTFRDT]#E+9H%,:G).0N, Y)_.I],TG3M&
MM/LNF6-M9V^XMY=O$$4D]20.IX'-7** (([.UBO)KN.WB2YG55EE5 &<+G:"
M>IQDX^M4+3PMH%AJ;ZE::+I\%\Y)-Q%;JKY/7D#OW]:UJ* *4NCZ9.ETDNGV
MLB7;J]RK1*1,RXP6XY(VKC/H*@U7PWH>N212:MI%C?21<(UQ KE1Z D=/:M2
MB@"I=Z7I]_IQTZ[L;:>Q(53;R1!H\ @@;3QQ@8^E#:98/?P7[65NUW;H8X9S
M&-\:GJ%;J![5;HH I3:/IERMXL^GVL@O=OVH/$I\_: !OX^;   SZ4Z[TZVO
M'25XD%S$CI#<!1YD.\88H>V<#\JMT4 ><6?PWO5M=*TZ[N-'^R:;/%,MU;6!
M2[F,;;AERQ"EB/F(SG)Z9KT"ZL[:]1$NK>*=$D65%D0,%=3E6&>X(R#4]% %
M";1-*N-6AU6;3K634(%VQ731*9$'/ ;&1U/YFJQ\)^'6U;^U3H>G'4-_F?:3
M;)OW_P![./O>_6MBB@"K_9EALO$^QV^V])-T/+&)LKM._P#O?* .>U!TVQ)M
M";2#-G_Q['RQ^Y^7;\G]WY3CCM5JB@#*LO#.A:;J$FH6.CV-M>29WSPVZJYS
MUY []_6KMI86FGI(EG:PVZ22-*ZQ(%#.QRS''4GN:L44 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
&4444 ?_9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>15
<FILENAME>a2024insidertradingpolic002.jpg
<TEXT>
begin 644 a2024insidertradingpolic002.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBFR2)%&TDC!40%F)[ 4 .HJKIVIV.KV:WFG7<-U;.2%EA<,K8X."*M4 %%
M0W=Y;6%J]U>7$5O;QX+RRN$5><<D\#DTZ>9+>"2>3=LC4LVU2QP/0#D_A0!)
M15;3]0M=5T^WO[&836MP@DBD (#*>AYYJS0 45%<W,%E:RW5U,D-O"ADDDD;
M"HH&22>P K%;QOX6569M?TX*JAF)G4  ]"?8T ;]%%% !15+5=6LM$TZ2_U&
M8PVL>-\FQF"Y..=H.![U/]LMOMWV+[1%]K\OS?(WC?LSC=MZXSQF@":BBB@
MHJKJ.I6.DV;7FHW4-K;(0&EF8*HSP,DU%8:WI>J2R16&HVMS+$ 9(XI0S(#T
M)'4"@"_103@$^E9EKXATF\L$OHKZ(6SSFV5Y<QYEW;-F&P=V[C'K0!IT444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !113)94@A>61@J(I9B>P'6@
M!7=(T+NP51R23@"L>;QAX:MW*3:]IJ..H-TF1^M?-GCSQ[J7BO6)P+F2/3(W
M98($.%*YX+>I/6N-H'8^P?\ A-_"W_0Q:7_X%)_C0/&WA8G \0Z7G_KZ3_&O
MCZB@+'VG9ZKIVHC-E?6UR/6&57_D:N5\2V]S/:RB6WFDAD4Y#QL5(_$5](_"
M'QK=>)]#N+;4YA)>V) ,AX+QGH3[CD?E0%CTAF5%+,P"CJ2>E8\_B[PY;.4G
MU[38W'!5KI 1^M?.GQ$^(.H>)]:N+>WN9(M)A<I#"AP'QP6;'7-<)0%C[!_X
M3?PM_P!#%I?_ (%)_C1_PF_A;_H8M+_\"D_QKX^HH"Q]D6WBKP_>R".VUO3Y
MG/14N4)/X9K6!!&0<BOB$'!R*]0^%/Q!O]*UZUT:_N7FTZ[<1()&R87/0@GM
MGC% 6/H^J%]KFE:8<7^I6EL?2:94/ZFO._C%X[NO#EG;Z3I<OE7MVA=Y1]Z.
M/../0DYY]J^=YIY;B5I9Y7DD8Y+NQ)/XF@+'U[_PF_A;_H8M+_\  I/\:/\
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
MON;)<E> ,#"]_G?..* .FB1HXD1Y&D95 +L "Q]3@ ?E3Z** "BBB@ HHHH
M**** "BBB@ HHHH **** "L'QO,UOX%UV5#AA8S8/IE"*WJYSQ__ ,D_U_\
MZ\9?_030!\AU[!\*_AAIGB/1VUK6?-DC:1HX8%;:"!U8]^O\J\?KZF^$  ^&
MVFX]9/\ T,T#8_\ X5)X+_Z! _[^M_C3)/A#X+DC91I10D?>65LC]:[FB@1\
MG>)_ 6K:3XEOK'3],U"ZLXI,0S+ S;E(R.0,'KBNK^%NG:QHC>))KO3[NU0Z
M5*5::)D!8<C!(Z]:^AJR_$O_ "*VK_\ 7G-_Z :!W/C0\FO5_A3\-+#Q393:
MOK'FM;))Y<,*-M#D=23UQTKRBOIOX*#_ (MO;?\ 7>7_ -"H!EW_ (5)X+_Z
M! _[^M_C0?A)X+((_LD#_MJW^-=O10(^:/BK\/;7P=/:WFFO(;&Z8IY<AR8W
M'/!]"/Y5Y]92-#?VTJ'#)*K ^A!%>_?'[_D5--_Z_/\ V1J^?K?_ (^8O]\?
MSH&CN_C)<O<_$&;>20EO$J^P*Y_F36+X!\.P^*?&-EI=R6%N^YY=IP=J@G'\
MA6I\6_\ D?[G_KA#_P"BQ5SX)?\ )1H?^O:7^0H ]SB^'7@^&-4'AZP( ZM%
MN/YFG_\ "O\ PA_T+NG?]^!71MPA^E?*,_Q,\9K/(JZ_<@!B ,+Z_2@1ZU\0
M_A3I]]H@E\,Z1%#J4<@PD)$:NIZYSQQUKRX?"'QN"#_8X_\  F+_ .*JE_PL
M[QI_T,%U^2_X4O\ PLWQI_T,%U^2_P"% SI?C=')%JVAQRC$B:<JN/<$YK@/
M#VCR>(-=M=*B<))<%E1CTW!21^HKNOC)-)<7?AV:5R\DFEQN['J2>2:Y_P"&
M/_)2=#_Z[G_T$T <Q>6D]A>36ES&8YX7*2(>H(."*]9^"OCC^S[_ /X1N_D_
MT:Y8M;.Q^Y)_=^A_G]:U/C9X'\Q/^$HL(OF0!;U5[CH'_H?PKPU':-U=&*LI
MR".QH ^WNU?&?B3_ )&?5/\ K[E_]"-?2OPS\:KXO\.+Y[ :E:XCN%_O<</]
M#_/-?-7B3_D9]4_Z^Y?_ $(T CUCX(_\BOXJ_P!Q?_0'KQ9_]8WU->T_!'_D
M5_%7^XO_ * ]>+/_ *QOJ: />/A!X3\/ZUX*-UJ>DVMU<?:G3S)4R< # KOO
M^%>>#O\ H7M/_P"_8KY*661!A)&4>@.*7[1/_P ]I/\ OHT!8^M/^%>>#O\
MH7M/_P"_8J:S\#^%K"[BNK31+*&XB;='(D>"I]17R+]HG_Y[2?\ ?1KTOX&R
MR/X^</(S#[')P3GNM 6/I"O /C)\/_[/N&\2:7#BUF;_ $J)!Q&W]\>Q[^_U
MKW^H;N"WN;.:"Z17MY$*R*W0J1SF@1\66EU/8W<-U;2-%/"X='4X*D=#7K'B
M3XR2:IX&M["S5H=4N$,=XXR @'!*G_:_3FO-?$=OIMIXBOX-(G,]@DI$,A[C
M^H[9[UET#  DX R37TA\)/A^/#NFC6-1BQJ=TGRJP_U,9Z#ZGO\ E7EOPAT_
M1]0\;PKJL@WQJ7M8F'RR2#U/J.H'>OJ&@&%%%% @HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ JM?ZA::9:-=7TZ06ZLJF1S@
MLP49^I('XU9K.U_2(=?\/ZAI,_$=W \6[^Z2.&^H.#^% %F[O[6P$)NITB\^
M98(MQ^_(WW5'N:L5YIX;U2;QEK/AY+H9DT.T>?4$/.+W+0*#Z$;)V_$55\,7
MWBW7(M*UV)-0+7%[FZ\R[A^RB#S"K(L6=P*CH<;LKSUH ]5JK?ZC::9;K/>S
M"&)I$B#$$Y9V"J./4D"N$TBV\0:MIWB6_MM?NO[02]O[/3X96 @A"R,J9&#D
M@]">@P,>M>36[FT\.W%M%/J]KJEKJEA%=0W\ZS/&))HP=LBY#(RD]_7@=* /
M3:*\TO;K4-3L_&&L-K][I\VBW$T5I!#(JQ1B*-65G4CY]Y.3GL0!BI8'U;Q/
MXBF@FUC4-,A&AV=V8+1PA6>0RY.2"1C'3O@9Z4 >C5G:MKNEZ%#'+J=[%;+(
MQ6,.>7(Y. .3QZ5B>%+V_P!<\.>%=6N=4,4LEKYES J+B[8QXY[C!^;Y?Y5M
MZNNHM;J-(>P2_P"=IO$9EV]\!2#UVT 6-/U"SU6QBOK"YBN;68;HY8FW*PZ=
M:S[KQ9H%EJRZ7<ZM:Q7I94\IGY#-]U2>@)[ \FL+X:3PP^%9+27;%<VVHW-M
M<L9 4EN/,+.8S@?*2W QQT[9KFKGR6^$GCG[1@W1U&_$F?O>=YI\K\?]7C\*
M /6Z*CM_,^S1>;_K-@W_ %QS4E !1110 4444 %%%% !1110 4444 %%%% !
M7/>.T,G@'7E49/V&4_\ CIKH:@O;6.^L+BTE&8YXVB?Z,,'^= 'Q/7T)\&?%
MVE+X272+R^@M[NVE;:DL@3>C'((SU[UXGXG\/7GAC7KG3;N-E\MSY;D<2)GA
MA]16/0,^T?[:TK_H)6?_ '_7_&FOKVD1H6?5+)5'4FX0?UKXPHH"QZ=XX^)^
MM'Q=?+H.M2IIR,$C\O!5L#DCVSFK7@/Q?XA\1WFM6.IZG-=0C1[EUC?&-V
M>![FO)Z]L^!7AF8G4-<N8B+>6(VL08??!(+'Z< 4 >)U[U\$_%VEV_AZ71;V
M\AMKB&8O&)G"!U;G@GN#7DOC'PQ=^%/$5SI]PC>5N+02XXD0]"/Y5S] 'VC_
M &UI7_02L_\ O^O^-)_;>E#_ )B5G_W_ %_QKXOHH"Q[-\<?%>FZI#I^D:?=
M17+0R&:9XG#*O& ,COR:\>M5+W<*CDF10/SJ*NS^&?A6Y\2^+;0B(_8K219K
MB0C@ '('U)&* +/Q?C:+X@W(88S!#C_O@#^E5?A9K%MHGC^QN;R58K=P\3R,
M<!=PX)/UQ7H'QU\*7,[VOB*TA,B1Q^3<[1RHSE6/MR1^5>&T ?;2SPRQAEE1
ME8<$,#FO/G^#7@IW9C%<98Y/^E&OFH7$RC"S2 >@8TOVJX_Y[R_]]F@+'KGQ
M,\#^#O"GAPRZ>SKJ<DBK"C7!<D9^8[?3%>/4YW>0Y=F8^I.:NZ+I5SK>L6NG
M6D9DFGD"@ =!W/T YH&=W\7O];X9_P"P3%6%\,/^2DZ'_P!=S_Z":ZGXZ0"U
MUW1K=?NQ6 0?0,17+?##_DI.A_\ 7<_^@F@70^KKBWBNK>2WGC62*12KHPR&
M!Z@U\H?$+P?+X.\226R@FRGS):OZKG[I/J/\*^LZY;Q]X0A\8^&Y;(A5NX_W
MEM*1]UQV^AZ&@1\T>#?%%SX1\10:G!EHQ\D\?9XSU'U[CW%9VM7,=YKE]<PG
M,4T[NA]06)%5KJVFL[J6VN(VCFB8HZ-U4C@BHJ"CVOX(_P#(K^*O]Q?_ $!Z
M\6?_ %C?4U[3\$?^17\5?[B_^@/7BS_ZQOJ:!'O/P>TGP[>^"6EU2RTZ:X^U
M2#=<(A;&!CKVKT#_ (1[P9_T#-%_[]1U\BAB.A(_&C>W]X_G0%CZZ_X1[P9_
MT#-%_P"_4=6K#3?#6G7(FT^VTRWG(V[X516(/;(KX[WM_>/YUI>'V;_A(]-^
M8_\ 'U'W_P!H4!8^S*\3^,/Q%\L2>&=(F^<C%Y,AZ _\LP1^OY5TWQ2^(2^%
M--^P6$BG5KE?E_Z8H<_/]?0?C7S0[M([.[%F8Y+$Y)- (6**2:5(HD9Y'8*J
MJ,DD] *]%\0_"74-$\$VVM!FENE7?>P ?ZM3TQ]._P#]:NF^#/P_W%/%&J0\
M=;*-A_Y$/]/S]*]ODC26-HY%#(PP5(R"* N?$L,TEO,DT+M'*C!E=3@@CN*^
MG?ACX_C\7Z3]FNW5=6MEQ*O3S%[./Z^]>/?%'P&_A+63=6B,=*NF)B..(FZE
M/\*X_1M8O=!U:WU*PE,=Q"P8$'@CN#Z@T ?:%%<]X,\6V?C#08M0MB$E'RSP
MYR8W[CZ>AKH:!!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110!2LM(T_3;B[GLK.&"6\E\ZX>-<&5_[Q]35-/"6@1ZJ=332
M;9;PR>=Y@7'[S^_CIN]\9K9HH H'1-,:PNK%K&$VMT[R3Q%<K(SG<Q/N3S5>
MV\+Z':636<&F0) \R3NN,EI$(*L2>205&,^@K7HH QK[PEX?U/4O[0O=(M9[
MH[=TCIG?M^[N'1L=LYQ6BMA:I?2WRP(+J:-8I)<<LBDE0?8%F_.K%% &=#H.
ME6_]G>580I_9JLMGA?\ 4!EVD+Z9'%)J_A_2=>6(:I80W)A),3.,,F>N".1G
M SZXK2HH S$\.Z/'8V=E'IMLEK93+/;1+& L4BY(8 =\D\^]13^%- N=8&K3
M:3:O?!E?SF3DLOW6(Z%AV)Y%;%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 9NL:!I.OVWD:K80748Z>8N2OT/4?A7'2_!7P9(Y86ES&#_"EP
MV/UKT.B@#SG_ (4CX-_YX7G_ ($FC_A2/@W_ )X7G_@2:]&HH X2P^$'@VPG
M6;^S6N&4Y N)6=?RZ&NXAABMX4AAC6.-!A448 'H!3Z* *&K:)IFN6OV;5+*
M&ZB[+*N<>X/8^XKC)O@MX,ED+"SN(P?X4N&Q^N:]"HH \Y_X4CX-_P">%Y_X
M$FC_ (4CX-_YX7G_ ($FO1J* //[;X,^#+>4.;&:;'\,L[$?IBNUT_3+'2;1
M;73[2&V@7I'$@45;HH :Z+(A1U#*PP01D&N,U/X4>#M4F:9]*6"1CDFW<Q@_
M@./TKM:* /.?^%(^#?\ GA>?^!)H_P"%(^#?^>%Y_P"!)KT:B@#SM/@IX-1@
M3:W3#T:X:NIT+PCH/AM2-)TV&W=AAI ,N?JQYK;HH YSQ#X&T#Q3=17.KV;3
MRQ)L0B1EP,Y[&J>E?#'PKHNIP:C8Z>T=U VZ-_.<X.,="?>NOHH **** .3U
MGX;^%M?U.34=0T[?<R ;W61EW8[D ]:H?\*>\%?] M_^_P"_^-=W10!@:%X,
MT/PW:W=MI=JT,5V )@9&;=P1W/'4UAGX/^"B23I;\_\ 3=_\:[NB@#A/^%/>
M"O\ H%O_ -_W_P :/^%/>"O^@6__ '_?_&N[HH X3_A3W@K_ *!;_P#?]_\
M&I;?X2^#K6YBN(=-=98G#H?/?@@Y'>NVHH X_4_ACX6UC49K^_LI9[F9MSNU
MP_/Z\#VJJOP?\%*P/]E,<'.#._\ C7=44 ,BBC@B2*)%2- %55&  .PI]%%
M%#6-&L-?TV33]2MUGMI,;D/'(Z$'L:Y/_A3W@K_H%O\ ]_W_ ,:[NB@#G/#W
M@;0?"]W)<Z1;2022+L<><S!A[@G%='110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
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
M5W$@<QG(#KM9E.",=>O:J-CXRL[/PQH$I?4M7O-3@#VT:0)]IN %RS,H(5<
MC)R!S0!V-%<M_P )_I":!J6K7$5Y;#3)%BO;6:(+- S%0,KG!!# Y!((Z5K:
M'K*ZY9/=)87UG&'VH+R'RVD7 (=1DG:<]\'KP* -.BO,="^(":7::VVJ0:O>
M06FL7:3WB0F2*UC$I"AF)S@#'"@X'I76ZIXPL]/U"/3[6RO]5O6@%PT.GQJY
M2(G 9BS*H!P<#.3CI0!T-%<I<?$+0[?P_8ZT?M<EO>7/V-(XX"95FPW[MDZA
MLH5QZD>N:;=^/[.Q?3[>?1]9%_?Q22P6*VRF8[&"D$!L X.[KC SGM0!UM%<
MM>^.K2VNYK6WTG5[^:UC22[6TMPWV;<NX*^6'S8YVKDU<L?%VE:E?Z;:VDCR
M#4K-KRUFVX21%*AESUW#<#C% &[17*V_Q!T.[\-W6NVYGEM;>[^Q%%0>8\N]
M4 49YR64CGH:B?Q79:-_PE%_?7U[/;:;=Q1RQM"F(-Z1X$>.67YP23SU_$ Z
M^BN<TKQG9:IJYTQ[+4;"X: W,/VZ#RA/$" 67D],C(;!YZ51M_B-875YID4.
MD:PT&J2F.RN_(0138R2PR^X# +<@$@9 - '8T5@:5XLM]9U!H+/3M1>U$LD*
MZ@8E\AGC)# '=NQE2,E0"1UJQKWB*TT!+83Q7%S<W<GE6UI:Q[Y9F R=HR!@
M 9)) 'K0!KT5R\?CO3#I.L7L]M?6LNCIYE[9SQ!9XU*[@0,E2" <$''%:.@Z
M_%XAMY+FWLKZ"W!'E2W4/EB=2,ATYR5^H!Z<4 :]%<3H7C2]UCQ#KVES:/>P
M16<WEPS&(*(QY0;]X=YY))Q@="*R_ OQ AD\+^&X=3AU61[Q8[;^TYX289+@
MY^4N3N))&,XQGO0!Z517,:GXYL=.N[Z%+#4KV/3P#?7%I 'CMN-V&)8$D*02
M%#$#K6Z^I6::4VJ&=?L2P?:#,.1Y>W=N^F.: +5%<_IGBM-2L)KX:/J]O;I
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
M." PQD>]7J* /,OAY\'+/P'KL^K'59+^=HS%"#"(Q&I(SGDY/&.W?BO3:**
M"N:^(&E7NM^!=4T[3X?.NYD01Q[@N[#J3R2!T!KI:* /.O$'@[5+[QW&UJJ?
M\(]JC03ZN"P^_;DE!C.2'^0''9.:?>Z)XF@A\;S:2C0W=_>02V;K*JM)&L<2
MR;2?NMA7 )QS@^]>A44 >9Z+HE]:^*=0UJ32]1L=.;17MPVIZC]IF,@<,2<R
M/M&,\ XXSQFJ?AJPU6ST3P-XDT_3GU*.WT8VES:QR(DH1PC!TWD*>5P1D<&O
M3=3TNQUFP>QU*UBNK60@O%*,J<'(X^HJQ##%;P1P0QI'%&H1$0855 P  .@H
M \RU/PQKNLZ%XOOWTW[/?:W):"WL#,A=(X2H!=@=NXC<< G  &37J%%% 'E3
M:;XL@\.^)O#D?APR_P!L7MZ;:\%U&(XXYG8;I 3N&%.X;0<Y X-:T.F:OX0\
M37%[9:1/K-C>V%K;-]GEC26*2 ,HR)&4%6#9R#P1TKOZ* /-;;PCK,6GZ+)-
M;)]KD\3-K%[#'("MLCB3@$XW8W*#CN3BNEO-*O)?B/I>JI#FR@TVX@DEW#Y7
M9XRHQG/(4]NU=+10!P<,>O\ A;7O$#6>@3:M;:I<B\MIH+B)-DAC5"DF]@0
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ K(\3:_%X:T234I86FQ)'$D:L%W.[A%RQX49(R3
MT%:]9FOPW5SI$L-KI]EJ!<A9+6]?;'*G<9VMS]010!FWGBFYTK1%O-4T=X;V
M:Z2TM;.&X27[1(^-NU^ !UR6 QM)],UXO',=H=5BU^P;3+C3K07SHLRSK)!R
M-R,,9.5(P0.2/6N<;X<ZC=>%Y+26*PC,6K)J-CI4TKSVL2*NTPLQ7.ULN>%P
M">!6@G@D:GH&M:=)X:T3P\;ZT-NDM@XD<GKEB(T^4$*<<Y]J -2+Q9JD>DWV
MIZEX9N+*V@L)+V-C<QN7"KNV,!RCD?4<'GBKDWBF*%/#C&U<_P!MR+&GS#]U
MF)I,GU^[BJ,-GXIUK1K[2-=MM,LX)K"2U:>VN'E:21EV[P"JA5P6.#DY(].<
MFT\/>+KJX\*)J4.E6]MH4R^88)WD>XQ"T>\94!1R/EYZGD8Y -.Q\876MWVI
MVMOH5TMA8SW-I<W_ -H5 KQ[A\@^\V<#D=-PZX..?C\6:U;Q>!(]%T^YNK+4
MK=G9;J\1I9R(6;8SL,Y7 ;=QGI75^'M O-+TW7K>X:(O?ZC=W46QB0$E8E<\
M<'UK#3PGKNFZ%X*:RCL[G4= 4K-;R3F-)0T)C;:^T],YZ4 :!\26.DZYXIN[
MYKV-=.LK6>X5I_,C 97P(TZ*WRX/]XD58T_Q==/K%EIVKZ))IKZA&[VC?:%F
MW%!N9'"_=;;SCD<'GBL[5O!%WKLWBY;J6&"+6K&UAA9&+F.2(.22,#(W,OU&
M>E.\.>&[BPU&&>7P;X9TV>"-A]MLWW.SE<911$I53DYRV<''- &GX6\4W7B>
M!+^/1S!I4\;/;W/VI'9L' #(.5)Y.,G&.<5L:/J$FJZ3;WTMC=6#R@DVUTH6
M2/!(^8#Z9_&N,TW1;_2/$DWB6]T_3M"LH+29K]+"Z:5;Q^")"FQ0NW:QSRQW
M8KK/#-YJ>H>&["\UFUCM-0GB\R6"/($>3D#DD@XQD>N: -6BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBL[7=;LO#FAW>KZBY2TM4WR%1DGG  'J20!]: -&BN(\!_%#
M1?'\UU;V$-S;75LH=H;@#+)G&X$$]\9^HKMZ "BBN/\ B;J,^E^#'N(+^6Q)
MN[:.2XB?8R1M*H8Y[<$\T =A17FUQJ.AVG@O7;VP\7ZMK$,2Q>=);:DCS0?/
MQL8#Y<YYSU K?U'QC<6_B&[T+3= O-2O;:".X;RY$C38^[JS$ 'Y>!U.?8F@
M#JJ*YNW\5RZIX=T[5M$T:ZOQ?*6$7F)%Y..&#ECQ@@CC/(JD_P 0K6'PU+J\
M^F7B26^H+IUS9KM>2.8N%(&#AOO C'7- '8T5RVG^,Q)J-]8:SI=QH\]K9_;
M\3R)('MP2"V4) ((Y'\Z9I_BJ\UBQ:XD\/ZC9:;<VKS6]X98]Q7;D$J"2A(Y
M&<^^* .LHKD=*UR]'A'09])TC4=6^U6:2A[BZC#JNT$>;(Q&6.>P.<'I65J_
MB-=>TSPEJ%JEQ:&3Q%%;SP.<,C)YJNC8.",K]#Q0!Z'163XAUV+P_I\=P]O+
M<S3SQVUO;Q8#2RN<*N20![D] #7/GX@36]OXADU#0+BU?0X!-<+]HC??N7<H
M4@]QGGVH [:BL>[\00VFL:)IS02,^K>;Y;@C";(]YS]1Q7.:=XNMM.\+VLUO
M#JFI75[J4]I:6\\RO-+(LK@C><!4 0G)Z* * .[HKSSP]KE_<^.?%<USI5_#
M-;6%I_Q+RZLQ;]Z?W9W;#NXP<CWQBM_2_%-Q=:__ &+JFC3Z9>/;&ZAWS)*L
MD:L%;E3PP+#CWZT =)17!Z=\2Q?VFE:D_A_4+?2-1FCMDO9'3"RN=J_)G=MW
M<;L8S[<UIW'C&=M7O;/2M!O=3BT^18KRXADC4(Y 8J@9@78 @D#UQUH ZFBN
M4U'QI);WFI1:=HEWJ4&E?\?T\4B((VVARJ!B"[!2"0,=0,YKH+;4[.ZTB+58
MIA]BE@%PLIX'EE=P/Y4 6Z*XF#XA%H;'4;G0+ZVT*^E2*WU&1XS]\X1GC!W*
MK$C!/J,XS5U/&$USXMO- L=#N[EK&:..[N@Z)%$CHK!OF.6/S'Y1D_*3Z9 .
MIHK%\0^(H]"^Q01VDU]J%_*8K2TA*AI" 68DL0%4 9)-97_">1P:=KLFHZ5<
MV6H:+;_:;BS=T8O&02K(X.&!VD>Q'- '7T5B7GB2*TOM$M/LTDDFK^9Y6& V
M%(C)SGU Q7&6OBG7M:\'^-?[0TR6V6T34(XK@31_NBBD+%A3DL.?FZ<=: /3
MJ*XJS\536NGZ'I&GZ9<:MJLFEPW4L:2K&L<>T#<[N>I;( Y)P:F'Q!LFT)+U
M;"\-^]\=-&F87SOM0ZQYSMP -V[.,<^U '7T5Q5SXJEO=/U_2+[3;C2M6M],
MDNEB>59!)$58!T=3V88/0@XI/!OBF*ZTG1]-ABFNC;:3!+?W@.4@8Q*0A/5G
M/7 Z#D]: .VHKF_#?BFX\16JWZ:+<0:;- 9[:Y,T;F49X!13E6(YQST.2#Q6
MOI.H'5=*MKXV=U9F9-WV>[CV2Q^S+V- %VBBB@ HHHH **** "BBB@ HHHH
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
M** "BBB@ HHHH **** "L[7M$LO$FAW>CZBC-:W2;'"G!'.00?4$ CZ5HT4
M</X"^%VC> )[NYL9[FZNKE1&99R/E3.=H  [XS]!7<444 %<YXVT2[U_0([*
MS$9E%[;3$2-@;4E5F_0&NCHH YSQMH4^N>#-2TK3HXEN;A4"!CM4D.IY/T!I
MUAHUW;>.]:UB0)]EO+2UABPWS;HS)NR.WWA70T4 >8)X,UZU\->&[%[:&_@L
M);EK[31>&%)_,=C&VX##;<YVGCGVI;'P+J]OX7N+ VUE;RR^(H=26&"4F..%
M7B8J"0"2 C#H,X]Z].HH Y#6_"MQK/BF\N'=4L+K0)M,9P?G5W<'./3&:9HD
M'BQ='BT74M-T^&&WLC;-=QW9<SL$VJ53:-H/4Y/%=E10!YFW@_7(=*\+6TUC
M!JEII^FBUNM-:],*>?A0)<@$.  PP1QG(I^E^"-6L_#VAV+QVB2V7B%M1E2&
M0[%A+2$!<C)X<<&O2:* .#^*I\S0](M!+'&]QJT"JTTABCR-S?-*I#1_=R&7
MG( [UBZ98'5K+Q7X.$=K_:%W8B:74X+^2\61W!1%E=P&##:/EY^7I[^HW-K;
MWD#074$4\+_>CE0,I^H/%,LM/LM.A\FQM+>UBSG9!&$7/T H XJUTOQ7J?B;
MPSJ.JV%A96VDB994BN3*\C/"4WCY0 N<8')Y.:J0^#M=T[1M%N;2.VFU32=5
MN[P6[S;4FBF>7*A\'#;7!&1U%>D44 ><R>&_%VH3>*[]GM-,OM5L((+/R)V8
MPLADR&? .2&'S <;N.F2[PWX2OK+QI;:R=#LM)M4T^6V>..[,\KR,T9#,Q S
M]T^IXYZUZ)10!Y[;^#M5C^&?A[06$/VVPNK668>9\NV.8.V#CG@5:M]-\3^'
M=:UI=(L+"^LM5O#>QS3W1B-O(RJKAU"DL/ER,'VKN** /,[WP/+:^(]8NQX7
MTO7K?4I_M,<EQ<>5) Q4!D;*G*Y&01SR>*[DZ3%-X9.CF&*UBDLS;&.W^Y$"
MFW"\#@=N!6G10!YNOAWQ5J/AS2_"6I6=A#I]F]NMQJ$5R6,\4+*RA(]H*LVQ
M<Y.!SUKI]"T:[T_Q-XFOYPGD:C<0R0;6R<+"B'([<@UT-% '+^*M'U.YU71-
M=T>.">\TJ27-K/(8UFCE3:P#8.&& 1D8K(E\):MX@3Q/>ZLMO87>K:<-.MK>
M.4RB! '(9VP,DL^< < =Z[^B@#S^TTGQ9J/B#PM>:I86%G;:/YJRB*Z,KRLT
M+)O'R@!<XXY/)].70>'M>@T[QCHIM+9K75&O;BTNQ<<EYEPL;)MXP2<MGM7?
M44 <##H/B#P_JUCJVF6=MJ!;2(-/O+5[GR65XLE71BI!'S,"..QJK_PA.N0V
M,.K1M9OKR:T^L/;>8PA8.GEF$/C/W,8;'4=,5Z110!PO_"/ZYK6IZMK6IVMM
M8SRZ1)IEG:1S^:0')9G=\ <D* !G %1^%/">L>#WLX]/%NUC=6*"_M7D(6&\
M2,#S4..5<C##Z'VKOJ* /.])TJ\T#6[SQ%<:9:^']*ALI7O;6VO#+'<2Y#"0
M(%"K@!N0,G=TKL?#MYJ&H>'K"\U6T6TOIX1)-;J3B,GG'/.<8K3(R,&B@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH *JZGIUMJ^EW6G7L?F6MU$T4JYQE6&#SVJU10!P'@?X2:'X%U:?4[.
MXN[JYD0Q1M<%<1H2"0  ,DX'/\J[^BB@ JAK$NJPV/F:/;6US=*X)AN)3&'7
MN P!P?3(Q5^B@#S2Y\(:YK)\5:I<6%EIEWJND-I\-G#/YGF/\Q\R5PH&[D <
M'BL76=/GN_&][:"[LXFL](M+>X6YU*6QW*=Y908^9$.>21P>!WKV,N@<(64.
M02%SR0*J7ND:9J3H]_IUI=.GW&G@5ROTR.* .,\/12>(Y/!?B*QL(K'3[&UN
MX&MQ)D(#MC38<#<I\LD'C@BFZKX.U6\T[Q7!$(=^IZM:W=OF3 \N,P%L\<']
MVW'TKT%55%"JH50,  8 %+0!SUIHUW#X_P!3UEPGV2XT^WMX\-\V]'D+9'IA
MA7*Z?X0\0:'I/A2\M(+6YU+1EN8I[1Y]BRQS-D[7P<,,*>1CK7I=% '!Z_I/
MB;6TT>ZN]-M)H899C=Z1'?LB2*P C)DV@.5P201CYN^*SK'P+J]OX8FL#;V5
MO+)XBBU-88)28XX0\;%02 20%(Z#.*]-HH YU]%NF^(8UKY/L?\ 9#69.[YO
M,,H?IZ8'6J_P_P!-UC0_#4&B:M:01C3T$,,\,^\7 R?FV[1MXQQD]37544 <
M]I.C7=EXS\1ZI*$^S:@MJ(,-D_NT8-D=N2*XRR^'\FEO<6$OA#1M8@>ZDDAO
M[BYV-Y;N6Q(I0DE<D<9! '2O5** /-EN->M/B?XJ?1-.M+Y3:V2R137!A93M
MDVL#M((ZY'7IBG0>#-:T+1_"T]B+:_U+1[BXGN86E,23?: _F;&(.,%^,CD"
MO0TMX(YY)TAC6:4 22!0&<#ID]3C)Q]:DH \RO/!_B35-(\9&[BL8[W6Y+9X
M(HIB401A 5+$#D!>N.3V%=+XMT?4KN]T76='2":^TFX>06T\GEK-&Z%'7=@[
M6P<@XQQ7444 <=?Z;X@U[^P;F^L[2TELM82[>".X,FR 1.O+;0"VYN@&,8J#
M6O#&N7>J>*KO3+I+274=,M[:TG#D,LB&0MG'*\,!D>N>U=Q10!YOH/A+4['Q
M;!K46A6&EQ1Z=-;>4+UIGDE9D*EVV]#M//)[GKBFV7@G4+R\U=6TVW\/:;J&
MFS6EQ:6MV9DFFDX$H0 *NT;N1@G/->E44 >=>%_"4VFW6FQWG@S18IK, /J<
M5SN+,JX#HFS()/8D8R>34]AX=U<^.+;5UTBTT5$:4ZA+:7I==0!4A<QA0,[B
M&W-SQWKOJ* .6\4Z/JDVM:)K^CQ07%UIAF1[6:3RQ-'*H#8?!PP*J1D8ZUEG
MPQK6J6WBW4=0AMK;4=8TXV-K:1S;UB14<+O? R2SDG P!CK7>T4 4M'M9;'0
M["TEV^;!;1Q/@Y&Y5 /\JX[1?#NKQ^-(=7_LBTT.$)+_ &@EI>&1+]V VGR]
MH P<MN(W<XKOJ* /-+3P=X@?P _AB:&SM[C3KA)]/O//+I<,LYE7>@7*#& >
M3U]JUXM*UWQ!XGTO5-;T^VTVVTN.;RX8KKSWFEE383D* JA<X[DFNTHH XGP
MA8>*?#UE8>'9K"PDT^Q)C_M$71W20C.W$6WA^@.3C@]:R_"/@G6/"!TN[L_(
M\R;=#K-KYGR2+O8I,AQ]]00".XX[5Z510!A^%M9NM?TZYOY[=(K9KN5+)T)_
M?6ZG"2'/][!/TP>]8$>E^*?#U_KL6BV%C?6NJW;WD,\]T8C;2.JA@Z[3N4%<
MC'/:N[ P,#I10!P^D>"KG1-0\(+#(DMKHUA<V\\A."SR"/! ]"5;Z<5T'BS3
M;C6/"&LZ9:;3<7=E-!%O.!N9"!D]N36Q10!RNGZ!?6WC*SU201_9HM#6P;#<
M^:) W3TP.M8D_@_65\+W<$"6[WR>(FU>")I=JRH+CS I;'RDK[=:]%HH \[U
M_P *7VJZ_8^)+CP]I^HR&Q^R76FSW./*(<NKI)MP3\S @@=>*MOX5N9-,\/Q
MVFD6&E&TUE+^XM;:;<JH%<$[MHW,<KGC\:[FB@#D[GPW>77BGQ!>%HTM=1TF
M.RC;.2'!ER2/3YQ63!X>\0W?A+PWI5Y8VMM/HU_8LS)=>8)8H,;G'RC!..%K
MT*B@#@%T?Q5H;:_I^D6-A>6NJW<UW!=S71C-LTWW@Z;26 ;)&#R..*MZ1X/N
M-%USPVT+K)9:5H\MB\A.&9R8R#CT.QC[5VE% '"#PYJ-KIGB"";1;#5X=2UF
M6Z-I/.$#0,B@$$J0'#*.#CZYK7\$:1J.B:%);:B^"US));V_GM/]EA)^6+S&
MY;'//OCM7244 <-#X:U7[=XMTJ>WA.D:\TLHO5G_ 'D6^!8RICQR<KG.:IKH
M/BK5M)T;P]JME86UEI\UN]Q>Q71<W"PD%0D>T%2Q5<Y/'/6O1:* "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "J&M:S9>']&NM6U&7RK2
MU3?(P&3Z  =R20!]:OUF>(="L_$V@7FC:@'-K=)L<H<,.000?4$ _A0!S_@?
MXFZ%X^DNH=,6Z@N+8!VAN4"L4)QN&"01G^==G7!_#[X6:5\/[B[NK:[GO+NY
M7RS+* NQ,YV@#U(&3[#I7>4 %<SXYUR]T71K:/3#&NHZE>PZ?:R2+N6)Y#]\
MCO@!CCV%=-7.>-/#]SXAT6%+">.'4K*ZBOK-Y02GFQG(#8YP02/QH @M_#NI
M:0LET?%.J7R>1)Y\-X(V5VVG#(552F#SP2.WO7/>!_'$D7A?PM!J.EZF+>\C
MBLTU.8J4DG*\ @MOP2" Q&"?;FNCL[WQ9J9:WO\ P_::= 87660WPF9V*D (
M%48&<<L>G:LF/PIJJ^!?!VE&*/[7I=W8RW2^8,*L1R^#WH U=;\92Z"\]Q=>
M']1_LJVD5)]0#1;5!(&X)OWE02,G'KUI=4\9&R\03Z%8Z)J&I7\5NER5M]BI
ML8L.6=@!C;TZG(QWQQ?BGP7XCUJ+Q#:R::M_<7=PTEE?RZB5CA@X*QB+LPP1
MTP<Y)KNK/2+N'X@ZIK#JOV.XT^W@C;=R71Y"PQ]&% %9?'EG<Z1H]YIMC=WE
MQJY=;6S4*CY0'S-Y8A5VX(//7IFH;;X@P2Z/=7USI%_;20WW]G):DQO+/<YV
M^6@5B,Y[D@8YZ5P][HFJ:;'X-T+?%!J<<VHW(S>&W 4R$@B90QSB0#:%.=QS
MTJ[%HW_"3>&9](L=,MUO=!UI+J:-K]IXK^0J6?,^T-N82')(X.!TH [$>.K:
MT@U7^V=.N],N=,M1>2V\A20O"<@,A1B&Y4CJ,&M;1=5O-4BD>[T:YTT@*R>=
M)&XD5L\@HQY&.0?4=:YO2=#:UM]2N(? ]G:3R6XA$,]^)#<J3\T;'#!5^N<D
M\@5-X'T/4=(O=3>2S;2])E$8M-,:[^T>2PW;V4\A%.5^4''':@"S=:W;Z=XJ
MUHR3:A(;+2$O)+?<OD; TG*#KO.P@DG&,5#IOC^*_O=*271=2L[/5N+&\N @
M25]A?:5#%ER <$@9Q3-7\.:C>>(/$=Y#&AAOM!%C 2X!,N9>".P^=>:+CPYJ
M,FE^!X%C3S-(N()+L;Q\H2W=#CU^9A0!M>)?$=MX8T^"\NH+B=)KF.V5+=-[
MEG.!@=^>PK.L_&R27>H66HZ1>Z;>VEF;X03F-C- ,@LI1B,@C!!/&15+XGFY
M&CZ*;-8FNAKEEY(E)"%_,^7<1SC.,XJ#^Q-?UW6]2UK4M.ATYAH\NFVEJ+D2
ML[.=S.S   9"@#ZDXH NV?Q"MKGP_+KT^CZC:Z9Y<;6TDBH6NV<[0D:!MV2Q
M &< YSTYI[^.C:+J$>HZ%?V=]:637ZVK/&YGA4X8HRL1D<9!(/(ZU3U/P=>Z
MG\+-)T$B$:C806;>7(Y\MY(0N4+#L<$9'KFI_#&@QP:E)<S>#K?23]G:(S->
MB=WW$90 9&TXZDCH.* ->3Q19?:M!MX%DN&UI6DMS'C"QK'O+MD],%1]6%8&
MC^,;:U\*Z&+2/5M7O=2,JVD,[QFXE",V]G?*H%7CGTP*B\"^#]5T/6;B756C
M>UT^!M/T@J^XFW,K.6;T;'EK]$JCI?A/Q#H&G>%K^VLX+J_TJ.ZM[FR,X3S(
MYGW H_3<,*<'KD\T ;[?$"S@T36KZ\TZ\M;O1MOVRQDV&1=V-I4ABK*0>#GL
M:VKW7;>QU[2](DBD,NHI,\;C&U1$%)SWYW#%<==^#M9U_2O%]S?1V]CJ&N01
M0V]L)?,6%80=F]P,$LQ.<9P,=:MPV?BG5_&&A:QJ.D6NGV^GP7,;1B[$KL\B
M*,Y P%RH QD]<T :FB>*Y/$=FUU;:1>0:;-"\EM?2/'MD ./NABRD]1D=N<5
MD_#OQ*LNA^&]&O/M#WESHZWB7,K;A+M;:RY)R6&5/T-1:'X=U:'Q.U]!HR:!
M8O;S"]M8KX2Q74S8VLB 87!W$M@$YQBL3Q!H^J^&?AAX6G@,<7B+2&CMH%#;
MO,:8>2T8(Z_>#?\  * /2=!UV#Q#93WEK%(EO'<RVZ.^,2^6Q4NN/X20<?2N
M"\=>.I;GP9XB.EZ7JGV.!9+4:M"5"+,IP< -OV@\;P,9]N:[_P /Z1#H'A^P
MTF#E+2!8MW]X@<M]2<G\:\[O?#/BZ'P5K/@VQTRSFMII+AK;4)+L*&CD=I-I
M3&=^6*YZ=\]B =1/K]GI?B349+NZU#;9:(E[-%D- (PSY95^]YGRG/;&*LP>
M+PFA7FLZMI5WI=C;P+<K),\<GFH02,;&/S=.#ZCK56?1=2C\7:CJT=E;W4$F
MB16:0RRA5ED621BC<' (8<X(YKFT\":MJ&C^(M.@M1H6G7MK&MIITEW]H1+A
M7+EQC(C0X4;5]SCM0!J^(_$>HWO@/Q&TNAZIH\BZ7-/!-,Z<C:<<HQ*.,@X.
M#^5:+^+'M9+32=/TJ\U?4ELH[F=('1!$C# +.[ ;F(.!R3@FJNJ)XJ\2^$M:
MTR\T*VL))].DAC_TT2&69EP,8&%3KR3GD<5&FE>(/#OB.?5=-TR+5(=0L;:"
MXA^TK"\,L(8 @L,%2&^N10!>_P"$_L9M)T^[LK&[N;N_NGLXK$[8Y4F0,75R
MQ"KMVG//IC.:MWWBIK&TTY9-(O3JNH.\<&FAH_,RF2Q+;M@4 9W9Z$=SBN=3
MPK>VOA9K74= M=<GO]0GU"\@CNA%]GED8L#$S ?=Z9RI[BJ-QX'UN;2?#EUJ
M,$>KWFEO<B6QGO#N:&4_*HF/WG0*G)P#@\T =.?'MA!HVHWM[97EK=:=.EM/
M8,JM-YK[?+5=I(;=N7!!QSVQ63I^O:AJ7Q5L;6[T[4-+V:1.[VMPZLCGS8MK
M@HQ5N,CU%17/A"YN?#$YTSP_::/J45_;WT,#77F_:&A8,!(P&%SR!R>U:.G6
M/B+4/']KK^IZ9!I]G%ITUJL*W(ED#L\;98@8P=IQC.,<GG  */Q)OK[^U/#F
MD0Z?J%S9WEV3.MG<K";C;&Y\K=O4CD!CR 0.N>*M+XCL?#B^*;F5]5EBTA+7
MS;>>59%C!B7 C.<]#EBQ.3DYK7\0Z/=ZCK_AF[MU4PZ?>O-.2V"%,+H,>O+"
MN=\0^$-7U&T\?1V\49;65MQ9YD W;(E5L^G(/6@#=TSQB+W78-*N]&U#37NX
M7GLI+H(!<(F-W"L2C ,#M8 X].E-'C*6'5+&VU#P_J-A:W]Q]FMKJ=HB&DP2
MH95<LN0IQD?7%3:SH][>>,_#NIVX7[/8QW:S.2,J9$0+@=^0:X>Q\%^(I+O0
M)+_3%:^L-22YOM4EU(RFY4%LE$/W1R#@XQ@  T =->_$6.VDU?R- U2[@T>9
MH[Z>(1A(U50Q8;F!;@YP.0!SC(SH:CXPB@O;2PTK3;K5[VYM1>"*V9$"0$X#
MLSLH&3P!U.#6?#X;U)-"\<6C1IYNKW-U):#>,,KP*BY]/F!JI#HGB#P]J^FZ
MMI^FPZB6T:#3KNU^TK$T;QG(=6(P1\S CZ'F@#7@UF.Y\86<;#5K>>71WN?L
M,NT1J!(H.Y.3YH)QP<8S2VGC"5];L=-U'0-0TS^T=XLY;AHF#LJEBK!')0[0
M3@^E59-&UZ[\4Q:PZV]I.=!FM"T<F]8;AI%9<9 + 8ZX[5SFB>#];37O#%]=
MZ0()M-D<ZA>S:D;B2Y9H70NH.<*6(/8\],"@#J/A_<37&FZPT\TDI36[Y%+L
M6PHF( &>P]*DL/&J:EKUYIMKI%\T-A<O;WEZVQ882HSG);+9]@<9&>M3^#M(
MN]&L=2BO%57N-4NKJ/:V<QR2%E/Y'I4&@>'KFVM?$]M? (FJ:E<31%&!/E2(
MB@^QX/% $%IX_AN7L+A]'OX-(U&=8+/49-FR1F.$)0-O56(X)'<=,U=T_P 5
M/JFLW%I9:/>2V5M=/9S7^^,(LJ?>&TMOP#QG'7VYKDO#/@N;2UTO3[_P?93R
M6+Q@ZH+_ .1@A^641G+;N =N,9[UH2Z!J\_C>VU*RT6/2&2\+WM_#?92]MP"
M K1 #<S?+RP^7'4T ;4GC:RC\+:QKYMK@V^ESSPRQ_+N<Q.4)7G&"1QFL?4M
M7OK'QWK4UI'/="'P]#/%:HX W&:7+88A<@<GV%9&J^&?%O\ PC?B?PS8:99S
M6^I75S<P7TET%&R5M^S9C._)(SD#OVP>I;P]>R^,=1OV"+:7.B1V*ONR1('D
M)X],,* *&C>/+L^"-)U;5='NA>7WV>"W1&B O)9%R"GSX13R?FQCTKK],N[B
M]LEFNM/FL)MQ5H)F1B,=\H2"#]:XG3]*UE?A[9:!JWA*UOQ9I%:O U\F)D1<
M>:AQP<A< D'D\C'+](N-<\*Z9I6F7$)N;S4=59+>TENFF>TL_O-F0_>V*.I_
MO 9/% '?T444 %%%% !1110 4444 %%%% !1110 4444 %8WBC7U\-:#+J/V
M=KF7>D,%NK;3+*[!$7/;DCGTS6S6'XMT!O$F@26$-S]FN5DCGMYRNX1RQN'4
MD=QD8/L: .16^UA?BEI+>(+*TM#!I-Y();6X,L;KNB)^\JD%<<\8Y&#Z61X]
MUF/1;;Q1<Z);1^&[AX\,+HFZCB=@JRLFW;@Y!VAL@&KMOX7UW4/$]OK/B"]T
M]XX[&>S-I9QNJ@2%.0S'))VG/3'&.YJA'X'\02Z!:>%+[5+"3P];-&IE2%Q<
MS0QL&2,\[5^Z 6'8=* .K\5:[_PC7AF]U?[.;@VR@^7NV@Y8+DG!PHSDG!P
M:R+CQ;?Z9X;34+RUT^\NKJYCMM/33;LO%<O(0%^=E&WG.3SP,^U='JL=_)IT
MJZ8]JMV<;?M2%HV&>00"#R,C/;T-<-%\.;PZ??O]JL;#4)M1@U*UBLH3]EMI
M8@ /E)!.[G<>.OM0!MZ;XCU:+Q-#H/B#3[2WN+JW>XM)[*=I(Y A =#N52&&
MX'T(K;T>[OK[34GU'36TZY+.&MVF64J Q .Y>.0 ?;-8%GHNK'7U\2^)+BS>
M2PM)(K:VT^-RJ!L%W);YF8A0  /S-:OA6?5[KPY:W.N1K'?S;I'C5=OEJ6)1
M2/[P7:#[YH V:*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M3(Q',!'\IQG.,X(Q@]:7X8:EKNK>"=/O=:-O)YL"M%.DS/)+UR9 5 4].A-
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
MR+L884@G/.2,8[UWVN:Q!X3\,BZ%GO\ *$5O;V<! W.Q")&IZ 9(&>PK'M/
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
M?L1JUNLSDB"3<?,@3/0!7C.!TP:['Q/XA'AW3X)4M'O+N[N4M+2V5PGFROG
M+'A1@$D]@* -JBO-+/7;JW^).K:AK^G_ -F_8?#RR3*DXF1D65V+HP R,9'(
M!R#]:UM-\=W,]_I,>HZ1%9VNK-LM)8[U9I%8H7594"C82 >A;!X- ':T5R>E
M>+-3URZ%QIV@>;H9N6MQ>F\59&"L4:01%>4# _Q9P,XK)M?%\.D:(\EI8R23
M76O7&GQ+>7YV>8'?+-(P.Q3L.% /4 9H ]"HKD=2U&47_A0:KI\EO>W-_)&(
M[>^)CC(CD.20!YBD+T(&,^U5+GQ[J'V74M5T[PZ;S0].EDCFNOM82601G$C1
MQ[3N"X/5AG'% '<T5R%[XTNGURUTK0]&_M*6ZTY-0BF:Y$,8C9B/F)4D=L8!
M)STZFM;POKZ^)-$6_-J]I,LLD$]N[!C%+&Q5ER.#R.M &S17 >%O%.O3ZAXF
M?7+."+3M.O) \PN@QME6)&V!0@WCDG<3GG':IH?'FH+!INIZAX=:TT/4I8XX
M;K[6'EC$AQ&TD>T!0<CHQQGF@#N:*Y'XE:QJ^A>"KN_T9%^T(R REP#$I<#(
M!4ALYQCWSVJ_<:IXBBTVWDC\/VQO)"_G1OJ(6*$ \$R;,DGT"\<Y/J ;]
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M+=:;X@\27T[1&+4KN.:$(Q)"K"B'=QP<J?6N@H **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH ***P/&WB";PMX-U/6K>V%Q-:Q;DC.<$DA
M03CL,Y/L* -^BO(?@Y\3]:\<:CJ.GZQ;P%H(A/'/ A0 ;@-K#)]<CZ&O7J "
MF2RQP0O--(D<4:EG=V 50.223T%/K!\;_P#(@^(_^P7<_P#HIJ -R.1)8UDC
M=71P&5E.00>A!J*[O;6PB66\N8;>-G6-6E<*"S' &3W)X K@[+4]7OI]!\,Z
M1>Q:>$T*&_N;MH!*Y!PB(BDX'(8DG/:JMUXGU3^P[RTU%;.YO],U^UL'F-N"
MDR/)&5?8<A6VOVZ$9% 'IM%<!=:CXJU/Q+XIL=,U6TL+721"T):U$KNS0*^T
MY( 7.>>3SVQSC7=[K/B;6/AWJMMJ::>^H6TTGEK;"18Y/(+.>3\P/0 ],9H
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
M"2BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MQ^9F)9B!SVQ63:^!-53P.OA:YU2SDM[6:W-I-';LK^7%,)"),L020H'&,>]
M%VR\4ZM9>(9]*\26EC /[/?48I;*5W"HC .C;@,D;@<C@^E8FF?%%[NXT>XF
MET-K35;B.!+.VOM]Y;>9PC2+T/. P&-N>^*ZV_\ #2ZAXJCU6:53;C39K"2#
M;RPD9"3GZ*1^-9OA_P -:_H4=CIW]HZ5/I=EM1)6L6^TO$O"J6W[0<8&[';I
M0 NB>(M?USQ'J5O#I]C%I6FW\EI-/)*WFRX4$;% QD9&<GOQTKL*Q?#VA/HD
MFLN\ZR_VAJ,EZN%QL#*HVGU^[U]ZVJ "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBN>\=:U?>'?!&K:MIL FN[:
M'=&I&0.0"Q'<*"6_"@#H:*\8^"/Q"\3>,-1U2RUR07<,$0E2Y$*IL8MC8=H
M.1DCO\IKV>@ IDLL<$+S32+'$BEG=S@*!U))Z"GUP_Q0(DT?1;*8XL;W6[2W
MO1G :$L20?8D*#]: -O3?&GAK6)Y8-.UNRNIHD+M'%*&;:.I [CW%:6EZE:Z
MSI5KJ5DYDM;J-98F*E25(R.#R*BU"QM!8._V6'?;P.(6\L9B!4@A?3CCBO+O
M#,FN:#X.\#:H-<EFM[R>TLI-/,,8A6&4;1@XW[QP=V[GT XH ]AHKRGQIXGN
M],75M3TG7M7N)M-F"M;PV*&QB(*[HI'*9)P>2'R"1TK<OFUO6/B%J6BVVO7&
MFZ?!IUO<8MH8S)YC-(.&=3@?*,\<X&".<@'=45Y0OC+4KCPSX3.HZN]@+Z>Z
MAO[ZUA4R'R2Z@A2K!0Q49.W SVS3/^$C\1:9X06X?4=2NI=4UP6%C<2VD?FK
M;98B5(PBY9E4XW=3@XQQ0!ZU17G-C?>+UCUVUTZ/5+E1I_FZ=/K%O'%(MSD@
MQY4!6'W2,C@\'BMCP/J:WBWEO)JNK7-[#Y9N+/58$BFMF(/944%6[$9''!H
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
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %(0""",
M@]0:6B@"O:6-G81M'9VL%M&S;BL,80$^N!WJQ110 51UC1[#7M*GTS4K=9[2
M=<.A)'?(((Y!! ((Z8J]6;KVNV7AS2GU&_,OD*Z1XBC+LS,P50%')))% &9I
MW@NUL+A9I=6UJ_*(T<27MZTBQAAM.!P"<$C+9-3KX1TQ=#T?2 9_LVDRP36_
MSC=NB.5W''/O3=*\9Z1JNI#3%-W::@R%TMKZUDMWD4=2H<#=CVS6I8:BFH-=
MA+>ZA^S7#0'SXBF\@ [DS]Y3GAAUP: .;U'X<:1J0U&*2\U..RU&5I[BSAN=
ML+2MC+XQG.0#C.,]JZ"'1K6'7[K6D\S[7<V\=N^6^7:A8C ]<N:T** /-]=\
M%264OA^+3=/OK[2]/:[>2.TO1;W0>9MV1)N3*Y+94,/X>N*NZ+X3N]2T?4;+
MQ"+Z.SENTGTZ&XOC-=6>T##><"3NW D#<<#C)YKLK_4+33+-KN^G2"W4JK2.
M< %F"C\R0/QJS0!@VWA<0VEW!+KFM7+7"!/.EN\/%@Y!3: %/OCGO4FB>&;7
M1;NZO!=7E[>W2HDMU>2AW*)G:HP  !N/0=ZVJ* ,:[\,V%[?ZC>RF;S=0L18
M3;7P/*!<\<<'YSS]*)/#-A):Z);L9MFC2)):X?G*1F,;N.>&/I6S10!FZ]H=
MIXBT>;3+WS1#(5;?$^UT96#*RGL00#69>>"K2\%C*VI:I'J%DC1QZC%< 7#(
MQRRN=NUAG'!'&.,5TM% '!^)? T1\$2:)I-O+<M<:A!<7333YEG_ 'R-([.2
M,G:#T],"MS1O"%EH^J2:F;O4+^]:'[.D]]<>:T46<[%X&!G!)Y)QR:Z"B@#/
MNM&M;S6].U:4R?:;!)DAPV%Q(%#9'?[HQ5-O">FMIFNV!,_DZU)+)=?.,YD0
M(VWCCA1ZUN44 <U=^"-/N;Y+N*\U&SE^RI:3?9+CRQ/$F=JOQGC)Y7!YZU+8
M>#M+TY="6W\_&B+(EH&?/#KM;=QSQ7044 <[?^"M)U$:OY_V@-JDT-Q*Z2[6
MCDB50C(0/E(V ]^:R-8\!D:+KLNG75S?:UJ&G-9^;J,P<.N20,8 7J<8 &><
M=37<T4 ><^']$UFW\0:7):66MZ7I]NKB^34]6%TDXV85402/@[L'=\O Z=JW
M]/\ !%GI4\?V#5-7M[**7S8]/CNL0*=V[:!C=MS_  [L=L8KIZ* ,7_A%]/^
MSZ[!F;9K;,UU\_/S1B,[>./E ]>:<WANP9]$<F7.C9^R_-_TS,?S<<_*?;FM
MBB@#F(_ ]G;7DLMCJFKV5M-,9Y+*VNMD)<G+$#&Y03R0I YK4MM"L[74]5OX
M_,\[4_+^T9;CY$V#;Z<5IT4 <Q+X$TQ]%T?38;F^M?['_P"/.YMY@LR?*5/S
M8P<@D'BMR^TRTU+2IM,OH_M%K/$8I4D.=ZD8.3Z^]6Z* .9TOP18:=J-K>RW
M^IZA+9J5M!?7/F+;@C!*C YQQDY..]:VCZ-:Z)!<PVGF;;BZENGWMGYY&+-C
MVR:T** ,37O#%IK]Q8W4EU>VEW9,Y@N+.7RW4. &7.",$ ?E5BWT&SMK_5KV
M,R^;JI0W&6X^5 @V^G K3HH YB3P+I9TS2+2WGOK2728O)L[NWFVS(F ""<8
M8$ 9!&.*V=*TW^RK0P?;;R\9G+M+=R^8Y)Q] !QT  J]10!R]]X'L[W6;W5(
M]4U>RFO@@N%L[ORE?8NU>@ST]Z=<>!-&>PTRULQ<Z:VEAA9SV4Q26(-]\9.=
MP;J=P.3S7344 <Q_P@>C'0[S3)&NY3>3+<3WDDY-P\JD%7W]BNU< # QTIUI
MX)L+:YOKJ6]U&\NKVS-G//=3[V:/GIP O4] ![9S72T4 8MSX6TR\\*1>&YT
MD>PB@CA0[\2+Y>-C!AT8%0<^HJKI7@NPTO6X]9-[J-[J*0/;_:+RX\PM&Q4X
MQ@ 8*\8 ZG.<UTE% &+KOABSUZ:TN9)[NTO;,M]GN[.7RY4###+G!!!P,@@]
M*JKX'TD>'=2T9VNI8]3W&\N99MT\S$ ;BQ'7  '&!CI7244 (BA$51T48%+1
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !65XDT2/Q)X<O\
M1I9FACO(C$TB#)7/<"M6HY9X;=0TTJ1J3@%V &?QH P-8\+S7VMVFLZ?JTNG
M7\%L]H7$*2J\3$,1M;H<J"#_ #K/3X>00Z#:6%OJUW'>6-])?VNH;5,B2.S$
M[AC# AR",#/M74G4K$([?;+?:BEV/FCA0,D]>@%36]Q#=VT5S;RI+!,@DCD0
MY5U(R"#W!% '.OX3N+N#3_[3UNYO;BSU)-0$K1(@)52HC"J %7G/<YSSS45Q
MX&MI[/4K<WLH%_JT>J,0H^1D,9V#V_=CGWKJZ* .?;PU*GC!]?L]4EMQ<11Q
M7EKY2NLXCW;>3RI^8]*P] \-%/BGXCUYK:>&U4)%;"52$>5T3SI$!]=D:Y[D
M-7:W%[:VDEO'<7$43W$GE0J[ &1\$[5]3@$X]J?%/#/O\F5)-C%&V,#M8=0<
M="/2@#'\/0ZN)]6N]5D=5N;QC:6K,#Y$*@*O([M@MCMN'?-9FI^!Y+W4M8N+
M37+FQ@UF-4OH8X4<OM38"K,,KE>#U]L5U]% '/6'A2"PU/2+Y;J1VTW3#IJ*
M5&'4E#N/O^['YU2N? 5K<:;?VPO[B*>XU4ZM!<HHW6T_&, \$#&.>H)KKJ*
M.9T?PE-I_B237[[6KG4;^2T^R.9(U1 N\,-JK]T<>^<DYKIJ:[I%&TDCJB*"
MS,QP !U)-".DL:R1NKHP#*RG((/0@T .HHHH ***9++'#$\LKK'&@+,[G 4#
MJ2>U #Z*165T#HP96&00<@BEH **** "BBB@ HHHH **@M;VUODD>UN(YECD
M:%S&P.UU.&4^X/!%3T %%%5[Z_M-,LI;R_N8;:UB&7FF<*JCIR30!8HJO97U
MKJ5E%>65Q'<6TJ[HY8F#*P]B*L4 %%%1M/"LZ0-*@E<%EC+#<P'4@=\9% $E
M%%% !14?GPFX-OYJ><%WF/<-VW.,XZXSWK/LO$FB:C--%9ZO97$D$HAD6.=6
M*N<X4\]3M/'L?2@#4HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *XSXG_ /(I0_\ 83LO
M_2A*[.J.K:/I^NZ>]AJ=LMS:N59HV) )!R#QSP0* .4^(+1RZOX.M8"IU/\
MMN&6)5^^(5#&8^NW;P?J*YS5+[4I/#7B00ZG=P3#Q;';13)(=T2&2 87/;D\
M=.:]#T?PGH.@3O/I>EV]O/(-K3 %I"/3<<G'MFI7\.:1)#/"UC&8[B[%[*N3
M\TX*D/UZY5?;B@#A?$UE<:3JWAOPQIHU&ZL;PW5Q/&^IO')<,BIA3,3N ^8L
M5!&<>E5KX>(]#\-R6-W-<:?97^M6MK;R&],\]K;2%1(/-ZCD$ DY ;KP*]'U
MC0M,U^U2WU2S2XC1Q(FXD,C#^)6&"I]P:K1>$]"AT>YTE=-B:QNCNGBE)D\P
M\<L6))/ YSQ@4 </\0O"FF:;X#U!;>[U$HMQ:2"&749I!&3,JD_,Q."">I(R
M 1@C-:.JZ?&WBW0/")O+^'1VL[FZ91>R^9=2*RX1I=V\@!V;&[T["NBMO!?A
MVTTN\TV+2XOLEZ +E'9G,H'3<S$L<=N>.U+/X-\/W.DVVF3:<CVMJQ> &1]\
M;$DDJ^=P)R>] 'G>KWE_I/ASQ[I5AJ=X;;3)[3[#</.TDD!DV%X]Y.2%)Z$G
MAL5T>N>$;ZRTNR@TB74-2@2Z-QJ%I-J<D<UX"FWB3/RX;#;,JI/I731>%=#A
MT.318]-A73I6WR0C/SMD'<QSDG(').>*EUCP]I>OK"-2M?.,))C99&C9,]<,
MI!P<#(SVH QM!:QUO1]!O].U+4[2VMY9 MM/.2\S#<C12EB2^T@]S]WK765S
MC>$;,:IH<D"16^G:,LC6UI$F!YK#:&)] "W'<MD]*Z.@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "LWQ!JZZ!X=U'
M5WA:9;*W>?RU."VT$XSV^M:5-DC2:)XI45XW!5E89# ]01W% 'D'PL^,.I>-
M_$MQH^IZ=;0YA::&2V##:%(RK9)SUZ\?3FO8:Q-"\'^'O#,T\VC:3;6<L_\
MK'C7DCKC)Z#V'%;= !5+4]'TS6K=;?5-/M;Z%&WK'<PK(H;!&0&!YP3^=7:*
M /)_!GA_1H?AIJ6I1:38I?I_:2+<K;J) HDE4 -C.-O'TXJQX9UGQ)HNA>"'
MOFTZ32M2CMK!;>*-Q+#F F-S(6PQ.SD;1C.!GK77Z5X6CTOPG=:"MVTB3FY)
MF*8(\YW8\9[;_P <5&_A"-]&\,Z=]L8#0IK>57V?Z[RHS& 1GC.<]Z ..U+X
MEWPFUFZL;S3HX],N98(M-EM99);SRSACYBG"$D$*-I[9ZUW^KZ]'I/A*[U]X
M7:.WLVNO*/#'"[@I]#VK)7PCJ>GWM^^A^(FL+.^N&NI;=[-)C'*_WS&Q(QD\
MX(89S70ZGIEOK&CW>F7@9[>ZA:"7!P2K#!QZ'F@#SC46\42:UX'N-<FTV6&X
MU)90EK"\;0.8)#LR6;>,$_-P<CISQ8/B:\TS0-9N]/L;*TV>(Y[2XN(K1G2&
M+=AKB1%.7;IDY'4'H*U;;P+J/VO19M2\3W%\FCS"2VB^S)&& 1D^?!RS8(^;
MV/'.:OP>%[_3K2^32=;-K/=:G-?M(]JLJXDZQE21D#@Y!!XH SKGQ/J8T[0;
M/3=0TK4=1UFY>*&_BB;[.L:*SL^P.26"C&W=U].E/U'6/$VF/I6AM+ID^LZI
M=21PW8@=84ACCWL[1[L[^P4-@Y!R.E-7X=K#I=NMMJTL.K6^H2:BE^L"X$T@
M(<>5TV%3C;G\:M7?@Z_O[:SGN?$4[:U9737-M?K;(JQ[DV-'Y?0H5Z@G.3G-
M &9<^+-=T2+Q/I^I&RN=1TO2CJ5I<PPM'',F'&'0L<$,G9N0>U26?B#Q/;ZS
MX>756TQK375=4BMXG#6KB(R+ERW[P$ @\+STJZ/ SW%CKW]IZM)>:GK-H;.2
M[\@(L,6U@JI&#P 6)Y)R>]:5QX92XNO#LQNF7^Q7+*-G^MS$T?//'WL]Z .)
M\.S:_'H/C>YU.^L+^UMKF_1K>2U?#R*@/>0@1$9&S'?K6C#KVNS7/AC1=%CT
MNT2^T07;O)"Q2WV^6/D0,,@;L!<CL<\8.M%X,G@?Q#!'K##3=9\^1K4VZEHI
M95"LP?.2.,[<=^M6M/\ "D=AJNCWPNV<Z;I9TT(4QY@)0[\YX_U?3WH Y^'Q
MKK":%&US'9G4(/$4>C7+QHPCD4R*I=1G*DJPZDX-;T^NWJ>.9]$C%L+=-'^V
MJ\F1B3S2GS'/W<#TS52Y\!Q7&D:I9+J,L4UYJIU6&X2,9MY@RLN >& *=^N>
MU1IX#EN;[4KS6==N+^?4-,?39ML*PJD;'.8P,[>IZYY).>U &9I/C2_G\66&
MC_VYHNK)J$4^)+&V=!;21KN')D82*>1U!XK,T2YUV'P+XUO=4N[#4;:VDU,"
MVEM7(>1&8\DR']V<$;,< ]:ZC3/!-[:ZKHE[?Z^UX-'C>&VA2T6%-C1[.<$D
MMC'/3CH*5/ \\=GXCTY=9;^S-9%RPMS;KN@DG^\P?.6 ).!@=>M %9-<UC4=
M2L- T$V%@T>E0WMS<36[2I&'^5(XXPR_W3R3P,51F\<Z['H#!;6Q;6K;7H]'
MF!W""4L5PZ\DJ"'7UQSUK;NO!URE_9:EH^LMI^H062V$LC6ZS1SQ+RNY"1@@
MY((/<CFF1^ H$TFVM#J$TEPNK1ZO<W4B#=<3*X8Y P%!P ,= !UH ?H>KZY%
MXOO/#NN2V5RXLDOH+BTA:(;2[(R,K,W0C@YZ4NL:QK%UXMC\-Z'+:6LB67VV
MYN[J%I@JERB(J!ER20Q))X K4&A(/&#^(//;>U@MEY.WC D+[L_CC%4M:\,7
M-YKL.N:3JS:;J26YM9', FCFBW;@K(2.0<D$$=30!SESXZUVV\-WI^R6,FMV
M&LQ:7(HW+#-O9,,.<KE7'4G!SUKN-(CU6'3PNL7%K<WFXDO:Q&-,=A@L3QZY
MKGU\!0C1!9/J,TMS)J<>J75VZ#=/*KJWW1@*,*% '0#O77,"R$!BI(P".HH
MX?P9XHU/7KB?[=J&FQ72(YFT<VSQ7%HP;"[F9SN7'5MH'(Q5'3?&][_PEVDZ
M9+K>B:M#J+RQ2)I\#I]F=49P0Y=@X^4@]#_*M=/!-U>:HE]KNMMJ#PVDUI#Y
M5JMNP64 .6*D[C@<= .N*ATSP'>6=UH#W7B![FWT(D6D"VB1 KY31_.022V"
M.1@<'CG- '.67BE_#'AN_:$P)<WWBF\M8Y;A6:.+,KLSLJ\L %/ (R<5T_@[
MQ3=:OJ^HZ7<W-O?I;11S0W]M;/ CABP*,K$X8$=CR".E.D\!1-I4EM'J4T-T
MNK2:M:W21C,$KLS8VG(9<,5(/4'M6YH]CJ]H9FU76%U!GVA%CM%@6/&<\ DD
MG(ZGMP* ,2^U?7=5\67VA:#/962:=;Q2W5S=6[3%GDW%$50RX&%)))[]*Y#Q
M'K.L^)?"^CL6L;2[MO$<5A>Q&%I8VG2<*K+\P^3(R5.2<XR,9/;ZGX5O)/$$
MNMZ)K3:7=W,"072M;+/',$)V-M)&&&XC.>G:HE\"6L>A:?ID=[,6MM2CU.6X
MD4,]Q,LGF,6Z ;CZ=* -YC=VNB,TDUH;V. EI64QPF0+]XC)*KGD\G [UQGA
M[QG=W7C&UT:76=)UFWO+:699K"W:+R70KQDNP=2&."/2NQUW2(=?T&^TFX=T
MAO(&A=XSAE##&16%IO@^^M]=TS5M2UTWLFGV\EM#$EHL*!7"C. 2=WRC/..F
M .X WQMXBOM"N-+BAN+?3[*Z:07&IW5LTT=N5 V*0K+C<2?F)P,4R34G_P"$
MR\-1RPZ=>37&F7,QO((LDE?*_P!4V3A6W'C)[<UM:YINK:AY8TW64L%VLDL<
MEFLZ2 XYP2"".>^.>0:Q8? \6CVVE/82RSMH^FW%I# Y ,YD"G)88V\KV]>V
M* .?TCQOX@U>]\-20ZGHK1ZS,_G6$5LSS6D:*S$%O,&3\NTD@8)'!Z5-=^+/
M%QTSQ+K-K_9*6.A7MQ%Y$D+M)=)$<D;@P"';WP<GL!6+X1M-6T==!@TH:N;_
M '00ZE;7FBI##%" /,'G^6K':!\OSL3@=:[X^#(SX<\1Z1]M?;K<]S,TOEC,
M7G#! &><?AF@#/N=1N+SQE=P:=#8V]U)X>CN8KV6W+R#=*_R,0P)7 SC(Y.:
MY?PQ)=Z=\.? [7D6F7D5SJ5G';JUH0T"MN.[)8YD!R0P ZGBO0;?PQ'!KYU4
M73,W]EIIOE[.,*S-OSGK\W2J<'@B*'PWX<T;[<Y71+F"X67RQF4QYX(SQG/O
M0!6T_6/$WB'4M2N-*FTRVTVPOWLA!<P.\EQY9 D8N&&SG(7Y3TYK+\7^-[_P
MW<WEPFMZ'(+21,Z2L+M.T9(!W2!_D?!) VX^M;<?@^_L=5O9M)\136.GWUT;
MNXM!;([>8V-^R0_=#8YX/4XQ6?J/PXN+VUUG3H?$$MMI>JW3W<L M49Q(Q!(
M\PGE<@'&,]LXH LW^K^)K[QKJ&@:-+IMK#;64%S]IN87E8,Y<;=H8 YVCG/&
M#P<\<UJFO>(?$.@^!]4M+NUT^6ZU8031^4[J9E$RD\.,Q_(WRGGD<\<^A6VA
M);>*K_71.S-=VT-N8MO"B,N<Y[YW_I6&? /E^%=+TBUU5X;G3+XW]M=F -B0
MO(V&3/(Q(PZ^] '76RSK:PK<R))<! )7C0JK-CD@$G SVR?K4M16R2Q6L,<\
MWG3*@627:%WL!RV!TR><5+0 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
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
MF^1MS-@8R3W/O4M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
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
MO"_#5G!XJGT-S:E]074'NK[4YK]#]IA!<A!&)"X)^3Y2HV[?SUKG0K75M/\
MB'J5Y+=O<V%Y<FS(N746S) CAD ( ;..?8"@#UZBO(KV;4_$?B;0["YLK74H
M'\/Q7JVMY?/;1R3,V'?Y4;>P 7@CC<33]3M-9\/>$](E6Y2;Q'::H\>DVL%P
MUP)HG8YMW=@I953.6(&-@Z4 >M45ROPZ:"?P9:7D=U)=7%VS3WDLHPYN"?WB
MD?P[2-N.P45SMG;+X>\;PW.K6B7YU749A8:O!=L70LK$0R1Y^ZJAE!&5X&0#
M0!Z917B/AW3/$'B#0+77H;?3XM9:\\R759M6E$J,LWS1-%Y>T+M!39NQC%=)
M9Z?I7B+Q'XMN?$EPZSZ;>B&#==M#]CMQ$C+(N&&W<2QW=\4 >E45P%IJ$5IX
MD^(ANKM8HX1;R#S),!%-L.1GH,@_C7.6%@FNVOPPL+Z>X:UN-*N&N(TF9//"
MQPD*Q!R1F@#U&35T@O+V*XM;F&WM(!.]XZ#RF')(4@Y) '(QW%-DUJ(Z=I]_
M96US?V]\\0C:V3.U).1(P8@A0,$]QZ5P>IZ;;2ZUXQTAHW:Q@\/6HBA,C879
MYQ7G.?X1]<<U5@L;/2_AYX%?308C=ZEI4DY21CO9@N[.3W].E 'K-%>.3:=J
MWBG6O%V;*SGO+6]>VMKFXU:6WDL4"*8VC18V '._=D;CG/2K_B6PNK!HO$6O
M0P:[8V>FP)>QPWC126<B\O-". V[.>JMP,>E 'IM]>V^G6%S?7<GEVUM$TTK
MX)VHH)8X'/ !Z5EZIXD@TY-$DCB-Q%JUY':Q.IV[0Z,X?D>B]/>J7C^UMM3^
M&^NF6,R(-.FGC&2"&6-F4\>^.*X[5M!TU/"7@:QL_,@M[S5K625H)V#$M;OD
MALY7( Z8]L4 >LT5Y>'TWP;J_C2T NX]#ATNWNVMH)GW(S>8K>6<Y4MM7D$<
M\U6T6Q%I\0K/33I4&EV>IZ1<&XLX-2>X\Y<IM9Q@;6P6&X$YR>>* /3M,U2S
MUBQ6\L)Q-;L[H'"D?,C%6&" >"I'X5;KS[X2:1IUCX6-W;0A+J2YNHI6\QB<
M+<2!1@G P,4CZ)::]\6-8346GEM[2QLY8[<3,D?F%I<.0I&2,''U- 'H5%>)
MVFFZ]XFL-8U*&WL$UB/49T34Y]6EBELFCD(5/+$9"J% ^7=\P.3UK?FT"T\1
M^.?%\.K-/+%;6EH8X4G=(T=HWRX (^8;>">F30!Z;17C6EV?V;PYX!\3"ZO)
M-9OK^UANKJ6X=FECD5@R$$XVX P,=L]<FH?'5W;W&G>(]<TK2_+N-,O/(.K7
M&INDJ3HRY$4>"-O.-N5!YXH ]?COVDU:>P-E=(L42R"Z91Y3DDC:ISDL,<\=
MQ5RO-O$,TJ^(O'*K*X">&$90&/RG$_(]#5*TTF#0[CP#JMG+=?;M1D2&]FEN
M'<W"/;LY# G'!48XXQQ0!ZM5.[OVM;RRMULKJ<7,A0RPJ"D.%)W.2> <8XSR
M:X#1K9?#WC2U75;5+VXU6ZN#8ZU!=LS2 AG\N6,G@*N0,97@=#6YXKD=/%_@
MI5=E5[^8, <!A]FDZT =?17B=YI$$W@GQIXA>>[.J6&JW[V4WVEQ]F\N8D!
M#@<YSQSGZ5Z%X[U*_L/AMJVH:>S)>)9[U=.J9QN8>F 2<^U '55QJ^/1_9FM
MZS)I,J:-IGGJMUYREYWB;80$Z@$@X)/;G%8N@^%[Z'6]-N8;/3;#2I[>6*\%
MOJ\MRU^C)\K8:-06!P=V<X)KE9/#.D)\%/$MVMIB=+J[VMYC\>7.ZIQG' )'
M\Z /9]'N[^^T]9]1T[^SYR?]1YXEX['< /R]JOUY7XATUH?%6@>&;'3K>?23
M8SW,=C=7\D$4TV]<Y8*Y<J&)"GCDGM4%Y9:II&@:;HVKW<<&FWOB)8'2VO7E
M\BU9"RP&4A6P7&.W! H ]0U'5+/28(Y[Z<0QR3) K%2<N[!5' [D@5;KROQW
MX7\-V?AVW@M(P(X=8L_,A%T[+ ))45AC=\F5Q_.O1H;&WT_1S96,>R&*)EC0
M,6QUXR3GK0!>HKR"WU6,_"[X?+]N'VB?4K!,>;\[E90''J<=ZL3Z!9ZYJ'Q!
MN+][J1[.?-JHN'58'%JC;U (&[..?;ZY /3)]4L[;4K/3IIPMW>+(T$>TG>$
M +<XP,;AU]:Q]=\5_P!A:;K%[+I=V8]-,0#OA$N-Y49C;G.W=@Y Y%<(^EV'
MB'6?AO>ZQ%Y\^H:1*]S(TK*9&$$3#H1SEF/%-\7R.UI\3$9V*))IVU2<A?EC
MZ4 >K:C>-8:=<7:VMQ=M"A<06ZAI),=E!(R?QJ--7LVU*'36D,=_-;&Z6W93
MN$8(4DGIP6 QFL?XB.\?PY\1/&S*ZV$I#*<$?*:Y>30-)O?BOI,UY;[WET)I
MRQE8;I$DB"G@]E[4 >A:E?MI\$<J65U=EYDBV6RAF4,<;CDCY1U)]*N5R'Q%
MD>+0M.,;LA.L6()4XX,Z9%8>IVRZ'XT;6]6M4U2QO-1@BM;V*Z836#G:@B,>
M0"F[D[3GYCD&@#TNJVH7;6.GW%VMM/=-#&7$%NH:23 ^ZH)&2:X_XGW5Y#I>
MCVMMM\B]U2*WN0]PT"O&0QV-(H)568*"0.^.]8%]HVK:%X7\:2-#9:;I\FCN
MT5A:7\EQY4H5\R+N1=@88&!W7- 'I*:Q9MJ%MISNT5]<6QN4MW4[@@*ALD<
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
M&]0NA<WFA:?/.)#+YDENK$N<9)..>@Z^E:4.H65S<26\%Y;RSQ_?B2569?J
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
M,'&>,CUKOHK6W@M_L\,$4<."/+1 %Y]AQ20V=K;!1!;0Q! 0H1 N >2!CUH
M\$TG_A&F^%WAZ+219_\ "6F]M3"$ ^U";S5+$_Q;/+SS]W&.V*Z#Q3]K\CXF
M_8RP/VJP\XJ"3Y/E0^9P.2-F[..V:]92QM(YEFCM8$E5=BNL8#*OH#Z>U97A
MWPZ^BS:G=W5^]_?:C.LUQ.T0C'RH$50HX "J* .'TRQ5]6DU#1-<\-->II%Q
M'%9Z'#Y9F!"^6S#S&^ZV,''\1%6O 2^!;K0- MHX]*FUF2T*S1LBM<&0QGSQ
M(/O<G=G=P>/:O1+>QM+0N;:U@A+G+&*,+N^N.M+':6T,\D\5O"DTGWY%0!F^
MI[T <)\(ET>+PC'!:+9)J<;S)>I$$$RXFD"B0#YNG3/X5'J-OH5K\:+>;4X-
M.B-QI ,,ERB#S+@3@#:6ZR 8QWQBO0([:"&626*"-))3F1E0 N?<]Z);:"=X
MWF@CD:-MT9= 2A]1GH: /'&?PN?#7C)/$OV(^(6O+L,MP%-R3D_9_*S\V-NS
M;MXKTS3%U5/ EFL^XZP-,0/N^]Y_E#.??=6J]E:RW*7,EM"\Z?<E:,%E^AZB
MIZ /!4?PD?!?@H6GV,^(/[1L?M&S'VD2^<OG>;CYL;L_?XSMQVKJGUO3=$UK
MXAVVI7D5M<7#1R012-AYU:V51L7J_P P(XSS7::[X8M-9AA5=EK(E[!>/)'$
M-TAB<. >G7&,UK26EM+.D\EO$\R A9&0%E!Z@'M0!Y=X?\W[7\.O(QYO_"+S
M;,]-WEV^/UK"\+6,.H:)H2SZ[X<L=4AOXY9=]N5U'[2)/G1V,F2S'*GY<$'I
MBO<%@A0QE8HU,:[4PH&T>@]!P/RJ/[#:?:_M7V6#[3_SV\L;_P ^M '!>&[?
M0K+XJ^*H7@TZ#4'FMI+)"B+*0;<;S'WY(?./?-.^)K:4NJ^$#K9C&F_VD_G^
M;G9CR7QN_P!G.,YXQG/&:[YK:!KE;EH(S.HVK*4&X#T!ZUF:OH$>KZIH][),
M5_LV=YA'L!$NZ-H\'T^]G\* /*M8\MK3XAR>$/+_ ++-K9K(;$9A,FX^?LV<
M$^5][;_.NB\+V-C+XMTV_L=<\,?NK.6/[)HL'EM/$=N-X\QN%(!''&3ZUZ/!
M;P6L(AMX8XHAT2-0H'X"F6]C:6CN]M:P0L_+F.,*6^N.M 'CFEZ+IMG^SK>:
MC!90K?7.DS>==; 97!)X+==ORKQTX%;LKZ*OQ&E_X2PV0MO['@_LPZAM\G&6
M\[;O^7?G9GOCVKTG[/#]G\CR8_)QM\O:-N/3'2FW%G:W<:QW-M#,BG(61 P!
M^AH \6A%LGAK2#> +X/;Q3,T8E&(1:?/Y.[/_++S.1GC&VKT%OX7O/%'C:WT
MV]MK#2+G1X8I[NU(6&-V:1693]W'3..,YSSFO7I(8I83#)$CQ$;2C*"I'IBF
M):6T:;$MXE79Y>U4 &W^[].3Q[T <!X.U[3],.MV]TFB+#I=M#)/JVDH!#-'
MAL!PN<.H!. 3][C%=W/=QKI<MXB-/$(3*JQC)D&W.!]:IZEX<T[4](;2GB$%
MC)(KRPVZJ@E 8,5; ^Z< ''4<5J@!0   !P * /$M(O[*\\3>!;RPB\.V?GS
M.1::6O[^&-H'^25A@'D#(*CD'T-7/^80?^Q_'_I37K4=C:0N7BM8$8OO++&
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
M;R!CKN_B]Z];$:"0R!%$C  MCD@=!G\344-E:V\LDL%M#%)(<NZ1A2WU(ZT
M<-X"T739-8\3ZO+90R:@FO74<=Q(@9XU&.$)^[]YLXQG/-.^)EKI?VCPK>:G
M;VAMX]9CCFFN44JL9CDX8GHI;;UXSBN\2-(]VQ%7<Q9MHQD^I]Z;-!#<Q-%/
M$DL;=4D4,#^!H \T$OA@?$/5#XA;2Q8'3;7^QC=^7]G-OAO,\K=\O7;G';':
MMSX7HZ>#OD#BP-[<G3@^<BU,K>5UYQCI[8KJYK&TN8TCGM8)4C^XKQA@OT!Z
M58 P,#I0!X=/:1ZA<>,;36=6\-Z?=RZA.&DU2 _:HXN/)>-S(N%"[2N!P0:Z
MN+0['4_BH8]6@@U(V_AZVPT\89&?S907VG(R>?ID^M=]-8VEQ,DT]K!+*GW'
M>,,R_0GI4WEH)3+L7S"-I?'./3/I0!XG]DTX?#GPU)?P6S6ECXF,!DN$#+#;
MBZD4J2W1,!0<\<"M37C:M\0K+9=>'H-(.CJ--;48/,M"?,/F"+#JH;;L_P"
M].]>JM:V[0- T$1A;.Z,H-IR<G(Z=:9+8VD]NMO-:P20+C;&\8*C'3 /% 'D
MW]@6+VO@?2IKZSU?3I-8NF4VH_<;/+E;RE^9LHI!7&2,#'2N@O+6WLOB//;6
MD$4$$?A:4)%$@55'G]@.!7>BWA41@0Q@1?ZL!1\G&./3BE,49D\PQJ7V[=V.
M<>F?2@#QS3]%TW3O OPZU.SLH8;^34+ R72K^]<2##@MU((.,=, #L*R[R73
M-2U77='U$Z);//KYE?4-1EVW$2)(N$"E,$%5POS@;6Y'6O=OL\/EQQ^3'LC(
M*+M&%QTP.V*XN7X?W#V&H:1'X@FCT6_FEEGMOLL;2XD8LZB4]B2>2"0.] &_
MXFN[?2O"&J74EB+NVM[.0M:(,"1 IROL,<?2O.O#EQ;O\3- >T?P^OFZ9<^;
M%HB855_=LJR-G#8.<<#OQS7K<4*0P)#&N(T4(HZX &!4<%C:6V/L]K!%@DCR
MXPN">O3UP* .-\?2C2]<\)^(+H-_9NGWLJW<@!(A$L119&]%#8R>V:S_ !?X
MBT7Q'K'A31-(U6RO;QM8@O&^SSJXCBBW.Q)!P">@'4YKTAE5U*L 5(P01P:R
M;_POH6IZ<]A=Z5:M;,P?8L83##HP*X(;W'- 'GMQK>FZ/9?$G3]0O(K>]GN9
MG@MW;]Y*)+9%0HO5LD'I^-2V'VG^V/#7V+_C[_X0R7R?]_\ <;?UQ7I:Z?:
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
M90F60B0(/P4'H-U5;:WO-3T#XFF%KF^:[@4P2M:& W!^SXRJ8&>1@$#G@]Z
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
M>&>%X98FQG#(P!'!S0!JT5RGB#6]5?Q+9^&-!-M#>S6S7ES=W,9D6WA#!1A
M1N8L<#) &#4.G:QKFD^+[;P[K]Q:WR7]O)-97MO 86+1XWQNFYAT8$$&@#L:
M*Y.V^)/A>\DM1!>S-#<R+"ES]EE$(D;HC2%=JL?0FKFK>--%T:]FM+F2Y>6W
M027)MK229;9#R&D**0@QSSVYZ4 =!16!J7C30]*GM8)[IY)KN#[1:Q6T+S-.
MF0/D" [CR#@=LGH*OZ+K=AX@TU+_ $V8RP,S(=R%&5E.&5E(!!![&@#0HKCK
M[6-<UCQ9>Z!H%Q:V,6FQ1O>WMQ 9FWR E(T3<H^Z,DD]QQ3=*\4WVFZEK6D>
M*)+=I=,LQJ"WMM$RK/;?-EBF20RE2" 3GM0!V=%<U!X^\.W&EWFJ+=RBPM-F
MZY>WD5)-Q('EDK^\Y&/ESS67I7C)=:^(WV"UN+B.QBTAYY[6ZMF@>.42H S!
MU##Y3].: .YHKG-/\<Z%J=_;VMO/<?Z466UGDM9(X;D@$D1R,H5N >AYQQFG
MV?C31-0UU]&LYYY[R.62&4);2%(G3.0[XVKG:V,GG'':@#H**HSZO96^L6FE
M2RE;R[CDE@0J<.$QNYZ9&X<5GCQEH+:1JFJK?!K/3)WMKIPC'9(A *@8R>2,
M8SG/% &]17%:SXQ_L&'Q5>M<F^.FQQ-%9)9N# S1;@'< Y#=2V %[U2UOQXB
M:;X8U:*:YL;.XU1(;P3VKQED,+L5"NNYANVX*CDC H ]"HK(T/Q+IOB'[4MB
M\RS6KA)X+B!X98B1E=R. 0".0:76/$5CHCQ1W$=[--*"R16EI)<-M'4D(IP.
M1UH UJ*IZ5JMEK>EP:EITXGM)P3'( 1G!P00>00000>A%<5#X^MM*\4>*;/5
M[FZEBL[F,PQP6CS>1#Y",S-L4[5W$G+>] 'H-%<]J?C?0-*6Q,]XTAOX3/9K
M;PO*UPHV_<"@Y/S@X],GH#3+_P =:'ITPAD>\EE$*W$L=M92S-!&PR&D"J=G
M'8X/M0!TE%<CJ/B(R^)?!YTZ_1]+U+[2\C)@K*BPEE.3TP>>WO5__A,]"_L0
M:PMT[63S_9X76!R;B3. (E S)D@X*@@X/I0!OT5S\?C31'TC4-2>>:&+3O\
MC\CGMWCE@XR-T; -R#D<<U<T7Q!8>(()9].:9X8WVB1X'C63N&0L!N4^HR*
M-2BJ.KZQ9:%I[7^HRF&V5T1I-I8*68*,XZ#)'/:FW6N:=9:G%IUQ<".YE@DN
M0I!PL4>-S,W10-PZT :%%<UIWCS0-4O[:T@FN4:[S]DEGM)8HKG R?+=E"MQ
MSP>>U7QXETHZ=JU_]H/V;2GECO&\MOW;1KN<8QDX![9H UJ*B@N(KFUCN8FS
M#(@D5CQE2,@\^U8-KXOT[6;6[.EF[.VVDFAN'LY$BE"\;D=E"L,D=#S]* .C
MHK@O!7Q"TW4]$T"VOKV>34KRWC1KA[9UAEN-F602;0A?KP#[=>*V=4\=:%I%
M[<6MQ-<R/:@&[>WM)9DM@1D>8R*0O'/)Z4 =)5.ZTNTO+^RO;B+S)K(NT!+'
M",PVEL="<9 /;)]:B37=-EU*TL(KE9)[NV:[@V E7B!4%@PX_C7OWKG?%'BG
M_B3^=HMXRRV^MVVGW+>7C!,J"1/F'/RMC(]: .SHKE]?\<:-HTUY8R7,WVN"
M'?*T5M)(EMN!V&5U4JF?]H_I5KP3?W6J^!]#O[V4S75Q9122R$ ;F*@DX'%
M&]17)VWB_3M-T:>_UC6HY8/[3FLUG%JT81@S 1D<YQM(W=ZD_P"$[TF?2=6N
M[47AGTV,/-;2V4R3#=]P^65W%3Z@=,GC% '445YWX.\7P0>#+;6]=UC4KF>]
M,0\J>R*DS,N[9;HL8:1>>"-PXSGK726WC31+K2]2OQ/-$FF(7O8I[=XYH %W
M?-&P#<@$CCGM0!?T+1;7P]I2:=9M*T*222 RD%LN[.>@'=CCVK1KF!\0?#?]
MG2ZBUY+'81S)#]JDMY%C<N2%*L5PRY!^8<<5"/B3X<;S8Q+??:HB,V?V";[0
M5(R'$6W<5P,[L8H ZVBJFF:G9ZSIEOJ.GSK/:7"!XI%SAA^/(^AKF=%\>0:U
MXBUC1UL[R)K.7RX96M)@K#RPY+DJ ASG )&1@CJ* .QHKSWP-\1=/U'P_H,&
MIWT\FI7B+$URULXA><Y/E^8%V;_8'VZUT&I>.-"TJ]GM;F:X8VNW[5+#:R2Q
M6V1D>8ZJ53CGD\#DT =%12(ZNBNC!E89!!R"*\Z\$_$?3[KPWHZ:Q?3R7]PW
MDRW1M7$/G%CM1I NP,1CC- 'HU%<_-XTT2'Q"V@^?/)J22I')##;2/Y>\*59
MB!A5^=?F/'/L:KW'Q!\.VUY+!)=3^5#-]GENUM93;1RYQL:8+L!R<=>.] '4
M45Q\WB7^S/&^N)J5^L.D66E6]SAP,(S/(&/3))VJ,?3%:5[XPTJP2S\P7DD]
MW#Y\5K!9RR3^7QEFC52R@9'4#GCK0!O45SMUXY\.V>D6.JRZ@/L5\YCMY%C=
MM[@,2N ,AOE(P1G/'7BM6UU2"[TA=3CCN%@,9DV/ ZR@#.1Y9&[/'3&: +M%
M>:R?$636?A[XCU&QANK'4+&&Z:)VM9%0;&95(9UVEN 2O4'.1Q72:%XVT;6;
MJVT^&YF-W-!YL32VTD:7 4#<8W90K@9_A)_*@#IJ*YU?&^B-JD-@SW<;3S_9
MX9Y;*5())>?D60J%)X..><<53TCQW;ZGXRU7P_\ 8KQ#:2)'%*;28!B4+-O)
M7"#(X).&[9H ZZBJ-UK%E9ZK8:9/*4NK\2?9UVG#[ &89Z X.<'K@^E4;OQ=
MH=B-2-S>[!ILD<5P?+8XD< JBX'SL01PN3S0!N45@Z;XPT?5#>)')<03V<7G
M3V]W;202K'S\^QP"1P>1FK'_  DNE#3=*U#[0?LVJR11VC^6W[QI!N08QD9
M[XH UJ*K7]_;Z98RWEV[)!$,L50N>N.%4$DY[ 5EZ;XOTG4Y+R*-KJ">TB\^
M:"[M9()!&<X<*Z@D<'D4 ;M%<U8>/O#NHV%SJ$%[(+"VA$TEW)!(D6T]@Q&&
M8'@J,D'CK5O1_%6F:U>26=N;J&[2,3>1=VLD#M&3@.H<#*YXR.G>@#:HK+UG
MQ!8:$+=;LSO-<L4@@MH'FEE(&3M1 3@#DGH*(O$.FRW.FVPDE6;4HY);:.2%
MT9E0 MD$ J1N'!P: -2BN*\:^+$M/"6MW.E7QAN]+NK>">0ICRRTD6X?,,$;
M'Z^]:^D>,=&UO46T^SFG6Y$7G(EQ;20^;'G&]-ZC>N>XH WJ*Y/3?%]C;>%-
M+O[_ %1M1FO2R0/:V3B2Z8$_<A7+< <_3/>KZ>,=";0;C66O3%9VTABG\V)T
MDBD! \MHR-P?)'RXR<C'6@#=HKA]>^)5AIGAJZU.UM+Z2X@ECC:VN+&:)EWL
M,%@4RH(S@]"1CK76Z;J,.JV$=Y;I<)%)G"W$#PN,''*N 1T[B@"W17'^&O'U
MKK^J:M9O:W5L+*X>-)9;65$,:HK%G9E 1N3\I(. #WJU8>/O#^HWUM:P3W*_
M:V*6D\UI+'#<L.T<C*%;IQ@\]LT =-16)XN\0CPMX7O]7,$D[V\3,D:1LP9@
M"1NV@[5XY8\"N9UOQVD=AX8U:*:YL;*XU-8;P3VKQEE\EV*A77<1NVX*CD\"
M@#T&LQM#M7\3)KSO*UW':&TC0L-B*6W,0,9W$@ G/0"LF7QCIVH^&];N]/OY
M+&?3H6,[75E()+4[2P9HF 8C'(]:GN?&&EZ8UM:W,MU=736R7$GV2REEVQGC
MS&"*=BD@]?0^E '14444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 5A^,)M9M_"M]+H$;/J2JOE!5#-C<-Q4'@L%W$ ]2!6Y10!Y=H^GZA<>,
M;^_6#7I;1]"DMDN-6C".\OF [54 8Z]"!GG'%6$T745\ > +06$PN+*]T^2Y
MBV?-"%'SEAVQGFO2:* /*YTU;2=*\:>'QX>U&]N=4NKNXM)X(P89$G7@LY.%
M*],'DX&,YKT'PY!+;>&-)@GC:.6*RA1T88*L$ (/XUIT4 >6?V#J8^";Z6-/
MG_M WID^S^7\^/MV_./]WGZ5JQW%[X4\9>)+F?1-2O[?57AGMI[&#SN5B"&-
M\'Y<$9!/&#UKOJ* /*X]!U;0/"'@^2;3IYYM.U9[V[M;-?->%)/..% ^]M\Q
M0<>]>BWL3ZMX?N(8M]O)=VK*OF#:T9="!D=B,U?HH \F\,Z(#;:!I>KV7BP7
MFFR0$Q/@V<<D6,.'^Z4XX ).#C%/;1]6'CX>.AH\OV7[;]D-AY9\WRMOE_;-
MO]_/;&?+KU:B@#R Z#+97'B+2]7MO%4T-_?7$\8TL;[>XAF.<$XPK<E3N(Z5
MO(MSX0\::A>?V-J=_I]_8VL5O)9Q><\30AE,;C/&=P.>G7FO0:* .!N[G4=)
M\>)KTF@ZE<6]_HT5OY=I&)7AG61G*/@X'#XW9QD'FL2#2=9M?AWHLD^D77VJ
MQ\0F_N+.)=\HB%S(QVC^+A@1CJ*]9HH \PUBSN_^$T_X2&2W\21Z?J&FQ1*=
M-0^= Z,QV2Q@%@"&!]CG-*^CMH?_  B>LZ;I&KSV-A<WCW-K*@DNU\\']YL!
MY^;)P.</TZUZ=10!Y_H5SJ5MK?C/Q%+X>U&..XCMI+6V*#SK@)&RG S@,>.,
MY&1GGBN\MY3-;12M&\3.@8QO]Y<C.#[BI** /*[;0M57P%I-HVGW N(O$JW+
MQ%#N6+[:S[R/3:<Y]*]1F_U$G^Z?Y4^D8!E*GH1@T >*:%)J'B'X5^'/#%KH
M-_',\ELYO6C'V=(DE$AE$F<9(7&W[V2?K727D'B/33XVO-)M+A;BYU&V>%XX
M@SM#Y42R-$&X9@ V >XKO-+TNST72[;3;"+RK2V01Q1[BVU1VR22:N4 >1IX
M?U76]1\3^1'K0BO_  _]CM[G5U".\NY_EP -J_-T(!ZGIBNCL]7O=4\*3Z./
M#>K6=Q'I<D4GGP!(UD$>T(AS\^3T*Y&!VKN:* //= T>_@USP5-/93(EGX<:
MWG9DXBEQ"-I]&X;CV-<]K=GJ5C974<=K/'>77C(W-DL:+YL@$8(>,,0K?=.=
MQ QNYKV.L[6-"T[7[:.WU&W,JQ2"6)ED:-XW&0&5U(93R>0>] '+^!IT76M9
MM[]-23Q!<"*ZNQ?111[H\&-"@B9EVC:1USG.:/%5SK:>)X8 NMKHIL]R'1X5
M9Y+G><J[$'8NW&.@R3D\5TFC^'-,T)YY+&"03W&/.GGG>:63'0%W)8@9.!G'
M-:M 'E?AS0-5MM*^'D5SI]PCV%Y=/=*ZY,(*3;2WU)7!]Q75Z%875OX]\6W<
MMO(EO=?8_)D*X63;$0V#WP<"NIHH XG7X-0T3QY:>*;;3;G4;*33VT^[BM%#
MS18DWI($S\PR2"!SWIEDE_XI\=:?KDFEWFG:9I-O,D'VU/+EGFEV@D)G(4*O
M4XR37<T4 >'Z+)J&O?"/3?"EIH-^)[F5 MYY8^S+&+C>93)G@C!^7[V>QK;O
M-'N=-\4^(S?Q^)GM-3G$\$FD#?'(IC5"C@ E6!4CG (Q7I.E:59:)ID&G:?#
MY-I "(X]Q; ))/))/4FKE '#:7H3V'C3P^UK8W46FVGA^2V5IQEHFWQ;48C(
MW8!Z'L:T/!-A=6 \0BZMY(?/UNZGBWKC?&Q7##V/-=310!P<QO\ PEX[UG53
MI-]J.EZS' YDL(O->":)=A#(#DJ1@Y&>15"YTS5O$ \7>(9=+N;3[3HCZ9IU
MG,H\^1=KL6903M)9@ .O%>ET4 <#KVD7_P#P@/AO[+823S:3/8W<ME& '=8@
M-Z*#QN'7'M5*:WU+Q7XOU&ZATB_TZTN/#EQ80W-Y%Y9,K.I&5ZKC/&>3@\>O
MI=% 'E7AG1TE70+#5++Q:+S3GB8Q3X-I#+&N-P?[I3KC!)P>E=7X'T^XT]/$
M)N;9X&N-<NYTWK@R(S#:WN".AKJJ* ..^(5IJ*66FZ[H]G)>:EI%X)D@B&7E
MC<&.10/HV?\ @-<;:>"M6TW5](T-;2632M16SO=5N,?(L]N&:0-_UT81?D:]
MCHH \[U+0M2O)?B5'%:29U*TBCLRPP)F%L5PI/\ M<4Z<7FN6/@J6/2-0@^P
MZI$;B.YMRC1A;=P7(/\ #N(&?6O0J* .6TFPNH?B/XDO7MY$M;BTLECE*X61
ME\W< >Y&1^8JGXNN=:B\064*#6$T1K9R[Z/"LDS7&X;5<D$JFW/(QSU-=K10
M!R/PTT^]TSP3!:ZA;3V]R+FY9HY\;P&G<@DC@Y!!R.#FL5;W4?#_ (F\8RR>
M&M4O8=1GC:TEMH0ZRL+=%VMSE5S_ !'C[WISZ110!YMX:\+ZCH^K>"(;NW9_
M[.T:YBN)0-RQ2L8L+N]?O >H!JU!<WWA/Q5XEDGT/4]0AU2>.ZM9[&#S=V(E
M0QOS\A!7@GC!ZUW]% 'CD_P]U2\\.^#M!N1-;,B7YNIK<[EM3*C,JL1P5RP0
MCH1D=ZT=7L]<U71O#MY<Z3?6EQH=ZT5[;:: C,OEE/-M^S+R" .<$CM7J5%
M'E6IZ&+[P3XOETRQ\13:A?VD<.=40B2?9G:$4X;C<>H[\5WNK:W!H":3 ;:2
M5KZ[CLHHH0,J6!);']U0I)QV%;%026=M-=P74D"/<6X812,,E-V-V/3.!0!6
MUS28->T*^TJY'[F[@>%CCID8R/<'G\*\N\/:7K/C3PEXFO;T!-4ET_\ L*V8
MOPQA4B1L^CRDY/\ LU[ 1D$<\^AJGI.DV6AZ7!ING0^3:0 B--Q;&22<DDDD
MDDY/K0!P<TFH>*$\+Z7%X>U+3GTZ^M[N[ENH?+BA$(.51L_.6/RC;G@Y.*HZ
MC'K&GZ1XZT"+P_J5W<:M/=3VDT$8,+1S1 9+YX9<'Y>I.,=:]7HH SM,C>W\
M.6<<L#-)':(K18&20@RO/?M7!^'K?4;:_FT_1K36X/#IL)M]IJL.T6TO&Q(&
M/S,.6R,E1@8->FT4 >:QZ)J*_#[P%9BPF%S97NGR7$6SYH0OWRP[8[TMM-J/
MAA_%&FR^'M2U"34;^>[LY;6$/%.LJC"N^<(5(VG=C@<9KTFB@#S"STC4_!ES
MX/NI]/O-1BLM(DT^Z^PQ^:T4C&-@=O4KE2,_3-58])UJZ\-:DTNCW5O<7/BR
M&^6W8!F6'S(6+''&  <D<<&O6:* /.<ZEH&L^+;,Z#J&H-K$_P!HLY[>,-&X
M:)4V2.3A-I4]>QXSTKI? EI<6'@+0;2[A>&XAL8DDB<89&"C((]:Z&B@#RR/
M0M4_LBQB;3Y]R>,GO&4ITA\Z0B3_ '<$'/O6]?:9>OXZUV[2UE-O/X?2!) O
MRO*))3M![G!'YBNUHH \QCTS5-+T/X>:JVEW5S_8UKY5[9Q)F9-]N$W!#U*D
M8('/)IFJ:=J?B"'QKK4&DWEM'>:+]@M+>>+9-<NHD)8IU'+A1GDUZC10!Q7B
M72KJX\,>&;6WLW=K?4M.>6)$_P!6B.NXD=@ .:MV^GW*_%6^U$VSBU?1H(5G
MV_*7$TA*Y]<$'\JZJB@#EOAS876F>!K&TO;>2WG22X+12+@@&>0CCZ$'\:I:
M0MWIWCOQ1;SZ;>F+4Y8KBVNTBS"56W52&?L=RD8/J*[:B@#R^VT+4D^%?@ZP
M_L^=;RTO[&2>'9\T068%R1VP,DU4DT.;3]3\2V6J0>*9+?4KZ:XB_LD;X)XI
M0,JV!\K#E3NP, 5ZW10!6TZVCLM+M+6%'2*"%(T60Y90J@ $]SQ7D-G::U=_
M#"P\$-X:U.VU"26,&XDB @BC$XE,A?/! 'W?O9[&O9Z* .5\/:?<6WCGQA>S
M6SQQ7<UIY,K+@2A8%!P>X!R/K7&1VVKVOPXO/ 9\/:A+J<@GM4N1$/LKB21B
M)C+G &&R0?FR.E>NT4 >4>(/!VKW/B^74;&)II=+L+*6U6<?N+R6)I=T;9XW
M8.0?X20:FU:VO9O%T'B66T\1V]C?Z7'"5TY#Y]M*KLQ21 "V#NZ@8R*]1HH
M\W3P\(T\'_V?IVI"VBUF:\N!?*#+'N27+OC[N6((^HZ&O2*** /*EL]3'P[\
M7^&CH^H"^W7\D+>2?+G$DC,GEM_$2&'%=)J6FW;^*/ \\5K(8;/[0)W5>(@;
M8J,^F3@5V-% 'CES#XFUB321J5MK\FI0:Y!-=1>2B6,,23\%"!\X"X.02>I.
M*[#31=Z9\3-?$VG7K6^JK;/;W4<6Z$>7$RL';^$Y'0]<BNSHH Y#XCV[KX8&
MM6X'VO0YTU*+)QN$?^L7/HT9<?E7,IH>J#P;H6NBQDN[\ZRNO7]I'CS'$@;Y
M5!QED5DP/]BO2-6TFRUS2YM-U&$S6DX DCWE=P!!QD$'&0/K5T    8 Z 4
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
M2]G1 CRLI8*5#%AG! ;&#CCCFK8\9_:-6N+73]$U*^M+2Y^R7-[ (_+CEX#
M*6#,%S\Q ..>M9A\,:H?"'@?3O*3[3I-S927:^8,*L495\'OSZ4NC67B;PU?
M:CIMKI%O>V-WJ4MY#?-=B,1)*VYE=,%BRDMC'!XZ4 7+_P >P6<FHRPZ1J%Y
MINER&.^OH!'LA90"^%+!GVY^;:#CGKBMC7?$-GH/AR?79P\MG"BR'R1DLK$
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
M;:L@,<Q6,$F;=\Q(ZKCOUJ_!IFOZYXNM=8U;3(=,ATVRG@AB6Y$S32R[0S9
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
M#<7T?E!%7 )95+AV SR0.QZXHU7QFECKJ:+9Z3?ZG?R6:WD:6P0*8RS+DLS
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
MIWCK4YY]!FU#P^++3-;98[6?[6))%=HRZ[T"@ ,%.,$GU Z4 =Q169XBU?\
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
M)3VZZCJ%MIUK-H^G3O!/(]^$N)-AQ(\<6TA@#GJP)QQ0!Z!138W66-9$.Y&
M92.X-.H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KD/BG_P D
MO\0_]>A_F*Z^D90RE6 (/4&@#C;7P_XBU'Q'I&H:_<Z:;;2!(\ LP^ZXD=-F
M]PW"84GY03R>M2:=X3O+/X:7OAEYX#=3PWD:R*3L!F>1ESQG@.,\=C77T4 <
M0WA?7-+U/3=7T673Y;N+2X]-N[>[9TCD5#E75E!(();J.0>U0KX%U!M-0SWE
ML^I3Z]!K%XZAEC&QU/EIU. J #/4]<5W$UU;VSPI//%$TS^7$'<*7;!.U<]3
M@$X'H:EH *Y.+P[J=OXRUF\5K*71]92,7*NSK/&4B,>% &T@\')(QS764UW2
M-2SNJJ.[' H \[3P5XEF\-6OA"]O-,;08&CC:ZCW_:98(V#*FS&U20H!;<>.
MU>@7<+W-E/!',T+R1LBRKU0D8##W'6IJBN;JWLK:2YNIXX((UW/+*X55'J2>
M * /-M#^'FJ6&H>')IK;0+<:/*6FN+1',][F)D+NQ48))!().22<\ '8D\&7
MS^"_%.BBXM_/U>ZO)X7RVU!,Q*AN,Y'? -=C)<P1*[231HJ)YCEG "K_ 'CZ
M#@\TZ&:*XACFAD22*10Z.C JRD9!!'4&@#S/Q]H)U#Q)X5TZWGV3WZ/97Z*/
M];9H4E?GM@H /^NAKTX    8 Z 4;5+!L#<. <<U%!=6]UYOV>>*;RI#%)Y;
MAMCCJIQT(R.* /)_%WA_Q%X>^''B33+>YTTZ$!/<1R,'-PJ.Y<Q;?N_>8C=G
MIVS767VAZ]%XGCU[09=.)N-.2RN(K[> FUBRNNT'/WB"IQGCFNQ90RE6 (/4
M&EH X'2_ NI6.D>&K2:]MII=*U::^GD *B17,Q&T8X;]Z..G7FH(? NH:7>7
M\=CIGAF_M+JZDN8Y]1A;SH?,;<4("G> 2<?,O%>BT4 <M>:'JT7CNVU[3&L6
MMGLDL;J*X+*R(LI?='M!!.&(P<#IS2?$K_DFGB/_ *\)?Y5U5(RAE*L 0>H/
M>@#A[#P_XBU35-!N]=N=--EI(,T/V0.'N9#&45G#<)@,3@$\^U4M&\"7^@A-
M.@TOPS>6$4[-%>74+?:5C+EMK*$(9@#@-N'0<5Z-10!A:1H=QI_BCQ#JDDD;
M0ZF]NT2KG<OEQ!#NX]1VKFX_ NK65E87-C=V8U;3M4N[V#S=QADCG9]T;$#(
M.UQR <$=Z]!IJ.DB!XW5E/0J<@T <-/X(U#Q NO7/B&YM8KS4[ :?"EEN:.V
MC!9@<L 7)=LG@=,4L7A[Q;J&L^';W6KK25BTB9G9+7S"T^8F3?E@-IR1\O3D
M\]!7=44 </;^%M8N/&MCKM]#H]FUH9/-N-/\P2WJLI55D!   R&Y+<@8Q74Z
M0NJK9$:S):/=>:^#:JP39N.S[W.<8S[U?HH XV_T3Q);>-KS7=%.E2175G#;
M-'>R2*RE&<Y&U3UW4W7_  A?>,C9VVOS6\>G0VS-)!9R/EKL@JKY('RH"2OJ
MQY'%=I10!Y_>^#=;O5T/4[O^Q]1UG3X)+6XCO$8P74;$8?.TE'^4'[I&21TJ
MY=>%-0O_  ];V9MM&T^>/5+>]:.Q5EBV1R*Q&=H+.0IYP!T^M=I10!S'B30M
M4N=<TO7M#EM!?V*2PM#>%A'-%)MR-R@E2"H(.#3#H6M7VM>&]5U*>Q\_3I+E
M[A+<.%Q(A553/)QQDG&?3M755$]U;QW,5L\\2SS!C'$S@,X7&X@=3C(SZ9H
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
MZC"WG0^8VXH0%.\ DX^9>*]%I,@$#(R>E   %    '  I:** "BBB@ HHHH
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
M^A03PI&Z[FF\Q5!8MD8.02>.<]J -^,WJ:6IG^SO?+""^TE(C)MYQG)"Y^I
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
M%V6=P0Y+\IQP!@@ <\5Z]7##P#>_\(SKGAPZU&=,O_.-L/LG[RW,KEVW-O\
MG )..!0 ^ZUWQ)<>*KCP_H,&E1);Z?!=">\#D*6+C9M4C.=HP<C&#UX%95AX
M[\27.CZ)XBN+#3(=)OKN*SEMU9VG4N_EF0-G:!O_ (<$X[YKL;/P_P#9/%5W
MK?VG=]HLH;3R=F-OELYW9SSG?TQVK(A\">5X,TKP]_:.?L%Y%=>?Y/W]DWF[
M=N[C/3.3ZT 8VM_$>>#6M8L['4-"LUTHB/RM1+F2[DV!B$VL-@Y"Y(;)SQ7=
MZ)J::UH6GZHD31+>6\<XC;JFY0<'Z9K#E\+ZO9:WJ-_X?UJWLXM2=9;FWNK(
MSJ)0H4NA#K@D 9!R,BK2?VZ_BRT@\]_[*M+$FZE:)0+J=B NWC(VA6)P<?,!
M] "KXV\6_P#",KIMO%+9PW.HSM$D]ZQ$,*JI9G;!!/8 9&21S6/IWC?6-3TK
M7AIRZ7JFH:08I5DM X@O(F!8JH+$K)A6&,L,X]:Z;Q)X=DUI]/N[.^^PZGIT
MQFM;@Q>8HW*5967(RK*<'!!Z<U5N] U[5= N]-U'Q!"'NV5))+2R,6R'^-%R
M[$%AD;B3C/ H QH_B.UUX;UCQ39V8DT2V2.*Q#@K+=3L0ISV5 [*G3.0QJWJ
M?B'Q%X3\.:CK'B%-)N(X8D,*V7F18E9P@1MY;*Y8?,,=#Q0_PYLOL6N:5;7+
M6VC:HB,MG%'C[-.N/WD;9[[4)7'5<YYJ:?PEJ^LZ+>Z9XB\0+>13Q+'&;6S$
M!C=6#+*<LV6!4'' ]J ,_P />.KB]\36^CW.H:+J8NK:29)M*#CR'3!*.&9L
M@@\-Q]T\50L_'7BD^$]+\77UEI*:1.\*7%O%YAF5'<1^8K$[1\Q!V8/'\6:[
M'2[#Q';S%M6UNTO85C*K'!8>2SMQ\S$NW/7@ #FN$\&>"]8U/P)H%CJNL.FD
M)Y=S+ITEGMF)1]PC,F?N;@#C;GMF@#9T"X\2R_$[Q-;S7MF^GP&V+0E)"51D
M<KY>6PK<#<<8)]*U_&5U%;3^&A)96UT9M:AB4SJ3Y)*.=Z8/##''U-2Q^'+V
MU\:76N6>IQQVM]'$MY:26^]F,88*4?<-OWN<@]*MZ_H7]N2:0_VCR?[/U".]
MQLW>9M5AMZC&=W7GITH Y*\\7>+)(O$]YIUKI LM!N9487'F%[A8T5RHP0%.
M#]XY!) P,9KO-/O%U#3+6]C4JEQ"DRJ>H# $#]:PH_"/EZ5XHL?MN?[=FGEW
M^5_J?,B6/&,_-C;GMG-;%EIJVN@V^E-*SK%:K;&1?E) 7;D>AH XFW\=7\'B
MO2]+N]3\.7POKAK:6VTV1FFM6V,P))8[AE<'Y5ZBM'0]=\2^(Y?[4L8M*CT/
M[8\"13"3SY(DD*-('!V@Y5B%VGIU%5=,^'^HV2:!;3Z]#)8:%.);:&*P$;2
M(R_O&WG+8;J !UR"3Q>TOPEJ^B7C0:=X@6+1&NVNA:-9AI4W/O:-9"V A)/\
M.0#U[T ,T37?$OB*=M2L(M*CT07KVZQ3"3SY(T<H\@<':#D,0NT].HK/D\6^
M)[W2-5\1:3;:4='L))PEO<"0SW*0DAV#@[4R5; *GIS6GIGA+5]%O7ATWQ L
M.B/>-=_9&LPTJ;GWO&LA; 0DG^$D \'O527P'J:6NHZ18>(1:Z#J$LLDMN;,
M/-$)23(D<FX  DMU4D9H +KQ9KVI^(=/TSPW!IXBO-)34Q<7P<^6K-C!52,Y
MRHQQCDY[57U;7_$FL1>)DT>#3/[-TOS+.47._P VXD$0:38P.$ # #(;)]*Z
M2T\,0V7B>#5K>;9#!I:Z;';!/NJK[@V[/H,8Q^-9-WX)U'[=K']EZ_\ 8=.U
MES+=V_V422+(4".T;E@%W #.5..V* ,W3M9O-(^'?A-H=7T'2X7TN#=-JK,2
MS"-<*BAES[G/X4L?C_5K[PGX;U'3[*PDO=6U%K!T:1O)!42@NK#G;F,-WX..
MO-7H_ M]I\FAW.E:S!%>:;I:Z8SW-EYJ.@V_.J[QL;*^I'8U)8> C9:5H5DV
MJ-,=*U2343*T(!FWF4[2 < _O>H].@SP 4W\<:GH=MXH37[>TGNM%@AN(VL0
MT:7"R[@BX8L5.Y<$Y/7-6[_7_$GA;P[J.M>(X])G@@MA(D=EYD;+*6"K&Q8L
M""6^]QTZ5:U3P/;:Q>>(I+NZ<P:S9P6K1HF&A,>\APV>3EP>G\/>HI/"6KZO
MHU[I7B3Q M]:SV_D(+:S$#*P((E)W-EP5'3 Z\4 9WA[QW<WOB>QTBZU#1-2
M%]#(ZOI6\&V= &VON9MP(SAN.1TKH=>URYT;6= B\N(Z?J%TUI/(P.Z.1D)B
MQSC!92#D=Q3M(T_Q);7*'5M=M+VWC0J$AL/)>0]F9B[#/L *?XK\/_\ "3:!
M-IR71M)]\<T%TJ;C#(CAE8#(SR/7O0!R$/Q-N)=*\5W/V*(3:=+C3%YQ=(\C
M0Q,>><R(PXQQCZT[5;V_%YXUCLH+"VU2VT>VE>]5'#/E)=PR&SP%.WT)YS5P
M_#.V%]X9GCOW2+1H(X9XO*S]L\LAXRQS\N),MWSFMI_"L<VL:_>RW3&/6+.*
MT>)4P8P@D!(;/.?,].,=Z .%U.?7W^'_ (,N;M[.\OGU/3I+;:73?E,KYK,6
M)8GJP_*NQT#6]:;Q1?\ A_74L&N(;6*\AGLE=4:-V92K*Q)!!4\YY'856MO!
M>H'0M%TS4-:BN/[(O;>X@DCL_+W1PC"HPWGD]V_2MN/0MGC*?Q!]HSYNGQV7
MD;.FV1WW;L]]^,8[=: *GBS6+O2(K=X-5T+3(7W!Y]59CD\85%#+GOD[N..#
M7.1_$'5;OPAHNI6-G83W]]JQTQU\QO(8@R+O1NH4E >_!/6N@UWPS>W_ (AL
M-=TO4H+2]M8)+;%S:^?&4<J20 RE6!7KGVJC9^ 6MM*TRS?5FF>RUEM6:9H
M#*2SL4(!P/O]1Z=* +?AW6]8E\1ZIH&NI8M=6L,-S%/9*Z(\<A88*L2004/?
MG/:F?$7439^%'LHIU@N=6F33H9&8 )YIPS9[;4WM^%:D&A>1XOO=>^T9^TV<
M5KY.S[NQG;=NSSG?TQVJOK/A6VU[Q!IM_J1BN;*QBE"V,L ='E? WMDX.%!
M&.^<T <QX*U"'0=+\3^'[.:.=-">2>R^?>IMY%,B#(/.&WJ?I3K3QCXGBT_P
MYKFIVFEKI6L2V\+00>89H?. V2;B=I&2,KC(!ZFM#5?!5G8W=WK&BQ06(.E7
M%I<6=M;!5N PW(?EQA@0><'(.*R_"W@[5KWP[X4&L:TTFFV$5M>1V#6@CE$J
MH"J.^>50G@;0>!DG&: )Y?%/BZ[3Q'<Z7:Z0+71+N:'%QYA>Y$:ABHP0$.#]
MXY!)Z#&:DD\8:[K&L:38^'+;3U34='35/.OMY$(+ 8(4C=U QQUSGC%9NF>&
M=?U.;QA!;:R^F65]J\\<L4EEO9HRB O$Q(VD@D9.X<#&"*Z^P\*0:9XAL]1M
M9BMO::2-+BMBF<*'5@V[/HN,8H QSXA\4ZQ<:S)H$.DI:Z5.UJ5O%D9[J9%!
M<*58!%R=H)#=*ET7QR^JZKHGF01P:;K.EF[MG8G>LZ$&2,G." I!!P.AI9_!
MVK6][JQT/Q EA9:M*T]Q#)9^:\<C*%=XFW#:3@'D, >:-?\ AY;:GX1TW0M-
MOI--;30%MKI4\QU788W!Y&=RL<GUYH Q9?B7=_V;I$C/IFGR:S-<R6MQ>[A%
M#:1MA&<;@6=@5P 0.?:IH/B/=RZ!>-#%87NJQZE#IEM+;LPM;AY=I1^22  3
MD9/*D9YKH-4\(F4Z-<:+>KIU[H\;0VK/#YL9B90IC=,J2,*O(((Q3=2\+ZEK
MGA]K/5-:C.H)=1W=K=VUIY:V\B$%,(6;<,@YRW.3TH P]+.N#XPPQZY]@>5=
M F\N:R#*CJ9XNJL25(/N<\=.E=3XLTB'6- N(;B>Y2!(WD>."4QB7"G"N1R5
MSS@$9QSD<50TGPMJ=OXL'B/5M;6^NOL+V7DQ6HAB12Z."HW$_P )SDG.>V,5
MKZ_8:EJ6FM:Z9J,%B[Y622:U\\%""" -ZX/(YSVH \]>XFC^!OA>TAE>$:@N
MGV4DD;;66.1D5\'ME<C\:TIM&T[PG\1O#T6A6D5C;ZG:7<-U! -J2>4JNC%1
MQN!)&[KS5VU\!71\"_\ "+ZEK2W$4"0K97-O:>2]N8B"C'+MN.5'IW'>KVF^
M%]1_MV/6=?U>+4+NWMWM[58+7R(X@Y&]L;F)8[0,Y  [4 </X1\0>(_#GPT\
M/:M-;Z:VA)Y,$L0WFX$;R!!+NSM^\P.W'3O4^M:+8:9XA\1ZWXE\$2:II\ER
MLZZ@GDR&*%88U)*%P^ 58GCIS6O8?#?4;?1M-\/WGB7[5H5G)'*UO]C"22E&
M#A"^[A-P!Q@GMFM;6_#7B+6DO=/D\2PQ:1>;DDC33QYZQ-P8Q)OV]"1N*9H
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
M]F;65T>,-AXR!@@Y&<#(P:RO"-GJL7C+QE+-K)FAAO%$L)MD F)MT*G/48!
MP.N/>@#T&SO+74+.*[LKB*XMI5W1RQ,&5AZ@CK4]>7:;X@\07NC> K73KNTL
MI=8M9FN9/LJE4V(&RB# !ZX'3GG/2F-JWC4Z5XHE&O6@;PW)*%D^PJ6O=L8E
MQ(,X4;2%^4 YR?J >J45YQK/C2]N-9TO3+6>[T^.?2DU*>:RTU[V7+G:J!55
M@HX8EB/0#%=!X4U+6-:\+3M?)+;:@DDT$4\MHT'FA21'-Y3C*Y&#@]\T =/5
M34=3L]*MEN+Z<0Q-*D08@G+NP51QZD@5YD_Q'U4:=X5G"Q[R2VO94?NU29+=
MSCM^\<MQV4]J7Q;JVIZSX?UN>*2+[-!X@L[/3U=/EW1S1AV8CD@R%A]%H ]7
MHK@X]<UKPYXDU#3]9U%-5MTT:354=;9860QL%9 %ZJ<@C.2/4UCZ%XO\17<^
M@WAEU"]&HRQB[L_[#FA@MHY!G?'.4&0A(R2Q##)&* /5**\NN]=\72Z1XLUJ
MVUBV@@T*]N4AM3:*_GI%\Q5V/(&.!MP>Y)KJ_%.KZE:>"'US20!/;QQWCPE0
MWF1 AI$Y[[-W([B@#IJ*\]UOQY<6MSK.H:<8[C2M)T=+EEV_ZZXFYB&[J $
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
M\Y7.0>-NPJ0Q&W;C&*Z2B@#G_#_A.#0-2U'4?[0O;Z\U%8A<RW3J2QCWX(
M"\/C X  P.M4K_P*MSK6I:M9:]JNFW.I!%N?LSIM9%0(  RG!P,AAR,GFNMH
MH Y:;P+IZ6>D1:5=76EW&DQ&&TN;8J6",!N5PX*N#@$Y'7FK$WA07NF6UIJ.
MK7U[)!?17PGE\L,7C8,%PJA0N1T SR>:W)KF"W,0GFCB,KB.,.P7>QR0HSU/
M!X]J@&J69UEM)$I^VK +DQ[&QY98J#NQCJ#QG- '/7O@2.>]U&6QUO4]-M]3
M;??6MJT>R5B I8%D)0D  E2,U+K_ ("T?7_#UAHD@FM;.P93 +=@&"A"A3)!
M^4JQ!]:ZBB@#G5\&Z:OC?_A*@\PN_L_D"'(\H'&-^,9W;?EZ]*JZ9HMY<^)/
M%&J78FM/MBQV-HZ,!(L,:']XIYP2[L1_NBNLHH HVVF1Q:)'I5U++?1"W$$L
METV]YEV[27/<D=?K7+#X;QBP&D-XDUMM" V?V:94V^7_ ,\_,V>9LQQC=TXS
M7;T4 <+K_A>ZU#QQH4MA+=Z=:V6G7$:75GM A?=&%0A@5(*AOE((X]A5]/ &
MF#0)],EN;V6>XNQ?2:@9 +C[2"")00, C   &,#&*ZNB@#GHO#-S)IVH6>I^
M(-1U%;VV:V)E2%!&K @E0B#YN>IS4LOA:TEM] @,TX71)$D@((RY6-HQNX]&
M)XQS6Y10!C^(O#=GXDM(8KF2>WGMI1/;75L^R6"0?Q*<$="0000:HZ=X.6WU
MB#5]5UB_UB]ME9;9KORU2#<,,51%4;B.,G)Q70O<P1W$5N\T:S2AC'&S ,X&
M,X'4XR,_6JEEK-I?ZKJ6G0E_M&G/&D^Y<#+H'7![\$4 0Z7X>M-+@U.!&>:/
M4;N:ZF67!&9/O*,#[M<]!\-;:)--MY==U>>QTNYBN+"TDD39"8V#*IPH+CC:
M-Q. >/6NWHH Y>?P<R:I>WNE:]J6E+?R>;=06PB9'DP 77S$;:Q &2.N*THM
M MX_$:ZYY\[W*V(L<,05*!]^X\9W9_\ U5K44 <S>>$#J.JQ7%]K>HW%E#=K
M>Q6#^7Y:RJ=R_,$WE0>0N[]*T[_0[?4-:TG5)9)5FTQY7B52-K&2,H=W'H>V
M*GL=4L]1FO(K64N]G,8)P49=K@ XY SP1R,BKE &&/"UH/\ A(/WT_\ Q//^
M/CD?)^Z$7R\>@SSGFJ$G@:))M-N-/UC4-/N;*P733-!Y;&6!<8#!T(!R,Y '
M4UU=% '!Z_X1&F_"B]\.:3#=W\OS&UW.#*)7F\Q7+<?=9MV>N%KJ]!TF'0=
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
MRBV"0LZ1,W"M@M@GN:HWWBB5-#TS3]%N]>EEN]6-G=K.$^W6VV,NT2E\*&(
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
MY &!YBJ0#QQ]* .*7Q?>:U;^%FU2]U*RM;S27N[DZ1"[2M,&15+!%9E0Y8C
MP3@5)$WB>W\-^#[6YUC4K34-4U1TN99]K2K$8Y2J[2, [54X(.&/MBM;Q+X1
MFG\26%Y!H<6H:7:Z?]DAM8+O[(\#;LYR,;EVA0!GC!XYK1\->$YX=,L_[=9Y
M+BSU"2]LHOM3S?958,JQF1N7VJQZ^OM0!S=_K^K^$++QQ;1:A<ZA_9<%K/92
MWA$DD9FW*<G W $;AGZ5HZ%'XCC\16<0B\1G3)X)4OY=6FMSM?;E)(O+<E3G
M(P..1Z5UTOAO2KBZU2>>V$IU2%(+M7)*R(@8 8[<,>E5--\'V.EL3#?:O(!$
MT423:C+(L2D8^4%L9 Z$Y(H X[P=K^KZOXO_ .$=O-5WQ:%YQ:X0X;5,,44G
MCHG1\=7Q72>.%UK9ITFGKJ+Z<DKG4(],=5NF3;\A3/4!NH!R>,5H6_@_1;1=
M'%M;-"=(W"T9'(8!AAPQ_B#=3GJ>:L:SH-OK1@:6ZO[:2'<%DLKMX&PV,@[2
M,C@=>F.* .#U'Q+-J$WAK3-&N];OM.N[2:YEGLS&EW-Y;*@4LY0+@D[L?-P/
M>D?4_%-KI%GI5Y+?V!U#75L;:]NC$;I;5D+G)4LN_*L@;\>M=A/X(T.73-/L
M8H)K5=.W?8YK6X>.6'=][#@Y.[OG.>]/E\':3<Z&^DW9O+J%IA<>=/=R/,LH
MQAUD)W*1@8P0!^)H P]?BU#POIVE1V^N:A<I<:Y9Q%KIU9UC=P&3< "5/OZU
M)J^K7T'C?5K.*ZD6WA\-FZ2,'A9?,<;_ *X _*M0^"-&DT6ZTNY^V74=S(LL
MLUQ=R23%UQM8.3E2N!C&*-/\#Z+IUQ=7,:W4MU=VQM;BXN+EY9)4/]YF).>W
ML* .,,NMZ=\)X/$DOB'4+G4;^&PD)9E$<0>6/(10."5;!))SR:TK+1V?XS:O
M-_:FHKLL+6?RUE&ULR2_(1M^X,<#W/-=;-X9TRX\-0>'Y(G.G01PQHF\Y"Q%
M2G/7@HOUI+OPSI]WXA@UPM=0WT4:Q%H+AXUE16+!74'# $DX/K0!YV/%&MS>
M&M M%FU":?4]7O8)IK0Q_:/*BDE(1"Y"@D*HR3P <<XK4@7QJ=#\1VMC#JD6
M!"VEOJ<L)N2"?WR!U9AG ^4MT+>U=1)X*T231(]),$JV\5RUU"Z3,LD4K.SE
MT<'*G+-T/0XIT?A*R33;BS:]U:7SV5FGDU&8RJ5.5VMNRN#V& >^: *O@J_M
M;JTO;>*ZU=[FVF"W%MJW,]LQ4$+G'*D<@Y(YX-6O&@U$>#M4ETB=X=0@A,\+
M)U)0[]O_  (*5_&LS4? D,FBRZ783RJNH7<4NI7=Q</)<2QH0<!CDY^15'0
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
M \8'5@2!C/.*[#X>Z1)9'6+\P7=O:WEUFR@NKIIGCA50,$;V"Y;>0.N",]J
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
MDC25&DC(#JK E<C(R.W%24 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 56U#3[
M35;":QOH$GM9UV21/T8>AJS10!533K1-2?45@07DD*P--W**20OT!8_G6;<^
M#?#UW9PVDVEPF&!Y)(@I92C2'<^"#D;B<D9YK<HH SH-!TJV.GF"P@B_L]66
MT"+M$(888*!ZBLZ;P)X6GO+B[ET.T>>X8M*Q3JQZMCH&/<CDUT5% &-JWA30
MM=NDNM2TV*>X1=BRY*OMZ[25()'L>*M1:)ID$MC)#90QM81-#:[%QY*, &51
MZ':/RJ_10 UT61&1U#(PPRD9!'I6-9>$/#^G6L=K::7#%!'<K=H@SA95^ZPR
M>,=ATK;HH RM8\-Z/K[P/JEA%<O!GRW;(90>HR"#@]QT-,?PIH$FBMHS:3:_
MV<TAE^SA,*'+;MPQ]TY)/&,5L44 8MIX1\/V-M<V]KI5O%%=0?9[A57_ %L?
MS<,>_P!]N>O-78M)L(+R&\BM8UN(;?[+'(.JQ9!V#VR!^57:* ..\3>"QJ$=
MD=,M]/:.&_DOKBQO58P7<CJ06? /(+;AP1GM4G@_PI-H%_JE]+%I]G]N\H+8
M::I6WBV C<,@99L\G:.@KK:* *%]HNFZE>V5Y>V44]S8N9+:1QDQ,<9(_(?D
M*E;3;-M1.H-;H;MH/LYE(Y,>=VWZ9YJU10!A:;X+\-Z/?B^T_1[6WN5W;'5?
M]7GKL!X7/MBK%QX:T6[L[RTN-.@D@O9_M%PC#[\O'S^Q^4<CTK5HH R=,\,Z
M+HWGG3]-@@-P@CF*C)E4%B-Q/WOO-R?6HK+PAX?TZUCM;32X8H([E;I$&<+*
MOW6&3QCL.E;=% &#J'@KPWJFI-J%]HUK/=-M+NR\28Z;QT;'N#6H=.LSJ4>H
M&W3[7%"T"2XY6,D$K],J/RJU10!C77A30KVVEM[C387CEN3=L.0?.(P7!!R"
M1QD54N/!FGNVB6]M'%:Z9I=T;T6L4>/,F .QBV>Q9F/<G'/KTE% %+5='T[7
M+%K+5+.*[MF(;RY5R 1T(]#[BJNF^%M"TBQN;.QTNVBM[KBX0IN\X8QAR<EN
M,CFM>B@#$TGPCH&A77VG3=,AMYMA0."6*J>JKDG:.!P,=*2Q\'>'=,U4ZG9:
M1:P7A+,)$7[I;[Q4=%)[X S6Y10!AKX.\.HNHJNDVX34L_:U .V7)R<C.!D\
M\8I^L>$M!U^>.?5-,@N)HT\M9#E6V_W2002OL>*V:* */]BZ;LL$%E"J:>V^
MT15VK"=I7Y0.!P2/QJ6'3[2"_N;Z*!$NKE46:4=7"9V@_3)_.K-% &-K7A/0
MO$4J2ZOIL-VZ+L4R9X&<XX/K1)X3T&;1$T:33('T^-_,2%@2$;).X'.0<D\@
M]ZV:* *&DZ+INA69M-+LXK6$L798Q]YCU8GJ3[FB]T73=1OK*^O+**>ZL6+V
MTKKDQ$XR1^0_*K]% %7^SK,ZDVHFW0WC0"W:4CDQ@EMOTR2?QK+T[P7X;TG4
M!?V&CVL%RN[8ZK_J\]=@Z+GV K>HH RKCPUHUW:7MK<:=!)!?3>?<HPR)),
M;O8_*O(]*;IOA?0](\_[#ID$)N(Q%.0,F502<,3][[QZ^M:]% &+9>$= TZT
MAM;33(8H(;D7<2#)"2@8##)[#CTJ/4?!?AO5M1.H7^CVL]TVW>[+_K,=-XZ-
MCW!K>HH JG3;-M0AOS;I]JAB:&.7'*HQ!*CVRH_*J-UX5T.]MIK>XTV%XYKD
MW;CD$S$8+@@Y#8XR*V** *>F:58Z-8I9:=:QVULA)$<8P,DY)/J3ZFLNP\.?
M8]:U^5FCDTS5]DKVYSE9=FR3\&4)^.:Z"B@#,O/#NCW^C0Z1=Z?!-80JBQ0N
MN1'M&%VGJ"!T(YJ.T\+:'8Z3=:7;:;!'97887$8!_>[A@[CU/'')K7HH ;%&
MD,211J%1%"JH[ =!5>#3K.VO;N\AMT2YNRIN)!UD*KM7/T'%6J* ,6;PAX?G
MT>'29-*MVL8',D,6"/*8DDE3U4Y)Z'O65K7@6QN=!MM)TJUM+>W74K>\GCD!
M*RJCJ7W=2Q*KCGV%=?10!DZ/X7T3P_YYTK38+4SX$K(,E@.@)/.!V'057T_P
M5X;TK41?V.C6L%RI8HZKQ'GKL'1<^P%;U% %:UT^TLI;J6V@2*2ZE\Z=E_Y:
M/@+N/OA0/PK,'@_P\'U)AI4 .I!A>  @2ACELC..3R<=:W** *J:;9QZB=02
MW079@%N91U\L$D+],DFN5\1^"!>-I1TNTTR2VLKB>>33;]6-O.\HY<X!PP)8
MC((^8UVE% '*^#?"TWAV35+B5;*V^WRI(+'3U*V]OM7;\N<9+=2<#MQ6U-H>
MF3MJ+2V43'4HA#>$_P#+9 I4!OP8C\:T** *;Z58R26,CVR%[ DVI/\ RR)4
MIQ_P$D50T[PAX?TG4/M]AI5O!<X8*Z@G8&ZA03A<^V*VZ* ,:X\*:#=:+'H\
MVF0/81/YD<)!PCY)W*>H.2>0>YI]AX8T/3+>YM[+2[6&&YC$<\:QC;*HSPP/
M7[S=>N3FM:B@#$TGPAH&AW7VG3=,AMY@A17!+%5/4+DG:.!P,58_X1[2/[!&
MA_8(3I@78+8CY0 <C]>?K6G10!S%_P"#[6+PIJFC^'XH-/DU!/+EF.6)#?*S
M$G))"9QD]<5T-K:0V5E!9P(%@AC6)$]% P!^0J:B@#G[/P/X9T^[BNK31K:*
M>*3S(G4']VW/W>?E')X&!6A_8>F?8K^S^QQ_9M0:1[J/M*SC#D_45H44 8NJ
M>$M UK[-_:.EV]Q]E79"6!RJ_P!W(ZKQT/%7]/TRRTFV-MI]K';0%VD\N,87
M<QR3CW)JW10!0?1=-EUN+67LHFU**(P)<E?G5"2=H/IR?S-#Z)IDK:@TEC!)
M_: 478==PF"KM 8'@\<5?HH QM&\*:%X?FDFTK3(;:610C2#+-M'\())('L.
M*2X\(Z!=:9;Z=-I<+6EO(TL*#(,;,225(.1DL>A[UM44 9$'A?0K72KK2X-*
MM8["[),]NJ?)(2H7)'T4?E3K+PWH^GK8BUL(X_L'F?9CDDQ[_OX)/?WK5HH
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
M_L]LF]Q&N6/8 #N22 /K3]+OIM0L5N)].N=/D)(,%SLWCW^1F'/UH NT444
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
M(R&(+8+Y_B//3FC1YKOQ->^%]%U#4[^.T_X1F#49?(NGBDNIFVJ=\BD,0.N
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
ML;O,\S.<Y^_SU_2@#7HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
MN=L<@#;"RMR#L96VD@KAOX: /5Z*Q_"FH6>J^$]+O=/@DM[.6V0PPR'+(N,
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
MY4C(->.^*[.&^T;XI"XB$WV>:*:(-SL<6L>&'YFKOBBRM;7_ (1#1M(MM/\
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
MK'J5FS)LWA9U)7?]S//&[(QZYXH L16EM!<3W$-O%'-<$--(B -(0, L>^
M.>U1:CI=AJ]H;34K*WO+<D$Q7$8=<CH<'O40U[1S;SW U:Q,%NVR:3[2FV-O
M1CG /UJ[#-%<0I-#(DD3@,CHP*L#T((ZB@"O8:5IVEHR:?86MHK8#"WB6,'
MP,X'8<5AWG@NPU3Q7>:KJEO:7UK/9PVZVMQ '"M&[MNYX_CQ5#4O'=];OKD^
MG:$MYIVAN4O9WO!$Y*H'?RTVG=A2.I7/:NPL[J.^LK>[AW>5/&LJ;A@X89&1
M^- $?]FV&RU3[%;[;0[K9?*7$)P5RG'R\$CCL:BU31-*UR%(=5TVTOHT.Y%N
M85D"GU&1Q7.2_$""*PU.06$DEY;ZI)I5I9QR O>2J%(QQ\H^;))SM )KKX6D
M:"-IHUCE*@NBMN"MCD X&?K@4 9EQX7\/W6G0Z?<:)ITEE 28;=K5"D9/7:N
M,#\*6\\,:!J-M;6][HFG7$%L,01RVR,L0]%!' XZ"K$.L:9<WSV,&I6<MW'G
M? DZM(N.N5!R*<VJZ<EREL]_:K</(8EB,RAF< $J!G)."#CT(H LQQI#$D42
M*D: *J*,!0.@ ["HK:RM;.W^SVMM#!!EF\N) JY8DL<#CDDD_6G7%S!9V[W%
MS-'!"@R\DKA54>Y/ JA<>(M)M]"N=96_MIK&W1G:6&964X'W0<XR>@&>I% "
M:?X8T#2KQKS3M$TZTN6SF:"V1'YZ\@9J:31-*ETPZ9)IEF]@22;5H%,1))8G
M;C'4D_4YK O?'%LVCZ%J>DO;W$.HW]K;2!G!,*R\G=M/#@8X-=)9:E8ZE&\E
MA>V]TB-M9H)5<*?0D'@T 5K;PYH=GILVG6VCV$-E-_K;=+=!')_O+C!_&DM/
M#>A6$#P6FC:?!%)&8G2.V10R$Y*G Y!]#5BVU;3;VZEM;74+2>XA_P!9%%,K
M.GU .1^-+'JNG2W2VL=_:O<.&*Q+,I=MI(; SG@@@^A% $.FZ!H^C02P:9I5
ME9Q3?ZQ+>!4#_4 <U'IOAG0='N7N=,T73[.=P0TEO;)&Q'ID#I[5<N]0LK!=
MUY>6]L-I?,TJI\HQD\GH,C)]Q45SK6E644$MUJ=G!'< &%Y9U429Z;23SU'2
M@"Q/:6UT\+W%O%*T$GFQ&1 QC?!&Y<]#@D9'J:I6WAS0[/4Y-3M='L(;^0DO
M<QVZ+(V>N6 SSW]:MW%_9VBAKF[@A!0N#)(%RHQD\]AD9/O1;ZA97=G]LMKN
MWFM<$^?'(&3 ZG<#B@!]S;07EM+;74,<\$JE)(I5#*ZGJ"#P15<Z1IA^Q9TZ
MT/V'BTS"O^C\8^3CY> !QBG6.JZ=JB.^GW]K=JAP[6\RR!3[X)Q6?J?B[0M*
MTR[OI=2M95M;<W+10SHTC)C(VC/.>@]2: -06=J+M[L6T(N9(Q$\VP;V0$D*
M3U(!)X]S5"S\+Z!I\GF6>B:=;R>:)MT5JBD. 0&R!UPS#/N?6K6EZK9:S81W
MMA<1SPN <HX;:2 =IP3@C(XJO::LS#4Y+\6EK;V=PT:RBZ5P4"J=S]-AY^Z?
M;UH ;=>%O#][J0U&ZT33I[T$'[1+:HSY'0[B,\5H):6T5U-=16\27,X59950
M!I N=H8]3C)QZ9-)9WMIJ%LMS974-S WW989 ZG\1Q7(KXQN;[QMJ&C:;-I!
MM].C3S5FG/FW#LK,5CP<#;M&[(..>E &OX0\._\ ",Z&;225)KJ:XENKF:--
MBR2R,6) [ # 'L*T=3T?3-:MA;ZII]K>PJVX1W,2R*#Z@$=:PXO$]ZVL^&+*
M6UMD_M:UN)Y_+F\T1M&J$!'& P^<\XK=75M-;43IZZA:&^ R;83+Y@_X#G-
M#%T/25MI+9=+LA;RLCR1"!=KLFT*2,8)&U<>FT>E1R>'-#FU9=6DT>P?45((
MNFMT,H(Z'=C.1ZTW6=>LM)MKA7O+1;Y;=YH;:695>3:I/"YR1QVI= U5M4\+
M:9J]R(X6NK**ZD .%0L@8]>PSWH FDT;2YM5BU673K1]0B79'=-"IE0<C ;&
M0.3^9IPTK3AI?]EBPM1I^SR_LODKY6W^[LQC'MBI?MMIY=O)]JAV7! @;S!B
M4D9&T]\CGBJ6K:LUE"19BTN+E)H4DAENEBV*[8R2<\XS@=\8% #M0\/:+JV?
M[1TFQN]RJA,]NKG:I)4<CH"3CZGUJ2?1M+N=+&ESZ=:2:>%"BU>%3$ .@"XQ
MQ5&U\7:-=^)+W08[N,7UH(]P:1,.S;OE7G)8;3D8XR*J>%?%]OK>DVTM]<V5
MM?W$]Q'';"4!G$<SQ@JI.3PGYYH V;+1M+TU&2QTZTM5:-8F$,*H"@SA3@<@
M;FX]SZU#!X;T.VTV?3H-&T^*QG8O+;);((Y"<<LN,'H/R%6]0O[;2]/GOKN5
M8X($+NS,!QZ<\9/2N8O/'=K-X;TG6-':&=+Z\LX'CD<%H5F=00P4G:X!Z9ZT
M ;^G:!H^CV\MOINE65G#-_K4@@5!)_O #GJ>M,L/#6A:4Z/I^C:?:.CF16@M
MD0JQ!4D$#@X)'T.*M66I6&I+(UC>VUT(VVN8)5?:?0X/!IMOJVFW=Y+9VVH6
MDUU%_K(8YE9T^J@Y% $]S:V][;26UW!%/!(-KQ2H&5AZ$'@U4TW0M(T>VDM]
M,TNSLX9?]9';P*@?Z@#G\:K^*->'AK0GU-K<W 6:&+RP^W/F2+'G.#TW9_"C
MQ%KPT"'3Y#;F?[9J$%E@/MV>8VW=T.<>E %T:7IXM;:U%C;?9[5D:WB\I=L)
M7[I48PI';'2K$T,5Q!)!/&DL4BE7C=0RLIX((/45G^(=<MO#?A^]UB[5W@M(
MC(RH/F;L /J2!5?1-2UV]G9-6T"/3XS&'CEBO5G!.?NL-JD'Z9'O0!:L]!T?
M3X[:.STJRMTM79X%B@51$S ABN!P2"02.N:LBQLUEN91:P"2Z %PXC&90!@;
MC_%@<<]JL5R.E>+M5UR[,VF^'A+HPNVM3=M>JLGROL:01$?=!!_BR0.G:@#:
MTWPUH6C7#W&EZ-I]E,XPTEO;)&Q'ID#I[5>NK6WOK:2VN[>*X@D&'BE0.K#T
M(/!J&YU;3;*ZBM;K4+2"XF_U<4LRJ[_0$Y/X4M]JFGZ8J-?WUK:+(=J&>98]
MQ]!D\T 0:?X>T728)8-.TFQM(IAB5(+=4#C_ &@!S^--T_PWHND"?^RM+L]/
M>=2'DM($C8_B!5];F!Y_(6>-IM@D\L."VPG ;'ID'FHCJ5B(5F-[;B)G,8<R
MKM+#.5SGJ-IR/8^E '!6WPVO1I^GZ1=7NE-864\<PN8=/*7DNQPXS(7(#$CY
MF R>?6N]&FV(BNHA9VXCNV9KE!$,3%AM8N,?,2  <]A5 :_%)J,'D2V$NE26
MLEPUZMZG&U@.%[KR<MG QBL^W\;V6L>%9]9T(VUS+&#BVN;I(2N)"GSME@@.
M"1GKQZT :]_X?T;5;.&TU#2K*ZMH !%%- KK'@8&T$<<<<5);Z+I5I]E^S:;
M9P_9 RVWEP*ODAOO!,#Y<]\=:??:KIVF",ZA?VMIYAPGGS+'N/H,D9I;W4[#
M3H%GOKZVM86("R3RJBDGL"3B@!]O96EF\[VUM#"UQ(99C&@4R.1@LV.IX')]
M*:VGV3ZA'J#VD#7L:&-+@Q@R*AY*ANH'M4Z.DL:R1LKHP#*RG((/<&JD&L:7
M=7KV5OJ5G-=QYWP1SJSKCU4'(H DL].LM/69;*SM[99I&FE$,80.[=6; Y)Q
MR:I67A?0--OVOK'1-.MKMLYGAMD1^>O(&>:L2ZUI4$J13:G9QR/(8D1YU!9Q
MU4 GD\CBI+W4[#35C:_OK:U61MJ&>54#'T&3R: *?_"+^'_MD-Y_8>G?:8&+
M13?94W(2Q8D'&0=Q)^I)I\OAS1)]6759='L)-14@BZ:W0R@CH=V,Y%5?"FNS
M>(-.N[F:*.-H;^YM5$><%8Y"@//<@5EOXMUNY\0:OIFD>&XKQ-,E2*2:741#
MN9HU?A=A[-CK0!U']G66;H_8[?\ TO\ X^?W8_??+M^?CYOE '/;BJB^&M"3
M23I*Z-IXTXMN-H+9/*)]=N,9]ZN17D,GF(TL*SPJK3Q"0,8LC/S>G?DXS45Q
MK.EVEK#=7.I6<-O-CRI9)U5),]-I)P?PH -,TC3=%MC;Z7I]K90D[C';Q+&"
M?4@#DU%JGA[1=;:)M5TFQOFB_P!6;FW60K],CBLRZ\5167C%=+N9;2'3O[+-
M\;J60+AO-" ;B<8P:VWU*QCL!?R7MLEF5#"X:51&0>AW9QB@!6T^R<6P:T@8
M6K!K<&,?N2 5!3^Z<$CCL:LU4BU33KBQ^W0W]K)9_P#/PDRF/T^\#BEMM3L+
MRXFM[6^MIYH#B6.*56:,^C '(_&@"G#X7\/VU]#>P:'IT5U"NV*9+5%=!Z @
M9%5[WPZ;_P ::9KL\L9ATVVE2WAV?,)9" SEO3:,8]S5UO$&BK>&S;5[ 708
M(83<IO#'H-N<Y]JEEU;38+^.PFU"TCO)/N6[S*)&^BDY- %RBBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "N=\=:C'I/@S4;V;3X=0CC5-U
MO.,QG+J-SC!^5<[CQT!KHJ" 001D'J* /+/!]S%/\5KEH+[1KM&T7YWT> QP
M[A,N 3O8.P#=01@$#%;7C.PM-2\=>";6]MX[BW,]VS12#*L5AW#([X(!_"NV
MCABB $<:( , *H&!3BJD@D D=#CI0!XSXALY;:P^(]CI40AM8[^QEDABC)58
MVCB:8[%QD$9+ 8R,ULZ%IFE:YXB:1/$?AZ]632Y;6:ST:T\KS('*C,G[U_N]
M!P/O&O30J@D@ $]3CK3(H(8=WE1)'N.3L4#)H \'M[N_GM[34IVE\WP"L=O<
M#!_>-YYCF^O[B-3G_:KH([&RO/!UEKFI:O9Z3>ZEJ[ZQ;/J"AH')#".-PQ (
M\K;CD$'D5ZUY:88;%P_WN.OUI'ABEB\J2-'C_NLH(_*@#GO FJ_VSX7BNA8V
MUH!-+'BT'[B7:Y!DCX&58Y8'W[]:\[-SX:A\,>,;+Q$+0^(YKR[#0SJ#<S,Q
M/D>4#\Q&W9MV\#VKV< *    . !36AB:596B0R+PKE1D?0T >9V&BIJ'CWP]
M!XAM8[NZMO"RO*EPH<>>'168@\$_,W7UKK_&VC/K?@O4]/MQBX\GS+;:/NRH
M0\>/^!**W]J[MV!NQC..<4M 'A#>*ITG'Q21)/(N ^EK" 3\OV<,O'_7RK+^
M-=98Z,= \0?#G3'YE@LK[SC_ 'I2D;.?Q8L:](\J/9L\M=@.=N.*<54L&(!(
MZ''2@#R/0=%"_!K6K_2+)/[;N5U#$Z)F9B)I%PK=1\J@ #O[U)X5M],O]9\,
MSV?B;PX9;.-_*LM-L3#<.AB(:.3,S$ =3E>J^M>L*JJ,* !Z 4Q((8Y&D2)%
M=_O,J@%OJ: .3^(%OI\]II;W>LV.EW%M=_:+1]04-;R2!&&QP2 1ACW!'45P
M^I:M+JNG>#M3DBTK2M+COKM)Y9;<RV'FC*Q2[=R?*QWE6)&"V>>M>RR11S(4
MEC61#U5AD4K1HT9C9%*$8VD<8^E 'C6LZ?:#X?\ BV>VUS3=2BOKVS,J:5%Y
M4$+^;$K;<._S,-I.#UKIO&&GZ?X-70_$VG64-I::3<^7=I;Q!0;:8"-R0.I4
MB,_\!KOEAB2(1+$BQCH@4 ?E3F574JRAE/4$9!H \E6SFB\,>%=2NT*7NL>)
MX-2G!ZJ9=Y5?^ IL7\*L:-=^%[36/$]OXJ^PC5Y=9=DCO$#32PG;Y'E@@LP
MQC;T.:]2*J<94'!R,CI36AB:596C0R+PKE1D?0T >(36\-R_C#3=<U_P_I=S
M<ZC/O_M*R+77EG_4O$YE7("[=N%."*]?O8H5\+W$.H7C^0+)DN+H?*VW9AG[
MX.,FK[P0R2+(\2,Z?=9E!(^AJ2@#Q_3)UDT+Q#X7TYM(UA8?#\HMM3TJ,!F!
M4HL,H4D;SU&#S@G J:/Q)I&L7'PXM-.OH[F:&=#,L7S>21:R+M<C[K9S\IYX
M/I7J\4,4*E8HTC!.2$4#)I%@B0DI$BY;<<*!SZ_6@#S#PC=^%[<WEGXA^P_\
M)*VMREX[A UP\IFS"R#&XKMV8(X '85C7>C::?A=XZU(V4!OAJE](+DH#(K)
M.=I#=1CV]_4U[288C,)3&GF 8#[1G'IFE\M-I78NUNHQP: *&J77V;P[>W;V
MK78BM'D:W49,V$)V#Z]/QKRG0M2M]0\>>"KBUN/#_P"\AN-UMH]N5-NK0%A'
M(^X@\CH54Y4\5[/4:00QG*1(O);Y5 Y/4T >7^#KW3]+\46&BZ7=Z3KEE=?:
M9HKJ!!]KLNKD3$9R"3MR=ISP16U\38IYX?"T5M<FVG?Q!;A)@@?8=DO.#P?Q
MKMTABC=W2)%9SEF50"WU]:<55L;@#@Y&1T- ' ZYX8&D>#/&.IW>H3ZEJE[I
M4R374RJF$2)]J(J@!5&2?<GFL;3=-/AW7_!>IW]]=ZE8WML+2$WLF[[#</&"
MAC  &' *<@D<<\UZN0&4JP!!X(/>D**0 5! .0".E 'E$6CW5]8^)-5TI<ZU
MI'B6YN[,?\],)&'B/LZY7ZXK!6\?4_AW9ZG"T<.F3>*IKFZ:[@,D<<+22%3*
M@(R@<ID9 Z5[L%5<X &3DX'4T@10I4*-ISD8XH \JB\.6WB.S\5"Q\0Z-J%Q
M>6$2&'1X/*BCF0LT4C8D?YL@#J.%%<^OBJ<SQ?%-TD\B,#2WAP?N?9]QX_Z^
M3MKW2*&*!-D,:1KUVHH _2CRH]FSRUV9SMQQ0!Y1>:+9^'=!\,-=:WI5CK5A
M:32F'5U!@N7EPTV<D$-NZ%<GGH0:AU[79M)TWPYXUL],:Q:_TJ733:(O$;NG
MF6Z@ #C>I XZ-7KLL,4P EC20 Y 90<'UIS(K@!E# '/(SS0!XQH.E2Z?XCT
M[X<N7DM]-OUU<R')#0+&K*/_  (8_E3M7@CNO"OBVWE!,4OC")' )&07MP>1
M7LNQ=^_:-V,;L<XI/+3!&Q<$[CQU/K0!YAXUL8-'\5>&?).D:3HT<=P%DO+/
M?:QW!"!2RAD 8J&"L3V-:OA.YTCPSH&L:I+XAT^\T^74-[R:? 5MX)'")L10
MS]6()P<98^]=U)&DJ%)$5T/56&0:H:EH=EJD=G%<H?(M;A;A8%P$=ESMW#'(
M!(;'J!0!6\77R:9X0U:]DT\:A'#:NS6C#(E&.5/!X]>.F:\_\-7D-S\4M*DM
MK[0K@/I-PLG]BVY2-!NB(1FW,'(SQT([CD5ZU4<<$40 CB1 ,X"J!C/6@#B?
MB9;->#PI;K<SVS2:]"HF@(#I^[EY4D$9^H-4?&FF#1])T1=3U&^U+1EUF*74
M9+XJ^V+:P4/M51Y8<(3D=3S7HY56QD X.1D=#00&!! (/!![T >6&32[WQ?K
MUYX::VDTQ?#LL5[-98,#S[LQC*_*7";_ * @53O=#TNV^!6C>18PQM>)I;7,
MBKAY2\L3-N;J>6/?CM7KL<,44?EQQHB?W54 ?E2[$*!-J[1C QP,=* ///\
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
M/4]#T[5H=3\#:[_Q-KW4$6YT.)RR719P)&>$_-$P&27P.G/6O754*H50 H&
M!VI@@B68S")!*PP7"C)'UH \7NX89M6\:6&NZYX?TR6[O)!_Q-K,O.UN441-
M$YE4$ =  <,#ZUL12Z)I/CB<>,+RTFA.BVD>GW>H*HCF50WG;=W&YFVDCK@B
MO4)((975Y(D=DY4LH)7Z4LD,4VWS8T?:<C<H.#ZT ><C6=#T#XB07L]S!I^D
MW/AN%+&24>4C!)7.Q0<<A67Y>O/2N;M;>UUCP7X5AN8#):W/BZ;?%*I7<I>Y
M.UE//L0?H:]J>*.7;YD:OM.Y=PS@^HI?+3CY%X.X<=#ZT <1/86</Q4TNRBM
M($M/[#NU\A8P$P9HLC;TYR?SKAX)-)3X$ZS96QM%U2W\Q+V&,*)H_P#2VVAP
M.1QTS7N&U=P; W 8SCG%,\B++GRDR_WSM'S?7UH \JUQS!\3=:.J:GH5A#-9
M6ZV3ZW:>:DD0#>8L;&1 /G)W#DG(]*CN;#2]&T#PU.GBS1I;O3;.?[*=3CQ;
M7D+$9"@ME2 %4%23CL0:]9E@BG4+-$D@!R Z@X/XT2013!1)$CA3D!E!P: ,
MKP[J/V[PAIVHKIK68DLTE6R5<>6-O"*,#CTX':O)['5[;4]5\$W5H?#]H[:D
M"-.TVW(N+1#'("LLF[ ]"I1<GITKW&HU@A1F98D#,VXD*,D^OUH \CET33+K
MP?\ $^_N+&"6[6\O]LSH&==D09,$],,<\=ZMM>:/!XVM;KQ?):"UF\.P"RDO
MP#$6W$S ;N-YRG'4BO4]B88;5PWWACK]:1X8I H>-&"G*[E!P?44 <1\)EMT
M\(7*VD316PU2\\F-E*E4\UMH(/(XQP>:YM+C0+?XB>+SK'BJ;1I/MEN8XDU'
M[.)!]GCY([^E>NA0N=H R<\"F-!"[;GB1F]2H- 'D?Q%)U#7Y)]!6:9+?3E;
MQ UHX'G63.K+&/60J)&'0[<^HK0EO_#,/C]+S69=/319M#A&CRW046^S<QD5
M-WRAL&/CKC%>G!%7.% SUP.M-:WA=%1X8V13E5*@@?2@#SN#3M"U7XG:08K&
MWFTZ+PYYMG&\.$1?. 4A"./E/&1QFL6TU&VT3PNUF;+33;#Q3=VMO+J*9M;
M!Y"&([8Y Y'+=17L.U=V[ W8QG'.*:T,3QM&T:,C?>4J"#]10!X7<2I-X,^)
M?DW-E<0--;.LNGPF&!R4C#,BEFZD<D$Y(S7;W^E:?H7Q&\++I=C%:*]A?1.M
ML@4NBK&5!]<'D9[FN]\J/:5\M=I !&.#3+JUBO+:6WF7*2QM&Q!P=K#!P>U
M'A_@:73M3;P?;WDNBVIL)&E1_G^TW<K*P$;;XU4-ELG#-EE&*/LT-W9^)-,U
MOQ%X?TJ^FU*=IOMUD3>#Y\Q21N9ER-NW9M7 Z5Z':^ GCM],L+S7KN\TK3)(
MI+:T:&).8O\ 5AW506"X'IG'.:Z]H(7E65HD:1?NN5!(^AH =&K)$BN^]@H!
M;&,GUIU%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %9OB#6[
M7PYH%[K%[N,%I$9&5>K'H%'N20!]:TJYGX@Z+=^(? NJ:;8 -=NB20J3@.Z.
MKA?QVX_&@"+2[SQO--:7.H:;H\5G.09;:.:3S[=3ZL1M<CN ![&KDWC;PU;Z
MJ=,EUFU2[$@A*%N%D/\  6^Z&]B<U3TKQ[9:K+:VB:9K$>H2L%FMI+"5?LQ[
MEW8!,#U!.>U<&DAA^%E]X'GTJ^D\22F:#R/LDA665Y25G\S&S;R&W$\8H ]+
MU7QAX>T.>6#4M6M[>:(*SQL26 ;)!P!G&%//;'-$/C+PW<ZI!IL&LV<MW. 8
MD23<'RNX $<9(YQG.*P]$TR2/XA^();NW,A_LNQ@6X>/A^)=X!/7)"Y'TKF]
M-TF:#X7>!($L)(YX=8LI94$)#)^^.YF&,C@G)/K0!WNH^-_#.DW4MM?ZS:P3
MQ2".2-V.4.%//H,,O)XYZU-:>+- O]8;2;35K6:^4$^2CYSC[V#T)'< \5R0
MTQVE^)SM9,7NALC8Q<S+]D4  X^89)Z=Z9'ILD%C\,!#9/&;9T\T)$1Y6;1]
MV[CC+=<]Z .GMO$MO:Z?J-[K&I:<L%OJ$EJCV^\;<'"QL#R9?4+QZ5/)XP\/
MQ:5#J3ZG"+6:0Q1-AMSN,Y4+C=D8.1CC%<*EE:+HFL-JSZEIY3Q3<W-I=VUL
M\C0N"2DA4*V4(R,D8.:62_EU+0]-U/7KS4--U*TN[@:;JMMIDA$L8 4/)#M;
M:)%/W3C.W@B@#MSKJW.J:&+"_P!/>QU!)G(?<99@J@CRL<<$G=N_"FR>-O#4
M6K?V6^LVJW8E\DH6X$G]PM]T-[9S7+V,^LZOK?@'4M5L'@NO)OS<!8654RH"
M,P/W-P .#ZXKG4=E^%$_@632[Y_$C[[<P?9)-KRM*2)_-V[-O(?=GM0!Z=JO
MC#P_HD\D&I:K;V\\:JS1,27PV<' &2/E/3ICFM6TN[>^M(KNTFCGMYD#QRQM
ME74]"#7(Z-I\D?Q.URYN("Y&EV427#1\,<R;P&_!<CZ5/\,K>:T^'NF03PO"
MZ&8>6ZE2H\Y\<'VQ0 1^(KZ76O%,T,4ES8Z+ L4=K"FY[BX\LRN <9SAD4#U
MS6=!XIU[3K#4-1UFSE%OI6D)=SCR#&+FXD!<HA(X$84(>^6R>E6_ X-OK?C.
MRDXG76C<$?[$L,90_H?RKH]<NDLM#O;B2PFU"-(COM(8Q(\J]"H4_>XSQWH
MY/P-XD\7>)([/5+^RT0:+>Q-(C64[M- >RN#P3V..E9?@KQEXZ\96MOJD&EZ
M#'I37)BE+32B4*K ,0.1G'2N;\(6,"_%*RN? VGZUI^AO%(=6BNXGC@!VG:J
MAOXLXX[=N,UF?"RT\/Z0]@=8\-:\OB%;TB.X%M.(DW-A2>0N!GG(H [^Y\<^
M)M<\4ZIH_@O2M/GATEQ%=WFHRLJ-)SE$"\Y!!&>>G;C-F^USQF\+/#I+6MQ'
MIA$D"Q^:IO9'V1!7Z%%P68] ",^W+Z)JES\,?%_BBTUC1M3N+#5+UKVSO+*V
M,RMN))4X[\@?4'L0:]9T?4'U;2;:_>RN;(SKO^SW*[9$&>-P[''./>@#%NM5
MU+2?$_ARSO;A);;48)+:;:@ %TBAPP/7#!9!CZ5U%<;XU!N/$?@NRC_UQU8W
M/T2.&3=_Z$!^-=!I6MVFL3ZC%:B7.GW36DS.N 7 !.T]Q\PH AUGQ3H?A^2.
M+5-2AMI9%+I&<LY4=6V@$X]^E.N?$^AV>F6VI7&JVJ6-U_J;@R#9)\I;@].B
ML?PKE9-0B\+_ !&UW4-8M[O[-J-M;"RNHK6290(PP>+Y%)4[CNQWS6%9:#=C
M2/"276F2QPR>)IKY;22+)MH6$SH&'\.,J<=B?6@#U/3=2L]7T^&_L)UGM9@3
M'(H(!P<'KSU!K,M/&?AR^U1=-MM7MI;MV9412<.R]0K8PQ&#P":W#D X&3Z5
MXQ_:6L:]<^&&O7O_ +;#K4,EUID>EF*"Q 9EYD*Y/!'.X@@DXQ0!Z1?>.?#&
MF7,EO>ZU:PS1RF*1&8Y1AC[WH/F')XYZUOJP90RD$$9!'>O.+?3'.D?$PO8M
MYMU<W"H3%\TR_9DV@<?,,EL>Y-=EX866/PAHRRHPE6P@#*_!#>6,@YZ'- $%
MIXS\.7VJ+IMKJ]M+=NS*B*3AV7J%;&&(P> 33+[QSX8TRY>WO=:M89HY3%(C
M-RC#'WO[H^8<GCGK7FXU+6->N?"[7KW_ -MAUF&2ZTV/2S%!8@%EYD*Y/!Q]
MX@@DXQ706^EN=%^)A>Q;S;JZN0F8OFF7[,FW''S#);'N30!V.J^*-#T218]2
MU."W=X_-17/+KG&5 Z\GH.:<OB717T'^W1J=K_9>W=]J,@"=<8SZYXQUSQ7'
MZ!83-XT\,7%Q:.1!X5V^9)&?W<N^(8R1PV-WOC-8LFGWEMISWC:=<RV5AXSG
MO9[>.$LQ@RP$BH!E@&8-P#TSVH ]'TSQ5H>LP74UAJ4,RVHW3CE6B&,Y92 0
M, \XJP=;TP6=A=F\C^SZ@R):2=IF<;E ^H&:X@ ^*_&=_JND6]P+%="EL&N9
MH'A$\SN&50' )"@')Q@;L5BVNIMJ&@> -&ATW4Q=Z7?6:W_F6<B+;F.-D(9F
M !R>1C/')Q0!Z!>^.?"^G7+VUYK=I#,DIA=&;E&&/O?W1R.3Q[U<UCQ+HV@+
M"=4U"&V,^?*4DEG ZD*,D@=ST%<3#I;GPQ\3=UBWG75W>"/,7S3+]F3;CC+#
M)./?-1V=U_PC?BC2M7UBVO/L<_AVWM([B.VDE\F96+.C! 2I8%3R.=N.U ';
M7OBS0=/LK2[N-4MQ!>+NMF0ES,N,Y4+DD8[CI3IO%&A6^EVNIRZM:)8W1Q#<
M&0;'.UFP#TZ*WY&N#UIYX?&UCX@-QJVBZ5<Z0((IH=.61H7$I8I(AC<Q[@5/
M0?=P>E#:';+IWA);(7]_:R>)&O)'O+3RV!9)B6*;%VKNY' '(]J .M/Q#\(K
M9?;#KUH(?,,9R3N#  G*XW# ())&.16GJ'B'2-*L(+Z\U"".VN,>0X;=YN1D
M; ,EN.>,\5S.GZ8/^$]\<7+V7%Q:6B)*T7^L'E.& ..>BY'L*X^VL]1T_2_
M.J7-QJ6GVEKI+VTT]M9B=[61@F-R,C8!"E<[>, <9H ]27Q1H;:1'JHU2V^P
M22");@OA=Y.W:?0YXYQCO5>V\:^'+VROKNTU:WFBLE#7!4G* ]#C&<'L1P:X
M6]T:UN/"QDLI=1U5+_Q):7%RUY9>5O\ GC#L(]BC9@<G&#S7426DO_"V))T@
M<0OX?,9D"G:6$_"YZ9P3Q0!H>#O&&G^,M%BO[,A)2BM/;Y),);.%)P,]#TJP
M=6:'Q'>VMQ>Z>EG;V27+(2PFCRS NY/RA,+QWR#FL3X6W:'P-IVEO%<PWNFP
M+!=13V[Q['R1@%@ W3MGMZU4U>QAG\;^)#J-I=2Z9/X>AAE,$3,6!DFW!=HR
M6 .<#F@#J]'\1Z1K_F_V7>I<^4%+A000&SM/(&0<'!Z'%-U;Q/HFA2B+4]2@
MMI3'YBHY.YESC@#D\]AS7.^!-2U">_OM/%W<:GHMK#%]EU"YLVMY-QW Q'(4
M2;0%.X =<'FK$]DTGQ@L[M[8M%%H<JI,4RJ.9DX!['!/OC- %]?'?A5Y;.)-
M=LF>\V^1MDR&W' !/122" #CD5-JWB_P_H5U]FU+5(+>;:'9#DE%/1FP#M'N
M<5YW/H\L7PC\4P0Z<ZW$FL7$B1I"0[XNQM8#&3\H&#Z"M/QAJ^J/J^MZ0\MY
M96QLU%DEGIOVAM09T8."Y5@ #A<<8'.<4 =OJOB;1=#MK>XU'48((KD_N#G<
M9>,_*!DD8YR*Q/#/C&#4K#Q#JE[J%I_9ECJ4D,%T& C\D)&RG=T/+'GWKF-+
MD;P]>^"]8U:TN_L"^&DLO,2V>4VUQB-CN5064LH*YQVQ67)INH7GA?6+JST[
M4+*%/%B:@T"VH\[[.%C)=8B"&()#;2#RIR,\4 >L:/XBTC7Q-_9E]'<-"0)4
M *LF>F5(! /8XYHUCQ#I.@)$VJ7T=N9B1$IRS/CKM4 DXR,X'&:YGPE%8WWB
M>XUF+6]6U2Z%F+9I+JP%O&$W[@,B) S Y]< FIO&6LZAINL:5!'--8:=/'*9
M]1@L3<NCC;MC  8+NY.2#G;B@"?7?B'H>C:'I^K1W45W;7UPD4+1OP07"NV<
M'[N<D=>,5TEC?6VI645Y9RB:WE&Y) #AA^->1P6E]'\,KB:6TOW,'B7[:ZR6
MQ68PBZ5R_EJ/3)( XYKUNROH=1L([VUWM#*NY-\;1DC_ '6 (_$4 9=IXS\.
M7VJ+IMMJ]M+=NS*B*3AV7J%;&&(P> 36S<7$-I;R7%Q*D,$2EY))&"JJCDDD
M]!7C?]I:QKUSX8:]>_\ ML.M0R76F1Z68H+$!F7F0KD\$<[B""3C%=]\2+"[
MU/P%J5M96[W,N8I#;H,M*B2*SH!W)52,=^E &AIGB[P_K$5S+8ZK;2I;)YDQ
M+;-B<_.=V/EX/S=.*32/%_A_7KMK73-5@N+@)YGEC(9E_O*"!N'N,BN4\5ZG
M#XT\$ZM:Z!87T\R0Q.X>S>'S%616:$%P,L55OE&>OO3Y=0M_%OC'PM-HMK>!
M-,DFFNKB:TD@$"-$4\K+J,L21P,_=S0!T1\=>%Q>Q69UNT\^60Q*F[^,,5VD
M]%.X$#.,XXK"U'QBT_Q,M_#5IK-O90PPI),IM_,>>4R8\G)^[\HSD?WO:L";
M29U^"OB&%-/D%W+J%S*$$)WN?M9*MC&3P!@^@%=?';SGXM7DXCD6)M"BC67:
M=N[SY#C/3/.<4 ::^,/#SZO_ &4NK6QO#*81'NX,G]S=]W=_LYS[4Z?Q;H%O
MJZZ3+JD"Z@TP@%ODE]Y"D#'T9>>G(KRWP]IBGP_I_AC7-8UZWO+>Z3S-/CTQ
M2OF+-O#K*(2=I.&W[^A.37<>&]/>/QIXWNC;F*6>Y@6.=H\;E%NG0]P#G\:
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
M6GDML.QC0)@[=WJ01P/6J=M97_\ PBD]]-9ZA<P6WB\:C<)+:%)IK<;27\H
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
MIW@BVTJ^A\0QFWA>%K.15MY$D5GG,F-NWAFW \[O>@#V:BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBJ&L:Q9Z%8?;K]V2W$D<3.%+;2
M[!03CH,D<T 7Z*RU\0::WB9O#HG_ .)FMJ+LQ8/^KW;<YZ9SV]ZY'5O'ELFN
M^%;VTNKEM)OOMR-%% SM</'M5 J %C\V<8^O2@#T*BN0O_%]E?\ @^]U/3]2
MFTUK:X2WFDFLB\MO)YB HT38Y.X#VW9[5?U;QEI>D:BUA(E[<W,48EG2RM))
M_(0YPS[0=N<'CKQTH Z"BO/W\;IIOCO6[6Z>^N[865I/:VMI;/,P!$AD?"C(
M'W,D^U=II^J6>JZ3!JEC+Y]I/$)8W13EEQZ=<^W6@"Y17GEKX_FUWPUXJDAL
MKVRN=/CO1!,UK(B@1@[<LPP).A*]1CI6AX6\>:;JEOHUC+)=_;+RU7R[B:V=
M(KF14!D".0 Q')X]#B@#LZ*YF[\>:'9WD\,C71@MIA;W%XEJ[6\$F0-KR 8!
M!(![#/.*W-2U"WTG2[O4;MBMM:PO-*RC)"J"3@=^!0!:HKFM.\=Z'J>IVMC
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
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%5=2OX]+TZ>
M]F5VCA7<P3J?IFN4_P"%F:5_SYWO_?*__%5I"E.:O%7(E4C%VDSM:*XK_A9F
ME?\ /G>_]\K_ /%4?\+,TK_GSO?^^5_^*J_JU7^4GV]/N=K17%?\+,TK_GSO
M?^^5_P#BJ/\ A9FE?\^=[_WRO_Q5'U:K_*'MZ?<[6BN*_P"%F:5_SYWO_?*_
M_%4?\+,TK_GSO?\ OE?_ (JCZM5_E#V]/N=K17%?\+,TK_GSO?\ OE?_ (JC
M_A9FE?\ /G>_]\K_ /%4?5JO\H>WI]SM:*XK_A9FE?\ /G>_]\K_ /%4?\+,
MTK_GSO?^^5_^*H^K5?Y0]O3[G:T5Q7_"S-*_Y\[W_OE?_BJ/^%F:5_SYWO\
MWRO_ ,51]6J_RA[>GW.UHKBO^%F:5_SYWO\ WRO_ ,51_P +,TK_ )\[W_OE
M?_BJ/JU7^4/;T^YVM%<5_P +,TK_ )\[W_OE?_BJ/^%F:5_SYWO_ 'RO_P 5
M1]6J_P H>WI]SM:*XK_A9FE?\^=[_P!\K_\ %4?\+,TK_GSO?^^5_P#BJ/JU
M7^4/;T^YVM%<5_PLS2O^?.]_[Y7_ .*H_P"%F:5_SYWO_?*__%4?5JO\H>WI
M]SM:*XK_ (69I7_/G>_]\K_\51_PLS2O^?.]_P"^5_\ BJ/JU7^4/;T^YVM%
M<5_PLS2O^?.]_P"^5_\ BJ/^%F:5_P ^=[_WRO\ \51]6J_RA[>GW.UHKBO^
M%F:5_P ^=[_WRO\ \51_PLS2O^?.]_[Y7_XJCZM5_E#V]/N=K17%?\+,TK_G
MSO?^^5_^*H_X69I7_/G>_P#?*_\ Q5'U:K_*'MZ?<[6BN*_X69I7_/G>_P#?
M*_\ Q5'_  LS2O\ GSO?^^5_^*H^K5?Y0]O3[G:T5Q7_  LS2O\ GSO?^^5_
M^*H_X69I7_/G>_\ ?*__ !5'U:K_ "A[>GW.UHKBO^%F:5_SYWO_ 'RO_P 5
M1_PLS2O^?.]_[Y7_ .*H^K5?Y0]O3[G:T5Q7_"S-*_Y\[W_OE?\ XJC_ (69
MI7_/G>_]\K_\51]6J_RA[>GW.UHKBO\ A9FE?\^=[_WRO_Q5'_"S-*_Y\[W_
M +Y7_P"*H^K5?Y0]O3[G:T5Q7_"S-*_Y\[W_ +Y7_P"*H_X69I7_ #YWO_?*
M_P#Q5'U:K_*'MZ?<[6BN*_X69I7_ #YWO_?*_P#Q5'_"S-*_Y\[W_OE?_BJ/
MJU7^4/;T^YVM%<5_PLS2O^?.]_[Y7_XJC_A9FE?\^=[_ -\K_P#%4?5JO\H>
MWI]SM:*XK_A9FE?\^=[_ -\K_P#%4?\ "S-*_P"?.]_[Y7_XJCZM5_E#V]/N
M=K17%?\ "S-*_P"?.]_[Y7_XJC_A9FE?\^=[_P!\K_\ %4?5JO\ *'MZ?<[6
MBN*_X69I7_/G>_\ ?*__ !5'_"S-*_Y\[W_OE?\ XJCZM5_E#V]/N=K17%?\
M+,TK_GSO?^^5_P#BJ/\ A9FE?\^=[_WRO_Q5'U:K_*'MZ?<[6BN*_P"%F:5_
MSYWO_?*__%4?\+,TK_GSO?\ OE?_ (JCZM5_E#V]/N=K17%?\+,TK_GSO?\
MOE?_ (JC_A9FE?\ /G>_]\K_ /%4?5JO\H>WI]SM:*XK_A9FE?\ /G>_]\K_
M /%4?\+,TK_GSO?^^5_^*H^K5?Y0]O3[G:T5Q7_"S-*_Y\[W_OE?_BJ/^%F:
M5_SYWO\ WRO_ ,51]6J_RA[>GW.UHKBO^%F:5_SYWO\ WRO_ ,51_P +,TK_
M )\[W_OE?_BJ/JU7^4/;T^YVM%<5_P +,TK_ )\[W_OE?_BJ/^%F:5_SYWO_
M 'RO_P 51]6J_P H>WI]SM:*XK_A9FE?\^=[_P!\K_\ %4?\+,TK_GSO?^^5
M_P#BJ/JU7^4/;T^YVM%<5_PLS2O^?.]_[Y7_ .*H_P"%F:5_SYWO_?*__%4?
M5JO\H>WI]SM:*XK_ (69I7_/G>_]\K_\51_PLS2O^?.]_P"^5_\ BJ/JU7^4
M/;T^YVM%<5_PLS2O^?.]_P"^5_\ BJ/^%F:5_P ^=[_WRO\ \51]6J_RA[>G
MW.UHKBO^%F:5_P ^=[_WRO\ \51_PLS2O^?.]_[Y7_XJCZM5_E#V]/N=K17%
M?\+,TK_GSO?^^5_^*H_X69I7_/G>_P#?*_\ Q5'U:K_*'MZ?<[6BN*_X69I7
M_/G>_P#?*_\ Q5'_  LS2O\ GSO?^^5_^*H^K5?Y0]O3[G:T5Q7_  LS2O\
MGSO?^^5_^*H_X69I7_/G>_\ ?*__ !5'U:K_ "A[>GW.UHKBO^%F:5_SYWO_
M 'RO_P 51_PLS2O^?.]_[Y7_ .*H^K5?Y0]O3[G:T5Q7_"S-*_Y\[W_OE?\
MXJC_ (69I7_/G>_]\K_\51]6J_RA[>GW.UHKBO\ A9FE?\^=[_WRO_Q5'_"S
M-*_Y\[W_ +Y7_P"*H^K5?Y0]O3[G:T5Q7_"S-*_Y\[W_ +Y7_P"*H_X69I7_
M #YWO_?*_P#Q5'U:K_*'MZ?<[6BN*_X69I7_ #YWO_?*_P#Q5'_"S-*_Y\[W
M_OE?_BJ/JU7^4/;T^YVM%<5_PLS2O^?.]_[Y7_XJC_A9FE?\^=[_ -\K_P#%
M4?5JO\H>WI]SM:*XK_A9FE?\^=[_ -\K_P#%4?\ "S-*_P"?.]_[Y7_XJCZM
M5_E#V]/N=K17%?\ "S-*_P"?.]_[Y7_XJC_A9FE?\^=[_P!\K_\ %4?5JO\
M*'MZ?<[6BN*_X69I7_/G>_\ ?*__ !5'_"S-*_Y\[W_OE?\ XJCZM5_E#V]/
MN=K17%?\+,TK_GSO?^^5_P#BJ/\ A9FE?\^=[_WRO_Q5'U:K_*'MZ?<[6BN*
M_P"%F:5_SYWO_?*__%4?\+,TK_GSO?\ OE?_ (JCZM5_E#V]/N=K17%?\+,T
MK_GSO?\ OE?_ (JC_A9FE?\ /G>_]\K_ /%4?5JO\H>WI]SM:*XK_A9FE?\
M/G>_]\K_ /%4?\+,TK_GSO?^^5_^*H^K5?Y0]O3[G:T5Q7_"S-*_Y\[W_OE?
M_BJ/^%F:5_SYWO\ WRO_ ,51]6J_RA[>GW.UHKBO^%F:5_SYWO\ WRO_ ,51
M_P +,TK_ )\[W_OE?_BJ/JU7^4/;T^YVM%<5_P +,TK_ )\[W_OE?_BJ/^%F
M:5_SYWO_ 'RO_P 51]6J_P H>WI]SM:*XK_A9FE?\^=[_P!\K_\ %4?\+,TK
M_GSO?^^5_P#BJ/JU7^4/;T^YVM%<5_PLS2O^?.]_[Y7_ .*H_P"%F:5_SYWO
M_?*__%4?5JO\H>WI]SM:*XK_ (69I7_/G>_]\K_\5786TZW5I#<("%E17 /4
M C-1.E.'Q*Q4:D9?"R6BBBLRPHHHH **** "BBB@ HHHH **** ,7Q=_R*FH
M_P#7+^HKQ.O;/%W_ "*FH_\ 7+^HKQ5',<BNN-RD$9&1^5>I@?@?J>?B_C0A
M4@ D$ ]/>DKK[F2[G\*:@US?QZFQ>-E$;[OLPSRQS@@'IP,5R<2>9,B9QN8#
M/UKKA/F3\CGE&UANT[=V#CUI*[E+R:3QI+H98C3"7MA;?P!0IP<>N1G/6N&I
M0GS;H)1Y0P<9QQ0 3T%>@1RWL+Z*\EU#%HXL8C<)-*NUA@[AL)R21Z"LCP\[
MBQUY[&Y6S;$7ERN^P(/,Z$_3BH5;1NW]7+]EK:YRU*%8J6 .!U.*Z?7HOM&K
M:397+K)=E$2XN4&%EW-\I!_BP#C=WIFI^(=0L-<N+>SE,%I:RM%';*/W>U3C
M!7OG'.?6J51NUD2X);LYJBNS@LH+;QY?6T 6&$P2D _=3=#G\AFJFGZ='9Z5
MK3IJ%G<DV>-L#,2/G7GE1Q2]LOR_$?LG^?X'+T8.,XK;N/\ D3+#_K\F_P#0
M4KJU>=M3MH'U""2U:QC']FL_S2DQ#  (V@DX.<T2JVZ=_P  C3OU['G-+M/H
M:V]-4IX<U]6!#*( 0>H/F5>T?6]3&@ZM_IT_^CP1>3\WW/G4<?AQ3E-J]EU_
MR_S$H+2YRV#G&#FDP1U%=1X;N[JXFUFZ:^\JY:TS]ID8_*=ZC)(!-4GGN9_$
M-@+K45ORLL8$BNS #=TY I\[NU;8.163,0@CJ**[)=6N[OQC-I=Y(;JQFO'@
M,,OS!5+$ KZ$>WI7)7$0@NI8@=P1RH/K@XHA-O1H4HVV(L45U_AL?V?IT,LD
M#2)J<YMY,+G$ &UC[?,P_P"^:HZ/IBVWB2Z@NXEE^P1S2F-APY0''X=#2]JM
M?(?LWIYG/D$ $@@'I1M/H?RK1NM?U.^@EANKII8I""4< A<'/R_W?PK:M]?U
M9O"MY<'4+@S)=1(K[^0"K9'Z"FY22V_'_@ HQ;W.3Q1TK=M)'F\,:Y+*Q>1Y
MX&9CU))?)J6[MGUNPT6XA&9V(L)?]Y3\A/U4_I1[2SL_ZTN')IH<[@^E* 3T
M!KKK6ZCNO&[B'_CW@@E@A_W$B91^>,_C57P;J5[%KEG9)<RK;/(Q:(-\I.T]
MOPI.H[-VV5QJ"NE?K8YO!SC!I ">@KH=#U&\U'Q7I;7ES).R3 *9&S@5/X<:
M6./7'ANEM)!"-L[$@)^\'< GVHE4<=UV$H)G+D$=12E2N,@C/3-;1OS'XBL[
MC5+Q=3BA92SJQ<;<YQ\P'3TJQKZZE-9_:6U,:EIK3924')C;!P"IY3CMTI\[
MND^H<FC9SE+M8*&(.#WQ6KX9M(;SQ!:Q7"!XAND9#_%M4MC\<5H:1X@U"_UV
MWMKR8SVEU*(I+9A^[VL<8"]L9XQZ42FTW9;"C%/<YD GH*",=:ZS0HY;6+Q!
M':7:VTD01$G=]@4"3'7MD?SK!U:2ZDOB;N]2\E"@>:DF\8],T1G>30.%E<HT
M5MV/_(HZO_UWM_\ V>MBW2+4/"VEZ/(%$MQ'-);.>TJR-A<^C#(^N*4JO+TZ
M_I<<:=_N.,I2I !((!Z9[UT-^\=J_AR2ZA+QQ6ZF6,CJ!*^14OB ZA=VDMW%
MJ8U#2FE##!Y@)SM!4\KZ<<4>TU0<FC.8H((ZBNDO_P#C]\,_]>D/_HQJO'5[
MNY\9SZ9=R&ZL9KQH&@E^8!2Y QZ$>WI2]H]TA^S7<XT GH*,$=JZO04DLX?$
M$=O>K:O$$1;AV("XDQU )YZ=.]5+6:XG\8:9]JOUOG6XB42JQ88W XY />G[
M35^0N31>9SY!'44H4D$@$@=<=J[35Y+A=%U1]0O8[^.2<1VP1O,,#ALG)Q\O
MR\8[U7TJYGNM&M+/1]06SOX6?S+=CL^TDG((/1CCC!I*J^6]A^SUM<Y*BGRJ
MZ3.DJE9%8AE(Q@]Q3*V,@HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "O>='_P"0)8?]>T?_ *"*\&KWG1_^0)8?
M]>T?_H(K@Q_PQ.S![LNT445YAWA1110 4444 %%%% !1110 4444 8OB[_D5
M-1_ZY?U%>+1,B3(\D8D16!9"2 P],BO;O$EK->^';VVMXS)-)'A5!ZG(KRO_
M (0SQ#_T#)/^^U_QKTL%.,8-2=M3AQ49.2LB-M7L[>QNK?3K!X'NE"2R2S^9
MA<YPHVCTZG-9SS0&RAB2VV7".S//O)W@XP,=!BM7_A#/$/\ T#)/^^U_QH_X
M0SQ#_P! R3_OM?\ &NI3I+:7XG.XU'T_ DD\20M<R:@FG[=4DC*-/YOR E=I
M<)CKCWQ7/5N_\(9XA_Z!DG_?:_XT?\(9XA_Z!DG_ 'VO^-$9TH[-?>$HU);K
M\#/U+4/[0^R?NO+^SVR0?>SNVYY]NM%KJ'V;3;^S\K=]K$8W[L;=K;NG>M#_
M (0SQ#_T#)/^^U_QH_X0SQ#_ - R3_OM?\:.>E:UU]X<M2][,I7.J-<V-A"8
MRL]F&59@W++G*C'L<_G5^77-.NKK[==:/YEZ2&<K.5BD;^\5QGZ@'FF_\(9X
MA_Z!DG_?:_XT?\(9XA_Z!DG_ 'VO^-)RI=U]X[5.WX%:WUN:/5[C4KA/.EG2
M16&=O+J1^F>E06.H?8K>^B\K?]J@\G.[&WY@<^_2M#_A#/$/_0,D_P"^U_QH
M_P"$,\0_] R3_OM?\:?-2[K[Q<M3LS/DU#S-&@T_RL>5,\N_=UW #&/PK5/B
M*R-U;WW]E,U[;QQJCM<'9E  #M"CTSC-1?\ "&>(?^@9)_WVO^-'_"&>(?\
MH&2?]]K_ (TFZ3ZK[QI5%T_ I1:HZ66I0/'O>^*%GSC:5;=T[YIEGJ'V2PO[
M7RMWVM%3=NQMPP;IWZ5H?\(9XA_Z!DG_ 'VO^-'_  AGB'_H&2?]]K_C3YZ7
M=?>+EJ=F5-)U*+3_ +6D]LUQ%<P^4RK)L(^8'.<'TICWEG'?VUS96<D*PNKL
MDDV_<0<]=HQ5[_A#/$/_ $#)/^^U_P :/^$,\0_] R3_ +[7_&CGI7OS+[PY
M:EK6_ >_B&TCO9K^RTSRKZ5F<32SF01LV<E5P!GGC.:Y\DDY/)K=_P"$,\0_
M] R3_OM?\:/^$,\0_P#0,D_[[7_&B,Z4=FOO!QJ/=?@07.OWCI;16DT]I!!"
ML2QQ3$ D=6.,<DDFI)/$4QUJ#58X5%PL2I,'.Y9B%VDD>X[4_P#X0SQ#_P!
MR3_OM?\ &C_A#/$/_0,D_P"^U_QI7H]U]X[5>S*MY>Z7)!(MII302R8^=[@N
M$YS\HP/US4,>H>7HUQI_E9\V9)=^[IM!&,?C6A_PAGB'_H&2?]]K_C1_PAGB
M'_H&2?\ ?:_XT^>E:W-^(N6IO;\#/M]0\C2;VQ\K=]I>-M^[[NS/;OG-6]&U
MY](M[J(0"7S1NB);'E2 $!QZ\,:E_P"$,\0_] R3_OM?\:/^$,\0_P#0,D_[
M[7_&ARI---K7S!1J+5)F?I.H?V9?BZ\KS,(Z;=V/O*5Z_C1I&H?V5JMO>^5Y
MOE$G9NQG@CK^-:'_  AGB'_H&2?]]K_C1_PAGB'_ *!DG_?:_P"-#G2=[M:^
M8*-1=&9VE7W]FZK;7OE^9Y,@?9G&<>]6--U6&S%]'<6K3PW:!&59=A&&#=<'
MTJS_ ,(9XA_Z!DG_ 'VO^-'_  AGB'_H&2?]]K_C0YTGNU]X*-1;+\"B]SIP
MO8I8M/<6ZC#PR7!;?U_B &/_ *U3W6JVW]FR6&GV;V\4LBR2M)-YC,5S@=
M!DU/_P (9XA_Z!DG_?:_XT?\(9XA_P"@9)_WVO\ C1S4OYOQ#EJ=OP,NPO9M
M-OX;RW($L3;ER.#['V-:L>MZ=:7!O+'23#><E&>??'$3W5<#\,DXI/\ A#/$
M/_0,D_[[7_&C_A#/$/\ T#)/^^U_QHE*E+=K[P4:BV7X%"UU$V]AJ%J8]YO%
M0%RWW=K!L^^<51K=_P"$,\0_] R3_OM?\:/^$,\0_P#0,D_[[7_&FJE-=5]X
MG";Z,SX-0\G2+RP\K/VAXWW[ON[<]N^<TZ;4WDLM.@C4QO9!]L@;DDONS[8J
M]_PAGB'_ *!DG_?:_P"-'_"&>(?^@9)_WVO^-+GI;W7WCY:G9C-6U]=7O[2Y
MGL4VPQA)(PY D.XECQC&233)]6M$TVXLM.L7MTN2IF:6;S"0IR .!@9J;_A#
M/$/_ $#)/^^U_P :/^$,\0_] R3_ +[7_&DG25E=:>8VJCUM^!4GU;SYM,D\
MG;]AB2/&[._:Q;/3CK5Z3Q%:)?S:A9Z7Y5]*S.)99S((V;.2JX SSQG-,_X0
MSQ#_ - R3_OM?\:/^$,\0_\ 0,D_[[7_ !H;HOJOO"U3M^!5TS5(;."]@NK5
M[F*[55;;+L(PV[.<'O38[^TM=7M+VSLY(XX'20Q/-O+$-GKM&/RJY_PAGB'_
M *!DG_?:_P"-'_"&>(?^@9)_WVO^-/FI7;NM?,7+4[?@58=7\M=3C>#?#?*<
MINQL?=N5NG..?KFI+#4M-M!!,^EM)=P$,KBX*H[ Y!9<']"*F_X0SQ#_ - R
M3_OM?\:/^$,\0_\ 0,D_[[7_ !H<J3Z_B%JG;\#'N;B2ZNIKB4@R2N78CU)R
M:BK=_P"$,\0_] R3_OM?\:/^$,\0_P#0,D_[[7_&J]K3_F7WD^SGV9A45N_\
M(9XA_P"@9)_WVO\ C1_PAGB'_H&2?]]K_C1[6G_,OO#V<^S,*BMW_A#/$/\
MT#)/^^U_QH_X0SQ#_P! R3_OM?\ &CVM/^9?>'LY]F85%;O_  AGB'_H&2?]
M]K_C1_PAGB'_ *!DG_?:_P"-'M:?\R^\/9S[,PJ*W?\ A#/$/_0,D_[[7_&C
M_A#/$/\ T#)/^^U_QH]K3_F7WA[.?9F%16[_ ,(9XA_Z!DG_ 'VO^-'_  AG
MB'_H&2?]]K_C1[6G_,OO#V<^S,*BMW_A#/$/_0,D_P"^U_QH_P"$,\0_] R3
M_OM?\:/:T_YE]X>SGV9A45N_\(9XA_Z!DG_?:_XT?\(9XA_Z!DG_ 'VO^-'M
M:?\ ,OO#V<^S,*BMW_A#/$/_ $#)/^^U_P :/^$,\0_] R3_ +[7_&CVM/\
MF7WA[.?9F%16[_PAGB'_ *!DG_?:_P"-'_"&>(?^@9)_WVO^-'M:?\R^\/9S
M[,PJ*W?^$,\0_P#0,D_[[7_&C_A#/$/_ $#)/^^U_P :/:T_YE]X>SGV9A45
MN_\ "&>(?^@9)_WVO^-'_"&>(?\ H&2?]]K_ (T>UI_S+[P]G/LS"HK=_P"$
M,\0_] R3_OM?\:/^$,\0_P#0,D_[[7_&CVM/^9?>'LY]F85%;O\ PAGB'_H&
M2?\ ?:_XT?\ "&>(?^@9)_WVO^-'M:?\R^\/9S[,PJ*W?^$,\0_] R3_ +[7
M_&C_ (0SQ#_T#)/^^U_QH]K3_F7WA[.?9F%16[_PAGB'_H&2?]]K_C1_PAGB
M'_H&2?\ ?:_XT>UI_P R^\/9S[,PJ*W?^$,\0_\ 0,D_[[7_ !H_X0SQ#_T#
M)/\ OM?\:/:T_P"9?>'LY]F85%;O_"&>(?\ H&2?]]K_ (T?\(9XA_Z!DG_?
M:_XT>UI_S+[P]G/LS"HK=_X0SQ#_ - R3_OM?\:/^$,\0_\ 0,D_[[7_ !H]
MK3_F7WA[.?9F%16[_P (9XA_Z!DG_?:_XT?\(9XA_P"@9)_WVO\ C1[6G_,O
MO#V<^S,*BMW_ (0SQ#_T#)/^^U_QH_X0SQ#_ - R3_OM?\:/:T_YE]X>SGV9
MA45N_P#"&>(?^@9)_P!]K_C1_P (9XA_Z!DG_?:_XT>UI_S+[P]G/LS"HK=_
MX0SQ#_T#)/\ OM?\:/\ A#/$/_0,D_[[7_&CVM/^9?>'LY]F85%;O_"&>(?^
M@9)_WVO^-'_"&>(?^@9)_P!]K_C1[6G_ #+[P]G/LS"HK=_X0SQ#_P! R3_O
MM?\ &C_A#/$/_0,D_P"^U_QH]K3_ )E]X>SGV9A45N_\(9XA_P"@9)_WVO\
MC1_PAGB'_H&2?]]K_C1[6G_,OO#V<^S,*BMW_A#/$/\ T#)/^^U_QH_X0SQ#
M_P! R3_OM?\ &CVM/^9?>'LY]F85%;O_  AGB'_H&2?]]K_C1_PAGB'_ *!D
MG_?:_P"-'M:?\R^\/9S[,PJ*W?\ A#/$/_0,D_[[7_&C_A#/$/\ T#)/^^U_
MQH]K3_F7WA[.?9F%16[_ ,(9XA_Z!DG_ 'VO^-'_  AGB'_H&2?]]K_C1[6G
M_,OO#V<^S,*BMW_A#/$/_0,D_P"^U_QH_P"$,\0_] R3_OM?\:/:T_YE]X>S
MGV9A45N_\(9XA_Z!DG_?:_XT?\(9XA_Z!DG_ 'VO^-'M:?\ ,OO#V<^S,*BM
MW_A#/$/_ $#)/^^U_P :/^$,\0_] R3_ +[7_&CVM/\ F7WA[.?9F%16[_PA
MGB'_ *!DG_?:_P"-'_"&>(?^@9)_WVO^-'M:?\R^\/9S[,PJ*W?^$,\0_P#0
M,D_[[7_&C_A#/$/_ $#)/^^U_P :/:T_YE]X>SGV9A45N_\ "&>(?^@9)_WV
MO^-'_"&>(?\ H&2?]]K_ (T>UI_S+[P]G/LS"KWG1_\ D"6'_7M'_P"@BO(_
M^$,\0_\ 0,D_[[7_ !KU_3(G@TJSBD7;(D"*P]"% -<6-G&25G<Z\+&2;NBU
M1117G':%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4R:58())GSLC4LV/0#-/JIJG_((O?^N#_^
M@F@!ND:I;:WH]IJEF6-M=Q+-%O&#M(R,BKM>/Z7;/J.C_"[36O+NWM;FRF%P
MMM,T1E58%;:2O...W.">:OV^EZG+9^,O#&C7\J)9W]N;1+BZD!\MHXY'A$N2
MZJWS $<C=0!Z+J6H#38(I3:W5SYDR1;;:+S&7<<;B.RCJ3V%3W4ZVMI-<,"5
MB1G('4@#->6W.I01^&DL[&TOM*NK3Q%8P7EI+=M-Y;-)&2%?<<HRD' QU/ S
M4MQ96_B&^\;WNKZC>6\VE3&"U$=X\*VL0A5@^T$*=Y9B2P(.,=* /0M#U6/7
M=!L-6AC>..\MTG5'ZJ& .#CZUH5XM82W]_9^!="2U:ZL7\/BZ-J+YK19Y%"+
MRRC+;0<[??/:M#4[#7[#PII^FWU[<61G\200VS07K2RPVTA "&0@$D9;&<\8
M]* /6:*\Z\2^%Y--33VL+6YU'0["&9KC3!J<L<NYB&$JN6RY&& 5F'7BNML=
M5T^7P=!JT,LXTXV(G620DRB()G))R2V/J<T ;%%>1:1,]MXP\'WEA8W]A9ZO
MYVYKO5&N'NX_(:16="S '(4YSQG%6="M9H=$\5^*?M-[=:I87>J"Q22X<QQ!
M&DP@CSM.3Z@]L=!0!ZI17E'A;2=>E_X1O6;.!H_-\N6_O9=9>?[9$Z'=F,C&
M<D$8^[C%7?C;>W%AX0TV:WOI;)O[6@#3Q/M*##Y/X8SSZ4 >E45X+<!?#?C+
M7]*\/ZW>7VG7'A>XN[@R79G\N8*V'W9X;[IS_M_2H7CU#PY\#O\ A*+36-3D
MU75(8(9[B2<L((M^T;!_#@87/7GUH ^@*Y_P;XKMO&?AY-8M;>6WB>5X_+E(
M+94XSQ7G=I9VWA+XJ>%+#PUJUW=VNJ6\QOX9+LSJZJF5E.2<$G)R/3CJ:\^T
M_2I-,^#<7C"SU348=2M-2VP(EP1%&OF8("=.<Y/K]* /H#4/&4.G76NP2:7J
M6W1[$WKW!AVPS*$W;8WSRW;\#Z5IZ!K$7B#P_8:O#$\45Y"LRH^,J",X.*\J
MU^[N)/%_Q.MWGE:!/#6Y(BY*J3#U Z#K7+:7'!H>D_#O6=%UZ[N-7O;R&UN+
M4W>]3$>&C\O^$+PN/?/6@#VZ'QEI_P!GUFZO[>]TRTTF<P37%["423G&],9W
M*3CGW%;T$T=S;QSPN'BD4.C#H01D&OGS7HGU7P9\3VNKFZ?[!KK20+YS;1\^
MW:1GE<,>.G ]*O>(MVD>'/ VAZ1<7-SIVJS&2\4ZD8_-?RXR(C-SL4[CQ[4
M>\U@7_BNVT_QGI/AI[>5KC4HI98Y5(V($!)![\XKR'5V\6>$/A]XNP[V-F\]
ML+*%-1^U2V2.Q$@W]0#QC/J>_-6M-T;2-#^-GA"UT?6)]0A:RN)&$MUY^PF)
M_F']W=UQ0!ZWXC\0)X>L;>;[++=W%U<QVEM;Q%09)7S@98@ <$DGTK2LY9I[
M.&6XMFMIG0%X696,9[C*D@_A7#?$W2+/4;CPHURLQ+:U# =D\D?R,KD_=8<\
M#GJ.QYJ&UT.'5/B9K%I<W=^;'3+.Q>WM4NY%3?\ O,,Q#98C;W/.3G- 'HM%
M>.^0FJ?#O7?&%[JE[#KUO)>/'*EY(@M'BD81PA VW&%4$$<[O>M:+3W\5>.G
MM]8GOHX#H%I/+9P7+PIYS/)DG:0<CGC/IG.!@ ],HKQ73X+F'P%X>\52:KJ4
M^L+J<%OYTMTY4P_:?),93.T@J.21DGG-=_\ $G4[W2/ .IWFGR-%<#RXQ*K;
M3&KR*C,#V(5CSVZ]J .KHK@/#FA:UIGB:WN(;+^S]*>VD2ZB?5GN_.?Y2C@,
M.&'S9/<&N3T>SEL_A]X0\4+J6I2:M+>VD<DLMW(RM$\HC:,IG;MVGTSGG.:
M/:Z*\6UQ+GQ'J_B:Q@BU&YU;^T5MM/NXKTQ06J*L>Y2OF*1@E\_*=V>,]MOQ
M7%8W=YJ>G66GZC=W&D:>GF3'5GMXK,%&*%?FRSX7))!Z#)H ].JG>Z@+*XLX
M3:W4WVJ7R@\$6]8N"=SG^%>,9]2*\IFUIM13P:FLC4-2MY] %U<6UG/Y3M,?
M+ E;YTW?QC /!.<=ZO:?I^HZ!I?@2UNIKA+JXUAWN5:Z:4D-%,55FR0<*$!
MXR": /5**\;N]-:[\+^.M=EU+4A?:9J-\U@R7DBK;>7\PVJ" <G@YSQQQ4WB
M*_.J^);FUO+?4=0QHUNUK#8W7D""XDWDLPWKDG"_-R !COR >O53TO4!JFG1
M7@M;JU$F[]S=Q>7(N"1RO;.,CV(JGX4TR?1_"FEV%TY>ZAMT$[&5I-TI&7.Y
MB2?F)_IQ7FFG-=:KX:^']M-J-]&+S4;M+B2&X99)$ G.TMG.,#'J.V#@T >Q
MU5_M&T_M0:9YZ_;3#]H\GOY>[;N^F>*Y/P;#_9?BWQ5H=O-.VGVC6LMO%-,T
MOE&2,EP&8DXRN<9[FJ-WH&G77QM269;@N='^T_+=2J/,6=5!P& Q@#Y>AZD9
MH Z_1-<BUMM3$4+Q_8+Z2R?>1\S(%)8>WS5JUXU+H<5QH'Q"UK[9?Q7ECJ5[
M-:&&Z>-872-7#!5(!). <YX '%7;NXU3Q-XO6QN+%K^WAT>VN8[4:D]FI>3=
MOE^49<@@*.R_4T >L5@:7XE;5]=O[&UTRX-G8S-;2W[2($\Y0"5"YW'[P&<8
MS2^$+35K/PM:VFN2^;>QF1&?SC(2F]MFY\#+!=H)]17F,-JGAKPCXXU/2I;F
MVNHM9DL5N#<R/Y,+20JS89B-P#$[R-WO0![97*VWCBTN;#2KM;28+J.IR::B
MDC*.AD&X^W[H_F*Q9=,M_"OCCPM#HEU=[-2:>*\@ENY)A-&L182D.QP0P'S#
M&=V.]8.E_P#(N^#?^QMN?_0[J@#V*BO)DLX=>\.^*_$.J:E>PZI8W=XD,D=Y
M)$+$0DB-556"] "<CYMU17_B35=#BM]4N9)1<>(/#<?E1$G"Z@H4  ?P[O.'
M _NT >O53TW4!J4$DHM;JVV3/%LN8O+9MIQN [J>H/<5YAX<NM0GU+0O!=Q?
M3RW6B:A<RW\V\AY880#"6]0WG1]>NTU%)/>WGAFP@_M&\A:?QE+;--#,5D$9
MFE&T-V&.GI0![!17E.H/)X0O?&ECI5]<V]K'H*7T FG>;R)R94W*6)(SM4_6
MI?!ND"Z\66.I6MEJ=I9VE@RW/VS4#+YURQ4!@!(P;"[\L>#D8&1P >HT5Q_C
M26SN=1TK1Y+&]U"\N1+)%:P7K6T95 NYI&##.,C YZGBN)L]2OW\)V>E37ES
M;VLWBI]+E=;MGDCMP6(B$WWCR F[.<'% 'KFH:C::7:_:KZ=8(-Z1[VZ;F8*
MH_$D#\:;-J AU2UL/LMTYN$=_/2+,4>W'#M_"3GCUP:\[^('A;1K#P7+#;R7
M92+4+1O)>_E<0[YHU.,MD C)YZ'D8-:VHV$=EXU\+Z);2W,=A)8:@C1FX=B<
M^5R68DDC<<$GCM0!W59,?B&S^S^?=I<6*M>_88Q=Q%#)(6VKM'=6/0]Z\]T+
M4[_5Y?#OA":ZF-]I%[,=5D5R&:.U($>X]2)"\1YZX-9NI6<6K^'X)-0DN)3'
MXU>W4_:9%VQM=[2.&'8#!ZKVQ0!Z\VH!=833OLMT2\!F^T"+]R,$#:7[-SG'
MH#5RN OWFT3QS%:Z<9FAM?#5U)#;O*\@9UE3;G<26/;)YYK \*:;XAO['PWK
MUI"RW$TD-Q?:A+K#R_:HF_UBF'&T=>%'W2H% 'KU%>;VL,F@>.$GUV"YN3J6
MHR+I^J07SL@#ABD$D.X  *"!@$9 /!KMM'LX[-;X1ZE<WWG7DDK&>82>0Q(S
M$O\ =5>R]J -*BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ ILB++&T;J&1@58'N#3J* ,Z#0M+MAIPALHD_LU"EG@?ZE2
MNTA?PXJ.\\,Z+?I>+=:=#*+V1);C<#EW0 *V>Q   (K5HH R+?PMH=IIZ6$&
MF0);)<+<A #S*I!#D]2P(')]*9?^$?#VJ:HNI7VD6L]X !YKIG<!TW#HV.V<
MXK:HH QKOPIH-]IEIIUSID$EK9@+;)@@P@# VL.1QQP:?!X9T6UL8+*#38$M
MX+A;J- .DP.0^>I;/<UK44 9&L>%M$U^:.75-.BN9(U**S9!VGDJ<$9'L>*T
MDMH([5;5(8UMU3RUB"@*%QC;CIC'&*EHH P=/\%>&]*NX;NQT>VAN(6+12*#
MF/(*X7)X&&;@<<]*U;+3K/3HI8K2W2%)97FD51PSN<LQ]R235FB@#!LO!7AO
M3=02^L]'MH;A&+QE =L;'.2JYPIY/0#K6?\ $3PE<^,M$LK"VEMXS!J$5S)Y
M^=K(N[(X!Y.:ZZB@# TSP3X9T>&]AT[1;2WCOD,=R$3_ %B'(*GT7D\#BKZ:
M'I<>B#15L(#I@C\K[*R;DV>F#6A10!@Z%X+\-^&9Y)]&T>VM)I!M:1%);'ID
MY('L*?\ \(?X>_L$Z'_9-O\ V69/,-M@[-V=V?SK;HH RY?#>C3W5_=2Z?"T
M^H0?9KMR.9HL8VGVQQ5&P\!^%=+U6/4['0K*"]B4)'*D?*@#&0.@.._6NBHH
M RD\-:+'!J4"Z;;^5J;M)>H5R)V;J6S5-? GA==!_L/^Q+0Z;YAE^SLN0'/\
M0)Y![9S70T4 86G^"_#>E:5=:79:-:165V,7$.S<)?\ >SDG^E1Z5X&\+Z'<
M6]QIFB6EM/;ES%*BG<I<8;D\G(XYKH:* *UYI]I?FW-W DIMIEGAW?P2#(##
MW&3^=$6GVD&H7%_% BW5RJ)-*.KJF=H/TW'\ZLT4 8,_@KPU=:L=3GT6T>\9
MQ(SE.&<=&*]"WN1FM5=/M$U*345@07DD2PO-_$44DA?H"Q_.K-% &:OA_25T
MN'3!81"RAE$T<./E5P^\$>^[FKUQ;PW=O);W,2302J4DCD4,K*>""#U%244
M8ND^$= T*Y-SINF0V\Q0QAQDE5.,J,DX' X'I5A?#^DII5KI:V,0L;5T>"#'
MRHR-N4CZ$9K2HH \RU/X<W][/K:-:>'KW^U+B25-2OH6:ZME< !5&#G8  N&
M7H*ZQ_!.@W0M)-1L(KZZM[=(#<3C+2A1QO[-SSSGFNAHH X77/ \DVL6%U8:
M?HM]86EA]BBTW5$8Q0 -G>F%;D@*IR.BCFM#POX,@T72H8+Y+>::*^EOH$A0
MK%:.^1LB!/"@$@?4\"NJHH S_P"P],-C?67V*+[-?O(]U'CB5G^^3]:Y'6/!
M%U<>)+O48M.T#5;:>WB@BAU:-C]D" C$>%8%23DC@Y[UWU% &-X4T-_#?ABQ
MTB2Y-R]LA!DP0.6+8 ).%&< 9Z 5/!X?TFVBL8X;")$L)&DM0!_JF8,&(^NY
MOSK2HH K0Z?:6]]=7L,")<W003R#K)L!"Y^@)JKJ7AW2-7O;2\O["*>YM&W0
M2L#N3D'J.HR <'BM.B@"@-$TT6=_:?8X_L^H,[W4>.)6<88GZ@8JKJ7A30M7
M2V6^TR&4VJ;(&Y5HU_NA@0<>V:V:* *UA86FEV,5E8V\=O;1#"11C"KSD_J2
M:BCT?3HK>\MULH?)O9'EN8V7*RLP 8L#UR *O44 8NC^$M T"X>?2]+@MIG7
M89%!+!?[H)SA?8<58C\/Z3%#;0I81+':W+74"@<)*Q8EQ[Y=OSK2HH P;WP5
MX:U'4VU&\T:TFNF*L[LG$A'0L.C$>X-:&H:-INK/:/?V<5PUG,L]N77/ER#H
MP]ZO44 48=&TZWU>YU:&SB34+I%CFN /F=5Z G\!^51KX?TE8HXA81!(KLWJ
M+C[LY))?ZY8G\:TJ* .?\3>&(];TK58[1UM-1O[3[(;L D[ 20IP?N\L./[Q
MK!T;P-<VWB;3=6DT_0=(6P212FCQL&NMR[<2$JORCKCYN0.:[ZB@#,UCP]I.
MOK"-4L8KDP,6B9LAD)&#AA@C/?UJ(>%=!71IM'&DV@TZ9M\EL(QL+<<X['@=
M.F*V** ,2#PAX?MM&N=(BTFV%A=',\)7/FGCEB>21@8.>,"K%IX>TFP-D;:Q
MCC-BDD=L1DF-7(+@$GN0,UIT4 4+?1=-M=6N]5@LH8[^[55GN%7YI HP 3^7
MY5#/X:T6YTNYTV;3H'LKF9IYH2.'D9MQ;Z[N<BM6B@#.L]"TRPFMYK6SCCEM
M[<VT3C.5B)#%?ID U2MO!7AJTU)=0M]'MH[E9#*I4$*K_P!X+]T'W K>HH Q
M;7PAX?LM6.J6^E6\=[N9Q* ?E9OO,HZ*3DY( ZU?L-+L=+%R+&VC@%S.]S-L
M&-\K?>8^YQ5NB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH ***9--';P23S.$BC4N['HH R30 ^BN=TOQOHFK:K'IL$
MEW%=3(TENMU9RP"=!U,9=1NQUXK<NKJWL;62ZNYXX+>)=TDLK!54>I)Z4 34
M5EZ#XATSQ-8/>Z3<&>W29H2Y1D^9>O# 'O4NKZO;:+9"[NDN7CWA,6UM).V3
M_LH"<<=<4 7Z*YG1_'NAZ]>K::?_ &A)(TC1%FTZ=$5USN5G9 JD8QR>O%=-
M0 445FZQK=MHIT\7*2M]NO([*+RP#AW!()R1Q\IH TJ*IV.I0ZA)=I%'.AM9
MS _FQ,@9@ <KG[R\]1Q5R@ HHHH **S4UNVD\33:"$E^U16B7;.0-A1G90 <
MYSE3VK2H ***JZE?Q:7IMQ?3I,\4"%V6&,R.1[*.2: +5%-C<21JX! 8 @$8
M/Y4Z@ HHHH **@O+VUT^W\^\N(X(=RIOD8*-S$*HR>Y) _&J=SK=M:^(;#17
M24W%[#--&P V 1[<YYSGYQCCUH TZ*** "BBB@ HJ#[;:_;S8?:(_M8B\[R-
MPW[,XW8],\9J>@ HHK-\0:W;>'-"NM7O$E>WME#.L0!8Y('&2!W]: -*BBB@
M HK#'B>*7Q3+H-M87MQ);JANKF-4\JW+J64,2P8D@?P@XR*W* "BBH+R]M=/
MMC<WEQ';P!E4R2,%4%B%49/J2!^- $]%9EWK=M9Z_IVC2)*;B_CFDB90-JB/
M;NSSG^,8X-:= !115'4M7LM)^R?;93']KN4M(<*6W2/G:..G0\GB@"]1110
M453&I0G63I?ES^>+?[1O\IO+V[MN-_3=GMUQS4.L:W;:*=/%RDK?;KR.RB\L
M X=P2"<D<?*: -*BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
MRI_$%I;^(#HSQSFY%B]_N5,KY:N%(X.2V3TQ0!JT56T^^CU+3K>]A25(YXQ(
MJS1E' /JIY!JS0 445!<7MK:S6\-Q<1Q27+^7"KL 9&P3@>IP"?PH GHK,AU
MNVG\1W>AJDHN;6WBN'<@;"KE@ #G.?D/;TK3H **@O;VUTZT>ZO;B.WMTQOE
ME8*JY( R3[D"IZ "BBB@ HHJ.XN(;2VEN;B5(H(D,DDCG"JH&22>P H DHK)
MU+Q#9:;'I4C[YH]3NH[6!X<$;G4LK$Y^[A>HSVK6H **** "BBB@ HHHH **
M** "BBB@ HJ"RO;74;..[LKB.XMI1E)8F#*P]B*GH ***S3K=L/$PT'9+]J-
MF;W?@;-F_9C.<YR?2@#2HHHZ4 %%<Y!XSL)]"M-66&<Q7UW]ELXP!ON"7**R
MC/W2%+\_PC-3VWB[1Y[ 7\ETEM9R7C65O/.P5;B0$K\ASR"0P'KM)Z4 ;E%9
M$GB*TB\50^'6ANC=RVQN5D$),04$C!?L>.E:] !1161JGB*TTG5]*TV>*Z>;
M4W>.%HH2R*5 )WG^$<_SH UZ*** "BL?5_$=GHNHV%E<1RL]XLSJR ;8UB3>
MS-DC Z#/J15:U\7VES%X>F:TNH(M<4FW:90-C;-ZH_/!90Q&,]* .AHHJG<Z
ME#:ZC96+QSM+>%Q&R1,R+L7<=S#A>.F>IH N4444 %%9FC:U!KD=Y+;1R"&V
MNY+42-C$I0X9E]MVY?\ @)JQJM]_9>DWE_Y$EQ]FA:8Q18W.%&2!GOQ0!;HJ
M"RO(-1L+>]M7#V]Q$LL3C^)6&0?R-96M>+M(T&[BL[N6>2]E0R):VMN\\I0<
M;MJ D#W- &Y15'2=7L=<T]+[3YC+ Q*Y*,C!@<$%6 (((Z$5>H **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *"0 2>E%175M#>VDUK<Q+
M+!,C1R1L,AE(P0?8@T >=ZE_;%C\2/#%WXC>RN[>22>VL!8*T1@E=#EG5BQ<
M%1C(8 =<5Z)-#;W<30SQQ31[AN1U##(((R#W! -8FE^"/#^CZA'?VEB_VJ)2
MD4D]Q+,8@>H3>QV<<<8JROAC2$M=2MDM6CBU*<W-WY<SJ9)#C+;@V5^Z.A%
M&'\.O^/;Q)_V,-]_Z,KLZP=#\&Z%X<NI+G2K66"64-O+74L@;<022&8C)('.
M,UO4 <-X"8KH'B1E)##6]1(([?O6K%\.[-/^%MOXDUO7]=N)[VRA61X[EB^6
M90BQ*> QX7=U.221U'HMCI%AIMO<P6EN(HKF:2>9=Q.YY#ESR>Y-0-X:T=_#
M:^'GL4;2EB6%;=F8@*N".<YR" 0<YR* //+/5=5\/:WXA@BM]5MX8?#[ZC#:
M:G>B[82HS ,&WN0#T*YZBJ]WI!M['P#JKZ[J-[<7VJ6<LZW-T9(Y79&;>JGA
M,9P N!@\YXKT32_"&AZ/=R7=G9M]IEB,$LTTTDSR)D':Q=B2.!U^E5+/X>^%
MK"Y@N+?2PLEO*);<M/(PA8'/R L0@SV& ?2@#CM5U75?^$:\6M!JEW#/%XHA
MMH)ED):&,M;#:N?X?F;Y>AR?6M&3[5X3\77MG;:O?36LN@3WS?VC<-.(YHG4
M"3YLX!#'('''2NPD\,:-+;W=N]D#%>7:WTZ[V^>92I#]>.43@<<=*9KOA^+5
M(;RXMBL&K2Z?-9079R?+5^?N]#\P4],\4 >?^$;34=4U?PU?(_B=$2U:?5I+
MZ[F6&:4JI38I;:PW9X4;=O6O60RMG:0<'!P>]>9:)X!O['4=&E@T?2-$_LY@
MT]S8WDDCW@"%=A!10%8D$EB3Q^-=GX6T#_A'=&-J\HFNIYI+JZE P'FD8LY
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
M4[LW$S(,*J@!8T'T0#)[G-2ZUX9TCQ 8'U*U+RVY)AFBE>*2//7#H0P![C-
M'FU_J6L6GAGQ%I=KK-X3IVO6MI:7[2%Y51WA)1F_CVER#GJ.#7I^C:3'HMA]
MDCN[VZ&XN9+RX:9R3U^8]O;IS5:/PIH<6C)I$>GHMBDRSB(,W,BN'#%LY8[@
M#DDY[ULT <#I=C<ZQ\1_$DEUK&I"UTR[MC;6<5RR1!C C-N ^\#_ '3QRW&3
M7+Z++XM\0Z+!X@L;;56U6:[,BS'5$6U5%E(:(P;\;0H*\KNSSFO6[72[.SOK
MV]MX0EQ?.KW#[B=Y50JG!.!@ #BL@^!O#QU%[Y;*2.62;SW2.YE2)Y,YW&(,
M$)SSR.: ,#3;.;Q9KOB2YOM9U2T;3=0-G:PVEVT*P(B(V\J.&+%B?G!&.*9:
MV<OB[6O%$NH:SJ=D--O#9VL5G>/ L"K&K>:0I&XL6)^;(P,5TFI>"/#NK:F^
MHWFG;[F4*)BLTB+,%Z>8JL%?'^T#1JO@CP]K5_)?7M@6N)5"3-%/)$)E'02!
M& <8X^8'B@#A-,U#5O%9\!QWNJWUJNH:;=R7OV24PFXV&(*21TSUR,'#$#&:
MJ2VFI)X0\7W_ /PDFM&;P]>7$6G?Z6PV+&%D'F?\]2=VT[\\#C%>KC1=.%[8
MW:VB)-81/!:E,J(D8*"H4<8^5>W&.*A;PYI+Z?J=BUF#;:I(\EXF]OWK. K'
M.<C( Z8H Y"YM[KQ)\1!83ZMJ5K8'0(+I[>SN6A#2-+(,Y7D<>F,X&<@8KG+
M1]6A\ Z;XKF\0:K/J4&I1VP#W!$3PBZ\@JT8^5LKR6.6SWKUF'1["#4_[1BM
MPMW]F6T\S<?]4I+*N,XX)//6JP\+Z,-$71OL0_L]9A.(=[</YGFYSG/W^>OZ
M4 <'J,VL^(/&/B2TCM]8FBTUHH+5;#4UM! 6B#^8PW+O)+<9R,#&.M6)8=>U
M+Q!X2TC6=2O+.:72;A]2CLKCR_.D0Q#[R].3G*X/) (!-=?JG@_1-8U#[?=V
ML@NR@C::WN98&=1T5C&R[A]<U;BT+38+NRNH[4+-8V[6ULP9OW<9VY7&<'[J
M\GGB@#S1M4U2T\-WNC)JUX%'BE-'2^>4M/#;.4;[YYW#<5#'GD5=BTM="^)]
MU!;:E?7"CPU-(BW5R9GA/G)T=OFP2,\DX.<5V\_A;1+FPU&QGL$DMM1G-Q=1
MLS'S)#M^;KD'Y5Z8QBH=-\%Z!I-S)<V=AMN)(6MY)I)I)))(V()#,S$G[J]>
MF.* .%L9=1UJ#X<6<NLZE#'?Z5/)>O!<,KW!6.$C<W7.2?FZ\G!&:BNM4U+2
MM U[28M2U&9+7Q!!8PN)2]VUO)Y3-'&YY+89\$G.._2O2;;PYI-FVEM!:!#I
M<+06?SL?*1@ 1R>>%7KGI6#XM\%KJFFR)IEM:,]QJ,5]?6]U(PCO-@ V,P#;
M?NIT&/EY')H K^!].NH]>UF_SKD>DLL45A#JMS,S XS(0DC$@9VX)Y^]VJ#X
MA:1#J'B?P>9+J^B\S4&A/V>Z>+ \F1LC:1AN,;ASCCI5SPCX5N]'UZ\U)K*R
MTBTFMEA73;&X>6,N&),K$JH#8X  Z=371ZUH&F^(;2.VU.W,T<4HFC*R-&R.
M,@,K*00>3T/>@#B'\/)JOQ1U2T?4M2M[>'1[0$6UTT;RG?*%+2#YCCD]>2><
MU5T[66U'P-X<M=3N-:OM2NI[B&*+3[GR);H0NZDR2;EP J@D[AD^M>B6NBZ?
M97SWMO;[;E[>.V:0NS$QIG:.3VW'GJ<\UGS>"O#\^FVM@;%D@M)7FMS%/)')
M$[DEBKJP89+'//>@#R_5/M6I?"OQ5;ZA/J2?V5K(A@CGO"\B)F$A)'5CY@'F
M-C)/0>E>R:;I\>EV,=I%-<S(A)#W4[32')SRS$D]:SH/!WA^VT:^TB'38UL+
M]B]S"68B1BJJ6))SG"KR.XSUYK0TS3+71[".QLUD6"/.T22O*W)R<LY)/7N:
M /+?'.J2"T\0ZOHC^(I+G2I=K7J7XCM;>5-I,8B+C>.0#\ASGJ:W[ZSN-?\
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
MEKGC[Q%J_B.SMKO3[X6YM%65UD1D0*V=N, X]3FNQ_X1+0M^D,NG1H='W?8
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
MI/A[6/BKXHM]?:*15LK-X[>:<HC +)N?;D9*Y'/\.X^M '<:SKG]C:CH\,L
M:VU"Y-HT^_'E2%28^,<ABI7J,$CUK6ED2&)Y9#A$4LQ] *\@%S<W/P4T.66:
M2:X&JVZ6<LA)=U6\"Q'/<[ /PKU#7K&WU'0;ZTNH1-#)"VZ,]#@9'Z@4 9VI
M>+K2U\-Z?KEG&;RTOI[:.(Y,>5F=5#<C/&[.,?E715XI'I.EI\$M %DJPR7M
MQIINI+>3#ES*@+9SPPY_&MZ33T\)^--5M?#<#0"7PW-=BW5F99+A),(^"3EC
MG!/>@#TVBO'O".A7US;>%]<LO[%MI7>*6ZU!-2EDN+U67]Y'(IC 9B3G!)VD
M<=*] \:Z9+K/AF;3X+V&UFFDCV>>Y6.;#AC$Q!SA@"IQS@]Z .AHKQG5=26/
MP@=*T[2;?1Q'X@@LM5MTNR+;:R@G$JC*QM^[!P 1D@CDU<O-,UOPMHOBJ^TU
M-+TZ(Z26CL-,NGE\N4$YG"LB[/D)Z=2H- 'K5%><3Z'X7TWP7JLV@-%]NNM!
MN"IBN"SW*>7_ *QES\QSCYL9&[&>:@N-5M+@?#*""]BDFDECDV)("Q06K@DC
MTR0/K0!Z7*YCB=PC.54D(O5O85F0:_;$:3'>Q36-YJ@;R+6=,N&5"[*Q7(!
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
M9;^QC>Z,K%FCD?8T?7&S:<;>E 'MU%8OB[4;/2?"6J7VH132VD5NQEC@<H[
M\8# @C.>N>*\_P!"M_[)^(T=I%9Z=H<5UHL\LT-A?&<##ILDDRB@, 6PW.>>
M: /6JR?$'B*Q\.6<4]X)I))Y1#;V]NF^6>0]%1>YX/M7&>!+6'P[X@CT&\TZ
MT.J26#3+JUG.7%]&KJ"\JGD.20<G(ZX/:KOC*>+3?'_@O5+]UBTZ-[NW:9SA
M(II(P(RQ[9PP!H Z+1?$+ZM<2VT^BZIID\:!]M[$H5U)QE61F4GU&<^U;5<5
M\1/$$=OX*U=-+U)%ODAC:3[/*#+%"TBJ\G'(PI8Y]O:LE]+T;P]XW\)KX6$<
M3WIF6[CMY2RSVXB)\Q^3G#;<,>23U- 'I=%>#^&[*P\4W6B>9:6C:BFI/=7N
MI3WT1EN8PSXC,0<R!CE1M90%VULW'A[3]7L?B+J-\DLMS97EP;1C,P%NRVZ.
M'0 X#9QS[ 4 >OT5Y!>M?^(_$OA^RO+;3]0@D\/17<=OJ5T\44L['$C@*C;W
M V\$<!B:=J-AJ>@^$](:"[@N?$=KJKKHT-K.TZM&['=;LS;245-P).,;1Z4
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
M3962R_ZP6\"IO^N!S4T^KZ9:WD=G<:C:0W4F-D,DZJ[9Z84G)K.37)F\>3Z
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
MC=6NGQ+:75]/;+)+=A6,<98"15(^8L4/RCH.<T :U_X>T75;*&SU#2;*ZMH
M!#%- K+& ,#:"....*?;:)I-D;4VNF6<'V166W\J!5\D-]X+@?+GOCK69XL\
M56WA[0M4N(+FSDU*SM7N$LY)1N; SRH.[%:DVKV-E9P7&H7MM:+,!M,\JH"2
M,X&3S0!/;6-I9&<VMM# 9Y3-*8T"^8YZLV.I.!S5/4/#FAZM=Q7>HZ18W=S#
MQ'+/;J[*.O!(JIJ^OR:?XA\/6$21/!JDDRR2$_=5(C("O;G'Y5K?;K/[&MY]
MJ@^RL 1-Y@V$$X'S=.2: *UYH&CZC?07U[I=E<W=O_J9YH%9X^<C!(R.>:@N
M_"GAZ^M;:VN]#TZ>"U&+>.2V1EB'HH(X'L*9XL\0-X8T%]22S-VXFBA2'S/+
MW-(ZH/FP<<MZ5GVWB^\M]9L],\0Z%)I3WS&.TN%N%GADD SL+  JQ . 1S@\
MT ;=]H.CZG#;PW^EV=S%;$&!)H%81$=-H(XZ#I46H>&=!U:\CO-1T:PN[F/
M2:>W1V '3DBEL]69TU*74%M;2"TN6B6472N"@ (9SQL//W3TX]:G&KZ8=._M
M :C:&Q_Y^?/7R_3[V<4 3-9VKW<5VUO$;F)&2.4H-R*V,@'J <#\A43:3IS6
MMU:M86QM[MF>XB,2[9F;[Q88PQ/?-*VJ:>NGC4&OK861&1<&9?+QTSNSBG)J
M%E+9I>1WEN]JY 6995*,2<##9P<GCZT 5M4\/Z-K<44>JZ597J1?ZL7$"OL^
MF1Q4T6D:; EHD.GVL:V9)M52%0("00=F!\N02./4TP:YI!@GG&J61AMVVS2?
M:$VQ'T8YP#]:CO\ 5)(8=/FL4MKJ*ZN8XB[72QJ(VSEU/.\^BCK0 EYX:T/4
M=1CU&]T>PN+V+&RXEMU9UQT^8C/':FZ;H4.GZOJNJM*9KS49$+N1C9&BX2,#
MT')SW+&K,^L:7:N$N-2LX6,GE!9)U4E\ [>3UP1QUY%.OM4T_3$1]0OK6T5S
MA3<3+&&/MDB@!U_I]EJEF]GJ%I!=VSXWPSQAT;!R,@\=0#27VF6&J6365_96
M]U:MC,,T8=..G!XK.U?Q9H^B76F6][=QJVHR>7"PD7:!M9M[$D87Y<9YY(J_
M=:OIMC%%+=ZC:6\<W^J>:94#_P"Z2>?PH KVWAO0[/37TZVT>PALI&#O;I;J
M$9@002N,$Y Y/H*O/9VTEY'=O;Q-<Q(R1S% 716QD ]0#@9^@IMU?6=C:FZN
M[J"WMQC,LT@1.>G)XK(T+Q"VLZYKUDJPFWTZ:%(98FSYBO"LF2>G5NW:@"PO
MA7P\EW-=+H>G"XG</+*+9-SL&# DXY.X _4 T_4?#6A:Q=1W6I:-87EQ$,)+
M<6Z.P'IDCI6I10! ]E:R7,%P]M"T]N&$,A0%HPP 8*>V0!G'I5*Y\-:'>ZI'
MJ=UH]A-?QX*W,ENK2#'3YB,\=O2M2B@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ KG?'6HQ:3X,U&]GT^'4(HU3=;SC,9RZC+\'Y5SN/
M'0&NBI" 000"#U!H \AT2XBF\>ZN;>]T:Z1O#K^8VCP&.'<)!@$[F#, W7/
M(XJ.QTC3M/\  ?PWO[2RAAO'U"P+W"(!(WF*0^6ZD$'&/IZ"O7XX(8E"QQ1H
MH& %4  >E.\M-JKL7:N-HQP,=,4 >*ZE+X;32/B!:^(4M6U^6]NC!'.FZX=-
M@^SF,?>*@8QC@8.<5Z5I0MS\.;(74S0VQTF/S95."B>2,L#[#)K>:"%Y1(T2
M&0#;N*C./3/I3P     !P * /(='FC&E:WX6TXZ/K"Q>'Y1;:GI<:ARNTHL4
MH7(WGJ,'G!.*?'XCTC5H?AM96%]%<W,-S"9TB.XPD6TBE7Q]ULYX/)P?2O6(
MH(8 1#$D88Y(10,GUXH6WA0DI#&I+;R0H&6]?K0!XC+<^$$TGXAP:LMF=8EU
M"\2!)DS-)GB,19Y)WG^'H>36IYND6/Q T3_A,FMEF3PQ IDOL&-;C>P;);Y0
MWWL$^^.M>BZ+X=MM':_8-Y[7=_+?;I$&8VDQD#\NM*_AZWE\4R:Y*_F,]@MD
M8&0%-HD+[OKDT >8:6JC1?#\ELA32Y?&KR::N,*+8B7;M'92=Q'L:;K2W#>'
M_$YC9%M%\8*U\TD1DC$ 6+<70$%D!VDC(X!KV<HA"@JN%Y7CI]* BC=A0-QR
M<#K0!Y3':V<D7BC4[7Q'H5\[Z#+#+:Z-;B-. Q21\2.-P^91TX/M5H^'?#\'
MPLT5'N;'16F2SG^V3QJ4EG4"0";=C>"V[ACWKTF*V@AC*10QQHW554 &G/%'
M)$8GC5HR,%",C'TH \LO=:CU3X.>+I)+/3XO)\^V\[3A_H]V^U0)8_7)8#OR
MO4UWNHI)%X*NXYO]:NG.K_41G-2:UH-MK=C;6,S-':17,4[Q1@!91&VY4/\
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
MSBMC+9W:2F)0&E B1OF/5CNYR>YS7HOEQ[678NUOO#'!^M*44LK%1E>AQTH
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
M:Y"!M/OY40@MAB,J0Q'7(*\$XKU9H(G1T>)&1SEE*@AOKZTC6T#P"%H8VB'
MC*@K^5 'C5]JTFJP^#]0EBTC2=*CNKV.266W,NGF<'$<H&Y/E?\ >%6)ZD]>
MM2:MIMFO@'Q"]OK6FZG;7VKV321Z7%Y4$+^;"K!<.W+#!.#U->QM%&\1B:-6
MC(QL(R,>F*18(DB$2Q(L8Z(%  _"@#SUO#&A+\7[:W72;-;=-":40B%1'O68
M(K%>A(5F )'>L&Q18?"GA^VC&V&W\:-%$@Z(@GEPH]A7L>U=^_:-V,9QSBF^
M5'@#8N VX<=_7ZT >5C0]+O[;XFW=W86\]P+B9%DE0,R 6R,-I/W>3G(]O04
MR;7;<1^'K.]70;::3P_#<OJ>MP^:) 0 8HQN7)_B(W=QP:]8V(-WR+\WWN.O
MUIK00OLWQ1MY9RF5!VGV]* /$M.33H_ _P .K_5H[46L.I2PS3W,8")'^_"J
MQ;[JY X/3BM35)(%^(FHR76I^'[*QGTVV&FR:M:>=#)!AMZQ-YB*/F()'.05
M["O66@B>(Q/$C1GJA4$?E1+;P3H$EACD53D!U! H \D^RZ9HS^ 8M8U2UU#P
M]!%=JE[*H6V,IP8<[B0 $WJI)/2K_@O5O#NBWGCG5;:2*TT&*\@D61(V$8!B
M0%E 'W2Q.,#!!&.*]-DABEC,<D:/&>JLH(_*@Q1E64QH0WWAM'/UH <K!U#*
M<J1D&EHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ IDTGDP22['DV*6V
M(,LV!T ]:?45U<PV5I-=7,BQ00HTDDC=%4#))^@% ',V?C&Z/B*PTC5_#]UI
M;ZBDC6<CSQRAR@W,K!"=K;>>X]ZW]5O9M/T^2XM["XOY@0$M[?:&<D@=6( '
M.22> #7FIFM;;XD>&[K3O$9\2R79EA,,TL<QM(BI9I8S$%"#@ D@DCC-=QJ?
MC+0M*T?4]3FOHW@TV4P7 CY991C]WC^]R!^- $'A_P 6/JVL7VC:AI,^EZI:
M1I,T$DBRJ\;9 977@\C!K3\0:Q'X?\/7^KS1/+'9P-,T:$ L ,X&:Y;P++::
MCJNHZ[=:IIT^N:DBDV=K=)+]CMT^Y'\IY.6RS=-QK1^)?_)-/$?_ %X2?RH
MAB\<S6T]D-=\/WNDVUZZQ07;2QS0[V^ZKE&)3/0$C'O716U]<2ZI?VTUF(;>
MV$9BN/.5O.W EOE'*;<8YZ]J\^\9ZWI?B'P3!X9T>_MM0U;43;Q106LJRM'M
M=&:1MI.U5"DY-&I65KJ.M_$6QO-2338+B'3XS=2$!4)0@;LD @G (R,@XH ]
M*@N8+F(RP3QRQ@XW1N&&?J*Q?$WB6/1/"UWK-GY-YY#QIM63Y26D5#R,]-V:
M\VU'4HG\(:YIPT_3+6*SO[*/5;K1>+>XMG9=Y&!D$+PPYP#UQ6MXPC\)1>!=
M>7PT-+64BR-P-/*[=OGKLW!.,_>]\?A0!Z9/=VUKL^T7$4.\X7S'"[CZ#/6G
M3W$%K%YMQ-'%'G&Z1@H_,UYIM\-7'CKQ:/&0T]I8Q"+1=1V[5M/*!)BW?[>_
M)7G-9%C8FY\$^$KN]U#2Q=V4=S);V&O,/+N;=FPA.>0RQ[,-@XW<CF@#U>6^
MN%U>TM8K,2VL\3R/="=1Y97&!LZMG/4<#'/6K(O+9I4B6XA,D@+(@<98#N!W
MKSK1]0M]5\4>!+ZTL!86\VCWC1VH Q$N80 , <>G'3%<Q9:'IMI\(=*UZ&SB
M75TU*"1;W&90?M@3 ;J%VG&WI[4 >US7EK;.J3W,,3MRJO(%)^F:F5E= Z,&
M5AD$'((KPKQ5)IVH>)/%^D7XT2.YO+F**&^U:Y6*6T011\HK*<KDDK@C))S7
MN%G#!;V4$-JL:V\<:K$L0 4*!Q@#@#'I0!AIXBN;C7->L[2T2:'2;="?W@1I
M;AE+^6"?E "[.3W;VK7MKY7T^"XO!':2O LLD32JWE\#(W#@@$XR.*X#3\KH
M7Q.CD_UXO;MFSUV&V39^E4K#2;#6/$?@:WU&UCNH$\,F3R91N1F'D8W+T8#.
M<'(R >PH ]46:)X1,LB&(C<'##;CUSZ5A^(/$B:3IEG>V@ANTN+^WM,K)\H$
MD@0D$=QFO,YX[>R\.76GR@1>'K?QH8+N+I%%:G#;&["/S&7(Z<UO>)4\,QZ1
M;KX;&GJO]NZ<;E;#;L#><N,A?E!Q^/3- 'I8DC)<!U)3[PS]WOSZ5')=VT,
MGDN(DA.,2,X"G/3GI7G/]LZ;HWB/XAQ:E>PVLDOD211RMAI5-LJC8.K?,",#
M//%8ND#2Y7^'\/B06QT?_A'2UNMYM\AKG$><[OE+!,XS[XH [VU\57=Y'K1M
MM,6=].U46"HMPJ;T*QDOEN./,/'?''6NCEN[: $S7$,>"%.]P,$]!S7B=LNF
MKX(\2C2-O]G#Q9;?9]A)79OML;<_P^G;&,<5U,/AS2-=^(/C=M5L(;SRXK5(
MQ.N\)N@Y*@\!N!\PYXZT >BSW$%M%YD\T<4?3=(P4?F:(IXKA"\,J2*#C*,"
M,_A7A:ZQ!!I/P_N=7AL[^ :/-F+5)A'"SYC52&8,"X&>".A/->E?#33++2_!
M5M%93Z=.)999I)-/8-%N9R=H8?>VC"Y//RB@#0G\1"V\9KHDJ11VYTU[YKAW
MQM(D5,>F/FSFMI9X6\O;*A\P9CPP^<=>/6O./$Z>'Y/B]IB^(_LAM3H\GE+>
M$>4TOG# ;/RDXW8![CUQ6#:6XMO"-_X@TA=UCH'B*:]TT1_=:S&%F6/_ &"&
ME(QQ\M 'LXD0R&,.I=0"5SR >G%(\L<>-\BKG)&XXSCK7(> <:H-8\5-D_VQ
M=DVY(Q_HT7[N+CMG#-_P.LWXC_V2?%'@U==:)=-:ZN%F\YL1G]U\H?MMW;<Y
MX]>* /0(9X;B(2P2I+&>CHP8'\138+NVN@QM[B*8*<,8W#8/H<5XKJAM8(?&
MBZ&53PO]MTY;HV7$2J2/M6S;P!MV;L>]= \?AV#X@Z,?"TEC;P?V?='5'TTH
MJ+;[!Y;.4X!#]">>M 'I!O[0"8BYA/D?ZT!P2GU]*R(?%$6I>&[;6=$M_MZ3
MF,K"TR0LJNP!)+' (!)QU.,"N'\(VNEVE\?"DEEH&KH^F.\>IV"(S31!E&VX
M7GYF)4YR02#61I\>CI\#=-.G)9+>&?3OMOD!1(7%R@'F8YS][K[T >T2W=M
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
MM_$6I:JDF4U&"..YMF0%69,@/GW4[2.^!6DMM CQND$:M&GEHP0 JO'RCT'
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
M3PWI.HZ1:W&IVGEZDC2I/]H0)'&%)5R2?NL05!]:ZE'61%=&#(P!5@<@CUH
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
M::--BU(W]M]AFV>7<>8-C[B N#T.20!]:36=6M-"T>ZU.^F2*WMT+LSL%![
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
M..U$GCG2FTW2KRPCNM1;5=WV.WM8QYC[1E\ABH7;T.2,'B@#I:*XY/B1I/\
M8KZK<6.J6T"7PT]DE@!D\[)4C:K$\$8/?T!J[I_C;3KQ]1BN[:]TJ;3X!<SQ
MZA$$(A.?W@P2"ORGW!'2@#I**Y2P\>V-Y>V,$VFZK81:B=ME<WEN$BN#C< "
M&)4D D!@,U%;>++'3-,UJ_O+V^O$M]7DM$B:!?,\PE0L,2K]X9/!//)STH [
M"BO/+/QB;CXA7C7::EIMC9:"]Q<VEZFW85E!,F%)5OE[J3W'M75:#X@_MV,R
M+I6I641C66*2[C55E1NA7:S?D<'GI0!LT5EZ[KUGX>L4N;P3.995@@@@3?)-
M(W1$7N3@_D:SK+QK8W/]HQ7%E?Z?>:?;FZFM+N)5D,6#\Z[6*L.".#UZXH Z
M6BL'PUXJMO%,+7-E8:A%:;%>*YN80B3@Y^YSDXQSP!Z9'-9GB?QC>Z#XLT32
MH-(N[R"]69I6@B#,VU"0(\N.01ELCH1B@#L:*\['C";2O'GBBVEM-7U&..&T
MEBM;2/S/(7RV+M@L%7)QP#DGH#BML^(K/4=5\*3V6HW0MM42:2&*.)3'<*(M
MW[PGYEV]1COP: .IHKE-,\?Z7JKW306FH)9V?G?:;Z6 +!"T1(92V>N!NX!X
M(S@\5@ZAXX?5M8\)165IK&G17FI*P>XA\M+N#RI.A!/&=AVM@]#B@#TFJ6HZ
M39ZJ]DUW&7-G<K=088C;(H(!XZ\,>#3M5U&'1]'O=3N0Y@LX'N) @RQ5%+'
M]<"L#3_'VFW^HV%K]AU.VAU'(LKNYM]D-P0-V%.<@D D9 SCC- '0ZA8V^J:
M;=:?=H7MKJ)X95!(RC @C(Y'!J2VMX[2UAMH5VQ0H(T&<X4# KG;CQM;6>HQ
M6]WI.KV]M+="T2^EMPL)D+;5'WMX!/ 8K@Y'-$WC>R3Q)<Z#;Z;JEY>VKQK<
M?9H R1!U5E=F+  ?-CUX/&!F@#IZ*\^T;XE22Z5KFHZMHNH06VFW4Z&2.!<+
M&D@0*WSD^8 <MCC"G%==/KUG#K6G:2/,EN+^*2:,Q@%5C0#+,<\ E@!UR30!
MIT54U._&F6+W1MKJYVD 0VL1DD8DX&!^/4X [FL6T\;Z;+!JTE];WFER:3$)
M[N&]C =8R"0PV%@P.T]">1B@#9L-+L],%S]CA\LW,[W,QW%B\C=6))]@,=
M *N5RVG>.(+_ %R#29-%U>QGFMVNE>[BC5!$/XR0Y(&2!C&02,@4VS\?Z;>7
M%EBRU*&QOY?)L]0F@"P3N<[0#NW#=C@LH!H ZNBN-O?B3I=G+J2C3M7N(]+F
M:*^F@M@T=N!@EB=PR,'/&2 ,D#C++SQQ<P>/;31;?2;N[L)[$W F@B5BY+(
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
MD55PS,7X (Q][.* .ZHKF],\9VM_J\&F7.F:II=U=1M):K?PJ@G"C+;2K-R
M<E3@X[4OC^ZN+'X?Z]=6D\D%Q%92/'+&Q5D8#@@CH: .CHKFH?&%@JWL(6YN
M3I=E]IO9XD!2,A=WE[B1F0CG Z=R*@TSX@:9J=_IUNMCJ=O#J0/V*[N;?9#.
MP7<54YSG )&0 <<$T =917(WOQ#TVSEO673]5NK&PD,5Y?VUN&@@9?O G<&.
MWN54XK43Q5IC:A?69=U-G9I?M(0-DD#!L.ASR!M.>G:@#:JAJ^CV6N60L]0B
M,MOYJ2F/>5#%&#+G'49 XZ5DV?CG2+_1-%U6V%P\.L7*VUL@0;PYW9W#/ 78
MV>3TK?O+N"PLI[RY<1V]O&TLKD9VJHR3^0H FHKFK?QG!-HE]K$^DZK:65K:
M&]#W$2#SH@I;*8<\X'1L'D5>F\1V4$FBQLLV=8;;;84<'RS)\W/' /3/- &O
M17-0>-;.[U5[2STW5+FW2Y^R/?PVX:W67.TC.=V >"P4J/6N6\._$&/3=.U$
MZM#JUS#;ZO=0SWXB+PVRF=E168G. "OW0< CI0!Z=1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !7.>.]!N/$O@S4-*M&47,H1XMS%0S(ZN
M%)'(SMQGMFNCHH X'0M+6'4UU(^#=8MKRTMY#')>ZL+CYR!F.,&9A\V,;B%'
M JCX7\(ZWH7B!]3N+>*3_A(8I#JRPE!]AF)9TV'^)<,5.,Y8;N]>F44 <)X-
MC\0Z1H^G^%KWP^ZQV:&WDU);F/R6C .UT4$N6/'!48YYK \/>#'TZRL-#U7P
MKJ=X]K,JF\35S]D=5?*R^69@1C .S9U%>M44 >7V>HZW9>*_',6EZ ^IK->1
MJC1W$:>7+]FC WAR/DZ<C)X/'2IT\,ZQX:M/ \EI8/JK:)!-!=16\J(Q,D8&
MY=Y4$!AZYP:]!M["UM+BYGM[>..6Z<23NHP9&"A03^  _"K% #642Q%'7AEP
MRGWKSWPZ/%?@W1T\.)X;?58K1F2ROHKR*.-XBQ*^8&.Y2 <' /3C->B44 <'
M'%X@\-^*-;OX= DU:#5_)F4VMQ&IAF2,(R-YC+\OR@AAGZ5RMQH&LZ3-X/T:
MV<MK,:7][,+2X6$Q&1U8[7='4J"^W;MYX/&*]FK.U;0-(UU(EU73K:[$1)C,
ML8)0GKM/4?A0!YY8V3ZIHUKI>FZ;<1WFD>);>;4A/<I*S-O$LDOF# <X;)
M(Z8K6\5>$=1\0:_KGE*(K:^\/"QBN&88$WFNVTCKC!&3CO79Z=IEAI%FMIIU
MG!:6ZDD1PH%7)ZG [^]6Z //I+;Q%XGF\.V5]X?DTJ+3+R*]N[B6XB=7:('"
M1!&)()/4A<"J=SX5UQ=-OKB"R62[M_%1UBWMFE4?:8A@8#9PI(+8SCD<UZ;1
M0!P$%MKVH^,KW7;SPT8K)M$>SAM)[F(O,_F!MCX)5=PR.I&!R><5+X*TO4].
MUJ\\K3]0TKP_]G18;"_NDF*3;CDQ[7?8FWC&[KT KNJ* .5\::5J-VVBZII=
MLMW<Z3?"Y-H9 AF0HR,%)X# -D9P.*R9-)UKQ!J^LZY<:5)IP;1)=,L[6>6-
MI96<EBS;6*J,A0!GU)Q7H%% &5X8LY]/\)Z-974?EW%O8P12ID':RH 1D<'D
M=JQO%UGJ:^(/#>MZ=ILFHKITLXFMX9$20K)$5##>0#@XSSWKKJ* .8T?2[ZW
M\9^)]1GMS';7T=H(&+J=Q2-@PP#D8)'7\*Y[PYX7UFP@^'RW-GL.DQ72WH\Q
M#Y1>,A>AYR?3->D44 <)IGA34)?AAJ_AZZ06MW>M?JFY@P'FRR%"2N>"&4U2
M-OXHUFX\)17/AMK"+2;R.2[DDNHFR5B=,QA6.4YZG!Y'!Y(](HH XGQ3X;TW
M2?!?BJ]M%NQ/+I-VK^;>S2K@QL3A7<J.1V%95C;:_P")4\(6]UHAL+32I8KV
M>\:X1TFV1%46, [OFW9.X#&,<UZ-=6L%[:36EU$LMO/&T<L;C(=2,$'V(-.B
MBC@A2&) D<:A54= !P!0!Y'>^&_%&I&%+[3-3N=2AU>.XDO7U0"T,"W 8>5"
M),<)C@H",$Y)P#W6A:5>6?C#Q5?W$.RVOIK9K=]P.\)"JMP#D8((YQ72T4 <
M3X;TF^@E\2Z'JND2?V??7MW<K>>;&8I8YF'R8#;@V&;.1CCKR*R?A58WTLVH
M:CJ<BS/IP_L*SE4Y#PP,=SC_ 'B1_P!\5Z95:PT^TTNR2SL;>.WMH\E8XQ@#
M))/YDD_C0!C>-8-:N/#^S0S,9_M$1F2WE$4LD 8>8L;G 5B.AR/K7G6JZ/>:
M7HOC?4[C3+K3[&^TJ&WMQJ%[]KE9]SJ0Q+N5)+KCD@9!]0/9ZBNK6WO;62VN
MH(Y[>52LD4JAE<'L0>"* /,=*M)[;Q!#INOVNHC4=7T^>RL[J?4([H0QJNYU
MPB)CL=Q!)( S1X9\*/9Q:/INJ^$]3DN=/DBS>_VN7M-T9&V54,V>P(79QTZ5
MWFE>%M!T.=I]+TFTM9F789(XP&V^F>N/;I6O0!PD?A[5%\,>/;,VO[_5;F\D
MLTWK^]62!40YS@98$<XI@TS6M)\0^&M3BTF6]CAT<Z=<I#-&K0.3&=QW, 5^
M4CC-=]10!YX^DZK_ ,)O!>:1HE]I):^+ZC<_;(S:7D !&[RPQ)D;Y<':"#U)
MKL?$5@^J^&=5TZ/_ %EU9S0+]60J/YUI44 ><P^3X@^&WAIW\/W>JJMO'N-G
M<+#/:3(FPLA9D((8,#AL^QJ,:3XKM=/\):M>6LNJ:CI-Q<&XMO/C\\PRJZ+\
MY(5G52N>>>>>]>AVMG;6,31VL$<$;.TC+&H4%F)+' [DDD_6IZ /+;KPOXDU
MNR\83SZ=%97>HW-G=64#W"NK^0$.QBO0G9@]@3P2!FM7Q(?$7BWP1KFG#PS/
M832VP2%)[J%FEDW#(&UB H ZDC/I7>T4 <SJ^E7MSXX\+ZC##NM;*.[6XDW
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
MXQ7*2^$9[#5]>BN_#>J:Q;:E>RW4,MEJI@C*R ;HY$,R 8.1G!R"/3%>J44
M06-O'::?;6T4(ABAB6-(@V[8   N>^.F:XJPTW6;*Y\8:8VDRO!J<\]W;7JR
MQ^6V^%%"$%MP;*GMCWKO** ."?P[JI\)^ K(6O\ I&EW-E)>)YB_NECA97.<
MX."<<9]JQ3X/FL+_ %RUO?#.J:Q!?WLUS#-9ZL88624[BDB&9,$$D$A3D5ZO
M10!RNDZ)<V/CO4;X6OE:<^F6EM P<'YHVDRN,YX#+R?6N?MO"NLQ_#/PYI#6
M6+ZSU*WGGB\Q/D1;G>QSG!PO/!KTJB@ KRZ/PSK]QX$U7PN=,,-S;WKW=I=2
M3(8;K_2O/51@EAD<'(&*]1HH X=8-;\3>*]"O[W0YM(M-(,LSFXGC=YI7C*!
M4\MF^4;B23C/'%;/C?3KO5_ ^MZ=8Q>==W-G)'%'N"[F(X&20!^-;]% 'G-K
MX9UG0])U[P]96GVG2=0L9Y;1_,4/;W+H0T+9.65F.5;G'()Z&M"YT#4Y--\"
M1+;9DTNY@>\&]?W2K;NA/7GYB!QFNVHH \RCTWQ-I'AW6_"MMH#7@O)KK[+J
M(N(UA$<[,<R@MO!7><@*<XXH\5>"-7-IH-MHB^=BP_L/492X0_96V9DY/.-C
M<#)^:O3:* /.]#\(ZG8_$.9Y;9$\/6,MQ>:<ZNO,UPJ!EVYR O[W''\==WJ
M8Z;=!+1;QC$P%LS!1-P?D)/ STYXYJS10!YCIWAC5[BQ\0Z7:6-]H^AWFE26
MMO8ZA=)-Y=PP8;H]K/LC /3/T%2VMIXGU/4_!OVKPZ]A;Z/(?M<DMU$Q9O(=
M,H%8Y3..3S\PXP":])HH X/PM%XA\,)_PCQ\/O<VRW\KQZDMS&L1@DE+EF!.
M_> Q&T+R0.<<U2N?"VLR?"OQ+HRV>=0O+N\DMX?,3YU><LISG R.>37I-% "
M#H*6BB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "N>\<WD6G>
M"-6O)S="*& LWV2<PRXR/NN/NFNAK \;:-=>(?!>K:19&,7-W 8XS*Q"YR.I
M - %/4O%MY:>(W\/Z7H4^I7B64=WN^T+$@1F=?F9NA^48ZYSVP37*>+_ !+<
M^)?"OAF:PTJ:2SU/5(X+JW>Y$3%E=@T#>Q9#ST^7WKM;;1+J+Q]>:VS1?99M
M,AM% 8[MZ22,>,=,,.]8%KX+U2'P[H-@SVWG6&O-J,I#G!B,LKX''+8=>/KS
M0!>3Q%<V5P/#^@>&WNI]/M8GNH?MBQQVN\96(.V=[8!]L8YYID_Q&@.C:+?V
M.DW=W+JMR]HEJ"JR1S*'RK9X&&0@G. .>E/N-)\1:-XLU;5]#MK"_@U9(3-#
M=7+0-#+&FP,"$;<I7&1P<BJEAX'OM/A\+J;B"::QU&>_OY!E0[RI)NV#'0-(
M ,XX% %VY\9:G!JMIHR>&9IM6N+(W9@6[39$ ^TAI,8QTY /4#%9\7Q-EDTM
M-7;PU>Q:7%<"UOKB29 ;>3?Y;!5ZR*K$ D8_'!QT#:+='XA)KNZ/[(NE-9D;
MCOWF57Z8Z8'K7/S^"]4D^'6K:"KVWVR[U"6YC)<[ C7/FC)QUV^W6@#=\0>(
M-6T<7,UKX=DO;.UA,TTYNTBR "2$4Y+$ =]OM6#?>,=;D\7^'X='TW[3I>HZ
M?)=*C3QQF88C(8D@E=H;IGG=[5#XG\%ZKJ^O:O.=/TO5+>^MTBLY-0F;_B7$
M(5;;'M(.2=V00<]35K_A&M>TUO!]Y80V5U<Z1IS6%U#-<-$IW)&-RL%.<&/H
M1R#0!8_X2BPT2X\77LXOY!8W<,31--YOF2/&FQ84/W<EP,>O-7-/\67IU^TT
M?6]#DTNXOHWDM'%RLZ2% "R$J!M8 YQR#@\UE:IX'U#45\4F.XMX9K^_MKZP
M=LL%>%(\!QCH60CC/!S5VVTGQ!K/BG2M7UVVL;"'24E,,%K<-.TTLB["Q)1=
MJA<X')R: *-O\2YIM.M]7?PW=1:*]T+66]:=/D8R>6&"=63=@$\=\ XKOZX
M>"]4_P"%5+X:WVWVX7(EW;SLV_:_.ZXS]WVZUT>FZO>ZAXHU>T6",:78B*))
M\'<\Y!9UZX(4%.W4D?0 F\3ZZGAKPY>:Q) TZ6RJQC5MI;+!>OXT7NNI9>)M
M*T4P,SZA%/(LH; 3R@A(([YW_I4/C#0Y/$OA'4M'AF6&:YBVQNX^4,"&7/MD
M#-8MKI/BG4O&.C:YK-OIMI!86]Q"8+:=I6+2!/FW%0,$KT[8ZG/ !6M?B7-<
M:=::N_ANZBT6:Y6UDO&G3*,9/+#!.K)NP">.^ <5/I_B/Q#/\2M7T=],#:;;
MQP%3YZ#RE8R?O.F6W;1\N>,>]0+X+U0?"RW\-;[;[='<I*6WG9M%T)3SC/W?
M;K6J-)UBQ^(5UJ]I!:3Z=J-M!#<&2<I) 8B_*KM(?(?U'- '+M?I>:7X0FMG
MO1&WBF2,_:K@RN=OVA2-W]W*\#L,"O4JX"S\%ZI!I/A^U=[;S-/UZ749L.<&
M)FF( XY;]XO'UYKOZ .9\.>*KKQ)*9[?2"FE&26-+LW2%]R,5^:/JN2#CDGI
MD"H$\=0OX'LO$_V&01W4\<(@\P97?,(LYQVSFJ&F^&M8/C>VUN73=,T@1B47
MKV%T[_VB67"[DV*!@_-DY.>/>LD>#?%J^%[;PLBZ4-/LKZ.=+LSN9)XEN!(%
MV;<(P'4Y.<8QSD '47GBZ].M7^GZ+H$VJ#3M@O)5N$B"LR[@B!OOMM()' Y
MS7/QZWJNG_$+Q@NG:)<:HPCLY67SUB2-1"<C+9RQ[ #L<D5J'2/$^A^(M:N=
M"M]-N[35Y4N,W=P\36TH0(Q(53O4[0< @]1[UJ:5H=Y9^*O$>IS-$8=26V$.
MPG(,<95LCMR>.30!IZ'J]OK^AV6K6@807D*S('&& (Z'W'2LNYO84^(=G9DW
M?G-I<TP"SD0;5D0',?0M\W#=AFI?!6C7/A_P9I.DWAC-S:6XCD,9)7(]"0*9
M<Z)=2^/K36U:+[+%IDUHP+'=O>2-AQCIA3WH PM-^)4U_9:/JDOARZMM'U.:
M.V2[>="4D<[5^3KLW<;N/7&*RK6\EE^)_B34];THBUT:*)DN6O,BRB$3ON5!
MUW]2.W>M6#P9J<?PZ\.:"SVWVS3KJTFF(<["L<H=MIQR<#CBK\WA":^U'QF+
MJ5$M->MH;>)D.73;$R,2/J<CF@"*V\=W>_2[C4O#MQ8:7JDJ0VMTUPCL&D_U
M?F1CE-WU."0#BK6G^+[O5?$M]I5EH,[V]A=FVNKUIU5$^4,"H/+'GD#H,'/.
M*R4\/^*M7MM$TG6H=,M['2[B">:ZM[AY'NC#R@5"@V D G)/M70>&M%NM(O?
M$,URT974-3:[AV,20ACC7GC@Y0T <W%\49GTJRUE_"]^-)NIA;+.DJ-(922J
MA8^K*6&W.1SVQS6YI?BR[N]2U'2[_0I[+4K2U6[CMEG27SXVW ;6& &W*00>
M,]\<UD6_@O5(OA[H6A,]M]KL=0@N92'.PHEQYAP<<G;[=:O:WX8U74/$6KZA
M8WD=I]KT+^SX)@QWQS;W8-P.!\PY!S0!-;>+-2&MQ:3J?A]K*ZNK:6>S"W:2
MK*8\;D8@#8WS#U'O7-:=XKUG4?A[XBO]>L;B."U%YBXM;M(Y3LD8>6NT?*5
MQN[XSWJ?P[X)U"Q\5:-JSZ-H^EQV5M-#/]EG:66X=E4;V8H,\@X!R>3SS4J^
M%/$"^$O$_ADQ6)@O#=O970N&W.9G+!739\N-QR03]* -JZ\4W$-_;Z-HVDRZ
MI?"S2ZF#W*Q+#&>%W.0<L2#QCL3Q527XBP)X?MM232;R2XDU+^RYK!2OFQ7'
M(*]<'D#!R!@@\43Z)K^C>)#K>BV]E?"ZL8;2[M;BX:$AX\[75PK9&&(((]*J
M0^"-333=/\V>U>_;Q"NM7Y0D1C).Y8\C)P-H&<9QVH WM!\37&IZO?:1J6E/
MIFHVD<<_EF995DB?(#!A[J01_.J/Q3D:+X9ZY(C,K+"I!4X/WUK0@T6ZC^(%
MYKC-']DFTV&U4!COWK)(QR,=,,.]'C?1;KQ%X,U/2;)HUN;F,*AE8A<A@>2
M?2@"MIOBVZG\16^D:GH5QIC7L#SV3R3(YD5-NY6"_<8!@<9/UIA\7:C::KIU
MOJOAV6QM-1N/LL$YNDD82%690Z+]W(4]"<=ZMZOHEW?>,-!U6"2-(+"&[CE)
M/S9E5 I48P?NG-<1IOP]UJ*[T%[K3M(%UIM^MQ=:M]H>2YO0-V3RF5SG)!8\
M@8QB@#LM*\576LZU=VUGI!;3[2[DLYKLW2!UD3J?*Z[<\ YR>N,5TU<'-X:U
MB]\:V>K#3=,TQK:Z+SZC:73F6\@PP$3Q[ #G*Y+$XQQ7>4 >2^#O&=YH?@*P
MNKS0[I]'AN)(KC46G7*[IV&\1_>9 6 )X[X! KK]1\8746J:C9:1HLFI?V8J
MF\D^T+$%9EW!$!SO;;@XX'(&:Y>#P9XM?P9'X,NETH:;++NFOHYW\Q(C+YC(
M(RN&8] V0,'I5W4O TL?BK5=3B\-:#KT&I,DH&HL$DMG"!2 3&^Y#@'L0<T
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
M%=:C9V>L33W,XG5!'&(X\A W+L "2.!C'/-=EI^B75KXZUO69&B^RWMK;11
M,=P:/S-V1C_:&.:SHO"VH)H'C2Q+0>;K5S=2VIW' $D*HN[CCD'.,T /FU^P
MC\7)<;KYD&@/?C9,?),0=3GRN[\\-Z<5H>&-?OO$%I'>S:2+2RN(5FMIENTF
MWJ>S #Y6QVY'O699^&M5L=;L=1B-HS6OA[^S@KNV#.&5AG ^Y\O7K[5%X4\-
M:AIOB:\U233K'1K.>V$;:?8W+2QRS;LF8C:JJ<<<#)R<T ;'C:\BL/!6KW<Y
MNA%#;L[?9)C#+@?W7'W3[U2U#Q;=VGB!?#^F:'<:E>"PCO QN%C0(69?G9NA
M^4>N<^Q-7_&>CW.O^#=6TFS,8N;NW:*,R'"Y/J0#4-KH=W#X[EUIFB^ROI,-
MF &.[S%D=CQCIAAWH HI\0(;C0-*O;/3+B?4-3G>U@T\NJL)8RPD#,> J[&R
M?IQS5'Q!J&H7<_A%[[3I=-N!X@6-X3,L@8>1*<AEZJ<]P#D'BH(?!6N:=IVD
M7=DUG)JNE:G>720R2,L4T4[297<%)5MK#G! (K6O=)\0:X=!N=0AT^VFL=7%
MX\,$S.%A$3KC<5&Y]S>@&/IR 6AXQB.@>)-5^QOMT.:YB>/>,RF%0Q(..,YJ
M"Y\9W+ZC!I^C:'-J5U]CCO;E1<)$L$;_ '5W-]YS@X''3J*Q-2\*^*ELO%>B
MZ8FF/8:Y+/<)=SS.'B,J!6C,87GD<-NXSG!Z5>30/$>AZZ-3T:'3[L7>G6]I
M=17-PT7ER1 A9%(5MRX8@C@^] &9X/\ %)T[P-8O]CN+K4-2U6\AM;-W".6\
MZ5CN)X4*H.3SC'>MJ7X@1V.EZU-J>F26U]I)A$UJDRNKB4@1LLG VDG!) Q@
MYK"/PYU)O#&DPW4>EZCJ.FZE<W;6]RI^S722NY*G(.TX8$<'!'?K6YI^A7=E
MHNHK:^#_  W8RW&Q3912_)<(,[A(XB Z$X&UASSUH Z/1[S4+VV=]1TU;&4-
MA52X6977 .X, /IR!TJMXE\0IX=L8)1:R7EU=W"6MK;1L%,LK9P,GA1@$DGH
M!6;X'\/7N@QZD;B&"RMKJ<26VFV\[31VBA0" S ?>.3@  =JL>,=$O\ 5K?3
M;K2F@_M#3+Y+R&.=BJ2X#*R$@$C*L><'G% ')C6+VX\:^))=4T^[TYK;PV#)
M!'<@DX>4[XI%]0<!L @@\<5M6_BZ6*'0M*TG3)K^[N=*CO@MU>JC"+"@9=@=
M[Y//'N2,U7_X1OQ)J>K:[JFIII]N^H:*=/@MX)F?RFRY 9BHW??SD =<8XR8
MM:\*:M>>&-+T4:+I-Z]MIT<$=Y+=O#+:7 3:70A"2O"D8()QS0!N:CXJO(M9
M71]*T234-02V6ZN8S<)$L",2%!8Y!8D' 'IG-9$FLI9_$2?4]066SMXO"ZW4
M\,A!,6)F+ @$@L.G&:D&@>)="UU=5TO['JTESIT%G>K>7#0,TL6<2A@K9!W'
M(QGWIVI^#M0U[4[V;49K:-+[P]_9DSP;OEG+EBRJ?X1GC)S0!+;>.;P3Z5)J
MOAVXT_3M5E6&TN6N$D8.XS&)$'*;OJ<'@XJ[I/BJZUK6;NWL](+:?:7<EG-=
MFZ0.LB9!)BZ[<C .<G.<8K(70O%.M#0[#7(--MK/2KF&YEN+:X:1[IXON!4*
M#8"<$Y)Z8%++X:UB\\;6>K#3=,TQK:Y+SZA:73F2\@PP$;Q[ #G*Y+$XV\4
M:$OCF&/P9JWB/[#(8].GGA:'S!E_+D,>0<<9QFEU'Q?=V_BIO#^FZ#/J%TMM
M'=,XG6.-8V9E.2W<;1@=\]L$US.I^#O%DGAS7_#%BNE?8+^ZGN8KR6=]X61_
M,\LQA<9W'&[=C';-=A:Z)=0^/+[6F:+[+/IT%J@#'=O1Y&.1CIAAWH S+_Q]
M);C5+RTT2:[TC2I7BO+M;A$8%/\ 6&.,\N%[\CH<9KL898[B".:)@T<BAU8=
MP1D&O-#X FL-4U39X5\-ZW#>WDEU#=W[;)8?,.XHX\IBP!)Q@]*]+BC6*%(T
M145%"A4&  .P]J .*TOQ'XAN?B1K>D2Z8&TVV6WV-YZ#R5;S/WG3+;]H^7/R
MX]Z8_P 1I%TU]>30+A_#22E#J(G3>4#;#*(NI3/?.<<XK032-7L?B!?:I;06
MEQINJ6\$5PSSE)(#%OY"[2'!#^HKG4\'^*4\'MX&5=._L@Y@&I^>WFBV+YV^
M5LQOP<9W8[T >F AE#*001D$=ZY7Q%XLU+P\EW>R>'99=)L\--="ZC5RG&YD
MCY+ 9[E3P:ZF.-8HDC085 % ]A7EGB?X?ZUK4OB*(V&DW\FHLSV>HWL[>9:)
ML $2Q["!@@X8$?>R<]* /5$8.BNIRK#(/M7*7WB^_3Q%J&AZ3X>GU&ZLHHI7
M?[0D4>UP2 6;HW& ,'//3%=1;H8K:*-L95 IQ["O.Q+X@@^*'BJ30[2PN_\
M1;)98KJ=H2"5DVL&"MD#G(QSD8(QR :Z>/[>]TK19]*T^:ZOM7\SR+-Y%B,?
ME<2F1CD*%(QWR2,"H[CXAQ67A_4;^\TJXCO--O(K2[LD<.P:1D"LC#A@0X(Z
M$].*Q9?AG<6^D>'#]FTS6;S2S<&ZM;X8AN#.V]]I*MM*M]TE>GI6C<>$+J[\
M)36%KH>C:+/)?VUQY%D^4*1RHQ+,(URV%;MCIS0!=G\9:I;RZ;8R^&S%JVHM
M*T-K+?1A?+C"DL7 (W'</E )X/;FK>H^*KJUN]/TNTT62ZUJ[MS<O9FX1%MX
MQ@,7DY'WCM& <FF^,M*N]8MHK6/0=+U>V()*WERT+PR?PNC!&]^F#Z5CVWA?
MQ+H5SHFK6D]MJ^HVNE_V;?1W4[1><NX.'23:QR&R/F'(]Z +<OQ%BMM"N;ZX
MTBZ2]L]0BT^ZL%96D21V4 J1PX(8$=,^U36_B;5=2O-1T&71QI>L_83=6@GN
M!+$ZDE S,@X*MC(Y]C67)X)UB[TZ[N;J2T&JZAK-KJ$Z1NWE11PLF$5B,L0B
M=<#)/:NC;1;H_$*/7=T?V1=*:S(W'?O,JOTQTP#WH S!>?\ "#V'A[PKIUJ^
MI7LT+I"9[@0AA& 78L0>26X4 _D*ZVTEFFLX9;BW-O,Z!GA9@QC;'*Y'!QZB
MN>\8Z7=ZO;16J:#I>KVI!+)>7+0O$_\ "Z,$;WZ8/I6EX9TZ]TCPSIVGZC>&
M\O+>!4EG))WL/<\GTR>3B@#B?&0O-4^).A:1/HQOM-%M/,(_M@C61LQ@R$>J
M9. >N>*W]6\7:AHMQYU]X=ECT@726QO/M2%QN<(LGEC/R%B.^<'I5R]T6ZN/
M'>DZTC1_9;2RN() 6.[<[1E<#'3Y3WKA=1^'FMWQNXI;#2+FZ?4A=IK-Q.[3
MF(3!Q&J[/DPHV\-C Z<T =3J?C:]M]:U;2]-\.W&HRZ7''-/(+A(TV,F[@G^
M+@X7O@\BHK#XAF]ET:X;0KNWT?5Y5@M+Z61 QD92R@QCD*=I .>W3!%:-IH%
MY!XE\4:@[1>3JD5ND #'(*1LIW<<<D>M94/@_4D\)>#-++V_VC1KNUFN3O.T
MK&C!MIQR<D8Z4 9'B6_2?PSXH%N]Z'M_$%K"YFN"XSYEN3Y8_@3#?=^OK742
M>-[6WTSQ+=W=L\$F@RO'+"7!:0;0T;+_ +X88]ZR;_P7JESI/B2U1[;S-2UN
M&_@RYP(T: G=QP?W;<?2J'BK1&U#XK:19VTR_9M1@6YU:W ^\EK(&B8_5F"_
M04 >D6DLD]G!--"8)9(U9XB<E&(R5SWQTJ:BB@ HHHH **** "BBB@ HHHH
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
M;CDXRI)ZG&0.U=3X8U[4-2O]7TG5[:VAU#2Y8U=K5V:*1)$W(PW#(/4$'TH
MZ2F>=$)Q!YJ><5WB/<-VW.,X],GK7&?$:_UVPM]#;198(O.U:WAE,DCJ6W.
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
MJUQ9VEQ;S);QLJ.TC(05R20 $QSUK,NO +W5AJT7V]([FYUD:O:3>5N$,BA
MH92?F'RD'IPU=E!=6]TKM;SQ3"-S&YC<-M8<%3CH1W%2T <O'HFN7FE:I9ZI
M<:0GVNT>WC^PVKIM9E(W,68Y'/0#\:VM&L&TO0M/TYI!(UK;1P%P,!BJA<X_
M"KU% '"^.K74+KQ5X-&F7"VUTMW<LLSQ>8BXMV.&&1P?N]0>>.:1_A_<:KI^
MOMK>I1OJ>L&'][:PE8[80G,016))PW)R><XXKLKR_M-/2)[N=(5EE2%"YQN=
MSA5'N3Q5F@#G='T[7XIV.JSZ,8A$4 LK-XW=CCYBS.<#KP!WZ\4S2- U/0?
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
MNM3W::5>P7-L[0(A"1#"QG'7W;K0!G'Q7J_AN[\16FO36^H_V;IBZG!-;P&
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
M<V=I<6\MKNA16B2%PZH2/O9P!DT 5+_QK?Z1;>+X+M(GU'3)$.GHJX$R3@"
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
MCNY6)WH9-P5,848SD[L^U.O?$FI1>/9-*N=3M=(M%DA%DES9LRZ@& +[9=P
M8'*A1SD X.:T?$/A&[\0QSV4VO7$6D7**D]DMO&V0,9"N1E<X]_;%&L^$+G7
M)S!=Z[<'1VFBF-@((\@H58*),;@NY0?7KS0!U#ABC!2%8C@D9P:\ET:+6_\
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
M:C;Z7<V)FU*XTB!))DEVKM8JRL1']\G:#V[5VSZQ%:^"WUJ"Y_M&*'3S<K.
M!]H"Q[MV  !NQV'&: -FBO,)+[Q'H_AK1/%D_B&>\DO);4W=@T40MS'.RC;$
M H8%=XP2QSCGK4UU-XCU75O&8M_$EQ86^D2*;2*""(_-]G1\.64Y3.>!@\GG
MH* /2:*R/#FJOJOA'2M6NBD<EU8Q7,I'"J60,?PY-<%9>)+V+Q%X>EL];UG4
M[+4[MK>9[RQ2&UE4QNP:$A%(P5XY.1W- 'JE%>47>H>)Y]#\8:[%XDGM_P"Q
M+Z[%I:QV\91UB^;;(2I+ CY1@C'7FNZUO7I-+\#WNOI"'E@L&NEC/0MLW 'V
MS0!NU1TK5K/6;:2XL9"\<<\D#$J5PZ,58<^X-<%X?U+Q,=7T60OKM[!=Y&HB
M^LXHH(P4+!XBH!4!L#!)R#ZUDVFO7VD^%[>ST]KB.;4O$E];M-;0K+*D8EE=
MMBMP6.W SG&2<<4 >PT5Y9/JOBZQT77I[=M6>VTT07UK+J5O&DTR*29X6V@!
MAM7(( /.,UM'Q,^HZYJ]U;:NMGH.FZ2CO<&-67SY1YBOR.=D84X[[Z .YID<
ML<R;XG5UR1E3D9!P?UKS71=8U%_&%KI,>KZ]-9:GI\\@FU.SCA=)%V;9(OW:
M\8<_*P('%97A^[U+PM\++[5K75+BXG>^FM8(KE8S%"[WC1^9\J@D_-N()QGL
M* /8J*X7=K'ACQ?H%E/KUWJUIJ[30S)=QQ!HY$C+AT**N!\I!4YZT?#Y]<UB
MT.N:IKDT\9GN8(K-8D6,(LS*"Q"Y+?+U! QCCJ: .ZHH)P,GI7E2^)KR'6]"
MN]/UW6-3M+_4EM)GN+%([*1&##]TP0'((&#DYP>30!Z58:I9:G]J^Q7"3?99
MVMI]O\$JXW*?<9%6Z\NO_$FO+X?UJ2SOUBO(_%*V%O(\2E4B,D:[2,<CYCGO
M[UHZO'X@TW5_#&@VWB:Z9M0ENOM-Y-!$TA58P^% 4*",''!QGG.* .RU?5K/
M0M+EU&_D,=M$5#L%+$;F"C@<]2*O5X_XEOM1C\-^-O#U_J$NHIIDMA);W4RJ
M)"DLBML?: "05/..AK;\:ZQ/#=ZHNG:_K27MA:^:+73K))(8&VEE,S,ASNQG
M&X<=N] 'HM%>=-JVN:_K/A:SMM6?38=3T1KV[,$2,V[]T?D+ A3\Y&2#P3QG
M!&=/XNUW3_#$UD;N:YOU\1G1$O8[=&F,>-^_9@*9-N5'&,X.* /5J*XOPC=Z
MX==O;.Z75YM)^SI+!<ZK D<JR[B&3* !AC!!QQR*["XF%O;2SD%A&A<@=3@9
MH DHKR>35_$EO\/8/'[:_,\S".Z?3/*C^RF%W \H?+O#!3][=G(K>B?7-9^(
MVM6*:Y-9Z7I@M)5@AB0M(SJ25+,I^4[3D=>>HQ0!W5-DDCAC:25U1%&69C@
M>YKG_&%_'9V%K&VK7FGR7%P(T%A;B:XG.TG8BE6QTR3C@#MUKSG6M0U/5_AK
MXXL;K4=1QI4N(I+F&..>6(Q*WERC;CJQY !.!S0![115#1K*:PTV."?4+F_?
MKYUR$#X/;Y%48'TKB='UO4++Q!<1>)-1U2WU(M<O#8O!&+.YB7<R^2X7)(0*
M2"V[KD4 >BT5Y1)JWB2U\ 6OCY]?FDFD$5S)IGE1_9C"[J/*7Y=X8!OO;B<B
MMU'UGQ1XHU^"VUZYTFVTF6.VMX[:*)M\AC#L\F]26'S !01P* .O@U2RNM1O
M-/@N$>[LPAN(AUCW@E<_4 U9=Q&C.QPJ@D_2N'DUZXMM:\:1WVKBRL]/M[-H
MKCR5;R"Z-N8+@[B2!@'/..*H:!K6H?\ "7W.CR7NLW5C-I$EVO\ :]JL,JR*
MZKE<(ORD/T(X(H [W2M4M-:TJUU.Q<R6MU&)(F*E25/3@\BKE<C\.91!\*]!
ME()":>C$#J<#-<K)K'B2'X>1?$ Z_,TQ5+IM,\J/[*86<#RA\N_=M/WMV<T
M>L51U+5K/2%M3>2%!=7,=K%A2<R.<*..GUKDXWUS6?B-K-A'KD]EIFFI:3""
M&)"TC.&)4LP/RG:<CKR.1BG_ !-2XETW08[298+AM=LQ'*R;PC%CAMO?'I0!
MV]%><W&HZWX<UO6M'DUJXU&,Z#-J=O/<QQB6"5#M(^10"IR" 1QC%7+C7M33
M0O %PMT1+J=U:I>-M7]ZKV[NP/'&6 /&* .ZJIIVJ66KVIN;"X2XA$CQETZ;
ME)5A^!!KBM)U348?&DEKXAU/4[.YFNYELK4P1_8;J'!*!'"D[PN&(+ Y!XQ6
M5'X@\0WFBZ EMJOV:YOO$%W923^0C8B4SX&W&,@(,>X&<\@@'JM%>87GB;6?
M"5GXUMY+^75&TF"VFLIKI$\P&?*X?8%#!6&>@XXJ[H-YXDB\264&[7;RQN(9
M1>2:K:1Q)%*%RC(4 (!(*[>>HH ]"HKSKPIJNL--<66JZEJ*>)S:2.=-OX(T
MMF<'AX711N0' ^\3@\C-7/ FIW,]S)9:OJFK'6UMEDNM/U&"- C9P9(2B -'
MG(X9ATZ&@#N:*\^\8:_);>+XM*N-<O-(L%TXW(EL8%DDDF+E0K91\#"D@8&X
MYYXJ""_U.'P=X>BUW7M:MM8OU:1X+2TC>[F. 2H C(15!!.1D9 )H ]%DECA
M3?*ZHN0-S' R3@?K52XU:SMM7LM+ED(N[Q))(4VDAA'MW<]!]X5Y)K%]JFO_
M  OU WFIWRR:?KJ6@=X8XY)D%Q$$\U=N R[@>,<J,YY%=#X@TK43XX\&Z?#K
MMTL_V6_$E^\<;3%?W1. %" ] #MX'8F@#TBBO*[CQ9KNC^'-8LC>2WE_;:['
MI-M>F!6E\N0(P8H %9P'(' !.,U=L-3\16<NLINUJ734TJ6XBNM6MHTDBN5_
MA4J &!!S@CC;0!WFI:I9:/8M>ZA<);VRLJM(_0%F"@?B2!5NO+I;WQ%I_P +
M4\27.OS7-_?1V$@3R8Q' ))HP0HVYR5?!))YY&*U)AKVO>./$6E6_B&XTVQL
M(+9XEMX8R_F2*Q^\RGY<KDCJ?4=P#O:*\G'C2^O]$\&OJ.KRZ9#J5K/+?75G
M$K2%X]JK@%6V*222=O7 XS4UM<^,#X(M;TW>LW0FU)S<21V\2W8L@7"-'&4&
M"<(2""V"<>P!ZE16-X6OK;4?#UO<6NJ3ZE'EU^T7"!)20Q!5U"KAE^Z>!TK9
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH *S]<T>U\0:)=Z3>^9]FNH_
M+D\ML-CV-:%% &='HMI%X@FUI?,^US6J6K9;Y=B,S#CURQK/B\&:5#IUA8KY
M_DV.H'48<OSYI=WYXY&7;CZ5T-% '.ZKX-LM2U9]4AOM2TZ\EB$,\MA<>5YR
M#.T.,$$C)P1@C/6I8?".D6T.BP6T+PQ:/*TMJB/QN*LI+9R6SO8GODYK=HH
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
M-@J<$@C!!((((JC;^!M(@TS6+!VN[F+6.;QKB<N[G8%)W=0<#/L>F!Q72T4
M4-'TP:1IR68O;R\"'B6[DWR$>F<#@5EVG@VRM]6M]0GO]3OGM2YM8KRY\Q("
MP*DJ,9)P2,L3@&NCHH Y&W^'.C6[PQ"XU%]-@F$\6EO<DVJ.&W#"8R0&Y"DD
M9[59U+P3I^HZO<:E'>ZG8S72*EV+&Z,2W(48&_'<#C(P<=ZZ6B@#G[SP9H]^
M-96X29UU:.&.X'F$8$0PA4]01USZ@4S3O!MEI^K'59+[4KV^-JUH9KRXWGRF
M96Q@  8*]@.ISFNCHH H:-I%MH6BVFE6>\VUI$(H_,.6VCU-<_%\.-&A9(A<
M:BVF1S^>FEM<DVJN&W#Y,9P&YVD[<]JZ^B@#/M=&M;/6M1U:+S/M-^L2S9;*
MXC#!<#M]XU#XA\.:?XGL(K/4A*88IUG7RI"C;USCD<CKVP:UJ* .>TKP=IVF
M3WES+/>:C=7D(MY9[^;S7\H9_=C@ +R3TYSSFJ%C\.-'L9]-E^UZI<#3)1)8
MQW%V72W !&Q1C[N#WR>!SBNPHH YR+P;9KJ\&H7&H:G>?9IFGMK>ZN=\4+D$
M;E&,G 8@9)QGBG6_@W2K:+3XX_/VV%]+?PY?_EK)OW9XY'[QN/I70T4 8MQX
M5TJ[NM8GNH6F&KP1V]W&[?*R(& QW!^8\Y]*ATSPHFF2 G6M:NXUC,217-X6
M5%(QV )('0DDBN@HH YJT\%65O=M=3ZEJU]<"W>UAENKLLT$;XW;" "&.!\W
M+<#FI](\*6NDZF^I/>ZA?WS0_9UGO9M[1Q9W;5P ,$@$GJ<#FMZB@#SSQ-X?
MO[CQN^JMI&HW]FUC';PG2M1%I(C!V9O,/F(6'(QR0.>.:MZ5X,O+W1-+DU[4
M+Z'6+&2<P7-O=;IHHI&XB9R")/E"@DCJ./6NXHH YA/ >C)X;U#0LW;6M].;
MF5WG+2^;E3O#GG.Y ><\U=M_#-K#>Z7>RW5Y=76FQS1Q37$H9G$I!;?P,GY1
MCIBMJB@#G[CP;H]U::M;3QRO'JER+N8^80R2@*%9",%2-BD>].M/"T=O;W<-
MQJ^K7ZW,#6[?:[G<%0C!V@ #/N036]10!BW/A?3[OPM!X=D\[[# D")A_GQ"
MRLF3CU09JS:Z-:V>M:CJL7F?:=06))LME<1A@N!V^\:T:* /--7\$R:=>Z#'
M8:;J%_I&FV<T"I97XMKI7=U;)?>FY, \!ASS@UIZ#X8UB?1YHM5U/5[!A>O+
M9)'?^;/!"5 $<CG<'Y#'!W8R.:[BB@#G[7P?IUE::?;6\U[&ME=M>;A<'=/*
MVXL93_'DL2170444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
3 %%%% !1110 4444 %%%% '_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>16
<FILENAME>a2024insidertradingpolic003.jpg
<TEXT>
begin 644 a2024insidertradingpolic003.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBFR2)%&TDC!40%F)[ 4 .HJKIVIV.KV:WFG7<-U;.2%EA<,K8X."*M4 %%
M0W=Y;6%J]U>7$5O;QX+RRN$5><<D\#DTZ>9+>"2>3=LC4LVU2QP/0#D_A0!)
M15;3]0M=5T^WO[&836MP@DBD (#*>AYYJS0 45%<W,%E:RW5U,D-O"ADDDD;
M"HH&22>P K%;QOX6569M?TX*JAF)G4  ]"?8T ;]%%% !15+5=6LM$TZ2_U&
M8PVL>-\FQF"Y..=H.![U/]LMOMWV+[1%]K\OS?(WC?LSC=MZXSQF@":BBB@
MHJKJ.I6.DV;7FHW4-K;(0&EF8*HSP,DU%8:WI>J2R16&HVMS+$ 9(XI0S(#T
M)'4"@"_103@$^E9EKXATF\L$OHKZ(6SSFV5Y<QYEW;-F&P=V[C'K0!IT444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !0>E%-D
M3S(W3<R[@1E3@CZ&@#R?P]J&I:;\*O!;:9=BWDN-0BM9-T2NK))*X.0>?R(^
MM;T>J>)X_P#A+]+LYUU/4--,+6+RQHC,)$#%2  I(PV,XSQFMF+P1HT.C:=I
M,:W*V>G7"W-LHN'RD@)8'.<D DG!XJ:;PEI<]SJ5RQNA-J+1/.R7+J=T1!C*
MX/RD8'3\<T <=JOB&XE\#^(+VUU>[EN+-H0UGJ5A$DULQ8921=@5@P((..W!
M-;\^HZCK'BG7=(MK]["WTNTA;,4:,TLDH<Y.]3\H"@8&"23S5^Y\&:1>:?J%
MG<K<RKJ+(UW*T[>9+LQM!8'@# X&!^9J2[\)Z7>ZF-1E%RMR8!;S-%<.@GC&
M<+(%(#8R>OJ1TXH X;PWKE_:^%O >BV*W ^VZ:\\TELL;2A8U7"KYGR\EQDG
M/ X'.1IW>K^++;3-!6ZD-E>W&MFP<R11.)[<B0I(RKD*V%4X4CG/MC?'@C1D
MTK3=/C6ZC73,_8IH[EUEA!&" X.<$<8/'Y59N/"NFW-OI\,GVHK87(NH6-RY
M;S>?F9B<L>3USUH FMM)FET.?3-;O/[5$XD25WB6+?&Q.%(7 X4XR,9ZUS-O
M8VNH?$OQ387<"2VL^D6<4D1Z,I,P(KNJR[?0+&V\076MQ^?]MNHUBE)E8J57
M[HV]!C)_,T <[!-X@U/QAX@TVVUW[+:Z?+:O$#:QR$JZ;G0G ^4X(SUY'/'-
M2;Q+?0ZUHCV^L/?6][JCV4ZI9!+785D(\N0KDLI0 D.02&X'0=?9Z'9V&L:A
MJD'G?:K_ &?:"TI96V#"X4\# XXK+A\!Z';_ &41I=A+.Y^U6J&ZD*P/DGY%
M)P!\QX]Z .,\6ZCJ/B'X>^+[]K][>WM+N6SBM$C0JR12*A+DJ6W,<G@@#CCK
MGKS<W+?$V?3Q/B!]%$RD1)OC?S2O#;<D=\'(SVI]]X!T'4!J2317(AU%_,N8
M([J18GDXR^P'&[@<XZC/7FM%?#UDNL_VOON3>_9/L?F&9O\ 5YSTZ9SSGKF@
M#A]$\1>(WTGP;J]YJJW"ZK>FSN;;[,BJ05E(<$#(8&,=#CGIW+KOQ#K]W>7-
MO:ZE/;ZBFNBR73X;>-L6FX RY9&/W#OW$[1TQ750^"M'M].TJPB6Y6WTJ?[1
M:+]H<['YY)SD_>;@^IKDCX6\0I;7WV1]9L]7GO9IXYH-046*EY2P;RRY.W:>
M5VY)S]: -SXJ@CX7:V"2Q$*<GO\ .M0:I;ZC::S=>-KRSAMX])T>X2.W2;?)
M.>'.\@ !1LX'/))XKJ=<T2R\1:1-I>HK(]I-CS%CD*%@#G&1SU JY]FC:T^R
MRCSHC'Y;"7YMZXP=V>N>] '$VVM:S8W7A&:[U#[;%KH,=Q#Y2*L3F$RJT14
M[1M((8MP1SFL2RN[BQ\(P2V\BKN\7/"ZO$CAE>^93]X'!YX(P0:[K3_">E:9
M/:2PI.YLHVCLUFG:1;92,$(">..,\D#CI4 \$:.-,73O]+^SK>_;P/M+[O/W
M;]V<Y^]\V.F: *,%[K/B/5?$$%AJITQ-,NDM(%6!) [!$=VD# D@[\ *5Z9Y
MK.N=<URVO/$.AG4W.JFZMQI+F&/B&;H<;?F"E9=Q/9.,&NGG\)Z7/K$VIXNH
MI[C9]H6"YDC2?:,*752 V!Q[C@Y%4;#2KG5/%J>(=4TE;&6RMWM;93,LCON;
M)<E> ,#"]_G?..* .FB1HXD1Y&D95 +L "Q]3@ ?E3Z** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M *K7^H6FF6C75].D%NK*ID<X +,%&?J2!^-6:SM?TB'7_#^H:3/Q'=P/%N_N
MDCAOJ#@_A0!9N[^UL!";J=(O/F6"+<?OR-]U1[FK%>:>&]4F\9:SX>2Z&9-#
MM'GU!#SB]RT"@^A&R=OQ%5?#%]XMUR+2M=B34"UQ>YNO,NX?LH@\PJR+%G<"
MHZ'&[*\]: /5:JW^HVFF6ZSWLPAB:1(@Q!.6=@JCCU) KA-(MO$&K:=XEO[;
M7[K^T$O;^ST^&5@((0LC*F1@Y(/0GH,#'K7DUNYM/#MQ;13ZO:ZI:ZI8174-
M_.LSQB2:,';(N0R,I/?UX'2@#TVBO-+VZU#4[/QAK#:_>Z?-HMQ-%:00R*L4
M8BC5E9U(^?>3DY[$ 8J6!]6\3^(IH)M8U#3(1H=G=F"T<(5GD,N3D@D8QT[X
M&>E 'HU9^K:[I>A0QRZG>Q6RR-MCWGESC)  Y/'I6'X4O;_7/#GA75KG5#%+
M):^9<P*BXNV,>.>XP?F^7^5;>KKJ+6ZC2'L$O^=IO$9EV]\!2#UVT 6-/U"S
MU6PBOM/N8KFUF&8Y8FW*PZ=?KQ6?=>+- L=672[G5K6*]+*OE,_(9ON@GH">
MP/)K"^&D\,/A>:UEVQW5MJ5S;W+&0%);CS"S&,X'RDMP,9'3MFN;N3 WPH\>
M?:=IN3J&H"3/7S?,_=?CCR\?A0!ZU145KY@M(?._UNQ=_P#O8YJ6@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@"E9:1I^FW%W/96<,$MY+YUP\:X,K_WCZFJ:>$M CU4ZFFDV
MRWAD\[S N/WG]_'3=[XS6S10!0.B:8UA=6+6,)M;IWDGB*Y61G.YB?<GFJ]M
MX7T.TLFLX-,@2!YDG=<9+2(058D\D@J,9]!6O10!C7WA+P_J>I?VA>Z1:SW1
MV[I'3._;]W<.C8[9SBM%;"U2^EOE@074T:Q22XY9%)*@^P+-^=6** ,Z'0=*
MM_[.\JPA3^S59;/"_P"H#+M(7TR.*35_#^DZ\L2ZI80W/DDF)G'S)GK@CD9P
M,^N*TJ* ,Q/#NC1V-G91Z;;):V4RSVT2Q@+%(I)# >N23GWJ*?PIH%UJXU:?
M2;62^#*_G,G)9?NL1T)'8GD5L44 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !12%U#*I8!FZ GDTM !1110 4444 %%%,,L:[]T
MBC9RV3]WZ^E #Z*** "BBB@ HID<L<T8DB=70]&4Y!_&G!U+E PW 9(SR!0
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
M6FF0LJ@ET8,20,_=/88XZ]:T?!.AZMX:TDZ1>S64UE;,PM)(0PD96=F_> \
M\@<9H S+#6/$\OQ1U?36@LWTR&"W?:;I@8T9I/G4>7R[8Y4D 8')KG/#WBC5
M_#?A?4=0&BQ3:+::O=?:9VNMLK*URP+1H%((7/.2"<''K7;/H>K6WCR77+":
MR:RO+:&WNXIPPD7RV<@IC@Y#XY]*S9O ]Y)\.M7\-BZ@%Q?7%Q,DO.Q1),9
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
MZH7 P7.]#@CL>E5/A?;ZK&?$,E[>VL\1UF\5EBM3&QE$F&?<7/RG'"XXXY-
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
M,*?*H90V>.I&.3STK%D\<>(O[ MTA@L&UI/$!T2<L&$#G#$2 9R!C8<9/<4
M>CM<0+<);M-&)G4LD98;F ZD#J0,BI*XA[V\TSQ?H=MK']GWEU_9U[--?16G
MEN C1X"98E1M;D9.2*?X8U7Q-J^GV7B.\N=-BTF[C:<V*V[^9#"5)0B7=AF^
M[D;0.3B@#M**\GTWXDZE>IIFJ+<VDT-]<QQMI,5C+YL,+OM#";.&900Q& .N
M*[CQ?KUSH.DP/8PQ2W][=PV5JLQ/EB21L!FQS@#)XZXH Z"LZRU[2=2O[JPL
M=1MKB[M3B>**0,T9SCD#WXKFH]4\2Z;XE@\/ZE?:?<OJ5G-+97L5FT?E2Q[<
MJ\>\[EPP(PP/!'O5?X0P:A'X(AEN[JWFADEG,21VY1T/GR;RS%CNR>1P,=.:
M .XN;NVLXQ)=7$4"$X#2N%&?J:E5E=0RL&4C((.017GND:78>*_'?BB[URTA
MOQIUQ'8V=O<H)(X$\M69@IXRQ;.<9XQ5Z[DGT?5]-\&^$XK/3O-@FO9)9HFE
M2WB#@81-PR2[],@ =J .UHKSFZ\<:QI.D>(;:_6Q?5-(NK:W-V$9+<QSE=DS
MKN)7:&.X9[=:C@\5Z_#_ ,)<_P#:VEZI;:+I9N89[:T*J\Q1W"L1(1\NSD#J
M&'([@'I5%<#8^(?$]MJOAJ35Y--DLM=W)]GMH65[5O*,B_.6._(4@\#VK#G^
M)NH26]WJ]G=6C0V]T\<6D?897EGB1]A;S0<*YP2!@@< YH ]:HK@/$?C+6="
M\1/H:VT$]SJJI_8<A4A0^0LBS<_P9WY&,CCK70>+M1N]$\"ZOJ$#AKRUL9'1
MPN!O"GYL?7G% &Q]MM?M7V7[3#]IQGR?,&_'TZU/7&>'? ?AI/#^ER2:7;7%
MYLBN6OW7,\DW#&0R?>R6YZ^W2J+>(/%6K6.M:WH\^FP6&FSSPP6EQ;M(]UY)
M(<M('&S)! P#VS0!Z#17G\GBK7]=UC1;+P^UE:0ZGHPU-IKN)I6A!9> H(W'
MY@.W<]L5*VJ>+]5\2^(-)TJZTJUCTHP;)I[9Y&E9X5?9@.-HR3\W)P0,=Z .
M[HKSK3/&VL>+5T.RT<6FGW=[IS7]Y//$9EA57\O:B!ER2X/)/ '>F7OC?7M.
M\.:ZDL-E-K>CZC;6A9%9(;A)7CVM@DE"5<@\G!YYZ4 >D45QVI7VNZ-HT!U7
MQ+H=E<RS$-</9N1@@$1QQ^9EFSGG/3M7'ZMXEUSQ#X#-S!J-I%-9Z]%8R7$-
MNX6X FCV.!O!0?,-RG.>1Q0!ZZUQ MPENTT8F=2R1EAN8#J0.I R/SJ2N+N+
MZXT[QGHEOJ:V%U<?V9>337L=KL<;&CX3+,5!!Y&3G%8[>+?%,'A&#QO.^G?V
M5(8YGTQ8&\Q+=W !$N_EP"#C;CJ* /3**X:ZU?Q5J?BO7](T:XTRT@TR."19
M;BW:5G9T+!,!@ ,@Y;MQP:Z#PGK;^(_">EZQ)$L4EW;K(\:GA6[@>V<T ;-%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5FZ
M_HEKXCT*ZTF]+B"X4 M&<,A!!5E/J" 1]*TJ* .6L/"5[_;-EJ>N:[+JLNGJ
MXM$^SI"J,PVL[!?O-MXSP!D\5IZ!H2:#%?HD[3?;+^>])9<;3*VXK]!ZUJ.Z
M1H7=E51U+' %.H YG6O"4E[KD>NZ3JTVDZJ(?L\LJ1++'/'G(5T;@D'H001F
MJ]SX+N[NWLIY?$5X^M65R]Q!J+11_)N4(T?E@!?+*CIUSSFNNJEJVK6>AZ7/
MJ6H2F*T@ :1PI; ) Z#)ZD4 <-XE\'WT/A+Q#<>=<:UK>I)#')*L80K$CC B
MC!Q\H+-MR=QZYZ4SPU!J(UQ;+3I-7ET2>WE^W/JFF1VA20@!-F(XRS')SP1C
MO7I--+H'"%EWD$A<\D4 <RO@N%?#7A_1?MK[-&GMIDEV#,IA/ (SQFF-X2U"
MSU*_N-#\02:=;ZA,;B>W:U28"4@!G0M]W. 2#D9KJZ* .5U?P+9>(+R[GUBY
MDNUDLA9VZ%0OV;G+2+C^,L%.<#&T"N@L+6:WTNWM+RY-Y+'$(Y)W0*92!@L1
MZGO5JB@#B;/P)J.E0MIVD^++^RT7<2EHL$;R0J3DI'*PRHY.,@D>M377@J\2
M^U.31_$5QIEKJCF6[MU@20^85"L\;'E"0!GKSS7852NM6L[+4;"PGE*W-^SK
M;IM)WE%+MR!@8 )YH RK7P?96.HZ#<6<C10Z-9RVD,&,[E<(,D^HV?CFL"70
M-;N_B1K][I^IW6DHUG:1I/\ 9EEBF_UFX8;@LO&"#QGG.:[35M6L]#TN?4M0
ME,5K  9'"EL9( X )ZD5=H XP?#V"RL-&31]3N+&_P!)$HBO&193*)3F42*<
M!MS<]L'I2S> ([O0=<LKW5)KB_UHH;N^:)0?DQL54' 4 <#W/-=E52^U.STW
M3+K4KF8+:VL;RS.H+;54$MP.3C!XH S/$?AQ]<ETVZMK]K*^TV<SV\WE"5<E
M2C!D.,@@GN"*S$\ QR:)XBTZ_P!5N+MM=;?/.8U1D;8J_*!Q@;00/3CGK76P
M3)<01SQ-NCD4.IQC((R*DH YN/PQ=S76A7FIZPUY=Z5-+*)!;K&)=\9CP0#Q
M@'.>]9)^',@T^70X]?N4\-RRL[:<($W!&;>T0EZA"2>,9P<9KNJ* ,BUT"*U
M\47FMI,<W%I#:^2%PJ"-G((/OO\ TI?#6A)X;T*'2XYVG6*25Q(RX)WR-)T]
MMV/PK1N;B*TM9KF9ML4*&1VQG"@9)_*L^V\1Z7>3Z9#!<%I-3M3>6H\MAOB
M4ENG'WUX.#S0!E+X2O;C7[#4=5UV2^CTZ5Y;2+[*D;*S*5^=U^\ "> !GC.:
M@3P#&UGKFEW.IS3:-JLDLWV3RE5H))'#EEDZG#<@$<>]=C10!RECX0O3JUA?
MZYK\VJG3MQM(S;I"JN5VEWV_?;:2 > ,GBFZ7X.O=%N_*L/$-S#HHNFN5T\0
M(2I9MY02'D(6)XQG!QFNK9T4J&906.%!/4^U.H XVW^']O9K8S6M_+#J%E>S
M74=TL8RR2R%WA89^9#NQ]0",5T>G6-U9SWTEQJ,MVEQ.984D0 6Z8 V+CJ."
M<GUJ_10!R^M>&=9U2:\C@\575KIUXNV6V%K&[(I7:PC<C*Y'J#@DXJ&Y\#F&
M[TRZT'59=)FL;$:<"(5F#VX((4AOX@1D-^8-==10!Q,?PZBM]#@LK?5[M+VU
MU&34;6_95:1)'+$A@>'!#$'IGVJ_)X4N[VWL!JFN37EQ::E'J D,"(OR*5$:
MJ/NKSGJ3G-=/10!DPZ$D/BRZUX3L7N+.*U,6WA0C.V<^^_\ 2J7B7PYJ.OQW
M%K%KK6FG74!@N+;[)')D'()5CRI(..<C@8%='5#4]9L-'TB?5;VX"64 S)*H
M+X&<=!DGDT <[-X%DBU&>XTG6I["&ZLX;.ZC\E)69(@54HS?<.UB.A]<9JSI
MO@N'3G\,L+QY/["LY;1 4 \X.J*2>>,;/UKJ** .2TCPAJ6A"&RTWQ'-%HT,
MN^.S:TC=T0MN,8D/\/)'3('>GZCX2O=7U6WEU#79)M.MKU+Z&T^RHK*Z'<J^
M8.=H/MDC@FNJHH P_$WAT^(;>Q\J]:SN["[2[MIA&) '4$?,IX(PQ]/K6-)\
M/FNM-\26][K4]Q<:]'&L\YA5?+*+M&U1QC&./;J>M=3JVJV>B:5<ZGJ$IBM+
M9-\KA2VT?0<FK@.0".AH Q/$/AU->M+14NY;.\L9UN+2ZB4,8Y ".0>&!!((
M/7-3Z/8ZI9B8ZIK']HN^W8%MEA6/&<X R23GG)/08Q6I10!DPZ$D/BR[UX3L
M7N+.*U,6WA0C.V<^^_\ 2LB/P+!'X/L/#WVZ0QV=VET)M@RQ6;S<8SZ\5T>I
M:G9:18R7VH7,=M:QE0\LAP!DA1^9('XU8WH9"FY=X&2N><>M '%ZIX FOI->
MBM=>GL['6\M=P+;H[;R@0[7/(4@#(QZX(S5N\\'7!U2UU/2-;ETV\CLEL9W$
M"2K-$IRORMP&!)P>>O0UO:9JUGJ\,TME*9$AGDMI"5*XD1BK#GT(/-7: .+B
M^'<-OH4-A!JUVMW:ZA)J-K?LJM(DKEB=P/#@AB#TSGM70Z/8ZI9B8ZIK']HN
M^-@6V6%8P,YP!DG.><D]!C%:=% '.:AX2BO]0UR[:[=#JVF#3F4(#Y8'F?,/
M4_O.GM3YO"T4T7AR,W3@:)*DB':/WNV)H\'T^]G\*Z"B@##\3>'3XAM[+RKU
MK.ZL;M+NVF$8D"NH(^93PPPQ]/K6++\/6N]/\007VM3W%QK?D&><PJNPQ]-J
MCC& !CVZFNVJIJ>I6NCZ7<ZE?2&.UMHS+*X4MM4#).!R: *E[H27GB72M:,[
M*^GQ3QK$%X?S=F23VQL_6L > 9!H&MZ#_;4ITO4?.,4)MUW6QE<NWS9RW).
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
M5S&3DHP8%67(S@C@]*&\+6LUOI<5U>WUT^G7@O8IIY@SO( P^8XQC#G@ =J
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
M>XO=0O[K4+8VDMU>3!Y%AP?D7"@*.2>G)Y.:N7?A>PO?#-MH$K3BSMQ $*L
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
M77UQOPS\,/X8\+&.XM?LMW=W$ES+ 7#F($X2/<"<[451^==E0 4444 %%%%
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
MMZC-+'=SW30-II9MM@(^!'M/\9^\3CG</2@#M*@BO+6>ZGM8KB)[BWV^=$K
MM'N&5W#MD<BN"\2R7FD^*YM5UJ35QH&8!:W.GW92.T;.&\Z($;@S'[Q##!QQ
M4>@Z0EM\2O&5ZMWJ4CVIMI5A-VY60M"QVLN<,!T4'IVH ](HKQZ2?4HOAA;^
M/5U_4I-981W1B^TM]F?=( 8/)^[C!V\#.><UT-M:W/BSQ5XE6ZUG5+%-+N([
M:UALKHPB,>4KF1@.')+'[P(P,8H ZZRUNVOM;U/28DE%QIWE><S ;3YBEEVG
M.3P.<@5<NKE+.SGNI0YCAC:1@BEFP!DX Y)XZ"O(]8U.\L_B-KU@EU+I^GZA
M<6%O>:K&?GMP86VJ/[I<_+OZ+]2*],U]GL?".J-;RRI)!82F.3>2X*QG!W'G
M/'7K0!H6=U'?64%W$'$<\:R()$*L PR,@\@\]#4U>6Z@VL/H?AW6;Q]8N]$3
M1HWO!IEZT-PDQ56,S893(,9XR>YP:[J[:YU3P=*^@7H%S<V.ZQNI?[S)E'/'
MN#T_"@#8HKR2[U6;3/ GBJU277M/U^TT])I8KZ^:<IG($L,FX\$@]".G05UF
MKZC<1^./!EK%=R+#=)=M-$LA"RA805+#O@\B@#=T+6[;Q!IOV^T25(O.EAQ*
M &W1NR-T)XRIQ[5-%J4$NK3Z:JS>?!$DKDQ,$(8D##8P3P>!7CMI:7-A\,=7
M\36FOZC;WEA>W<MO#'<;8$*W+?(T8X?=_M9/S#%='KGB;5=+U+QA=P22[K/0
M;:Y@MW)9(I6,N6V].PSZ[: /2Z*\V\.V?B6#6]'NHK;6OL4B,-2DU'4X[B.8
M%"5=$#ML;?C[H P:G\#V-QXCT&Q\47VNZL+V\>222&.[*P(N]E\H1_=   &<
M;LC.: .[M;RUO5D:UN(IEBD:)S&P;:ZG#*<="#U%#WEJE['9/<1+=2HTD<)8
M;V5< D#J0,C\ZX3X7Z/'9KKMRMY?RLNKWMOLFNG="!+]XJ3C><<MU.3ZTW7]
M$BOOB]HK/?:C%YNG7+D07;QA2C1#"X/ .>0.O>@#T2BO,X+>Z\3Q>*M5NM>U
M.QETZ^N;6T2UNVABMEA PS(.')^\=V>#CBNO\*ZM=:KX'TG5KR/-W<6,<TB@
M8W,5!) [9Z_C0!;UW6[7P_I9U"\65H1+%%B( MF1U0=2.,L,^U36VIP76HWM
MC&LPFL]GFEXF5#O&1M8C#<=<=.]>.7]K<ZE\+]-\47FO:A->7]Y:RSP-<$V[
M;KE,1K&>%V\<K@_*<]376WDFOZEJWCW3M(OY$NHDLQ9JTI"Q[H\N$/(0L,\X
MZD&@#T*J>IZG!I-H+FY69H_,2/$,32-EF"CA03C)ZUYI<:ZUOH9TFPN-;TR_
MFU>TL+Y=0N3/-9K,>6CD8L"& .#D\G.!6QXIL9_"WA29]/UG57,E]9 ?:+QI
M6C!G16"N?FPP.""2/UH [^LV\UNVLM<TS294E-QJ(F,+*!M'EJ"VXYR.",8!
MKCOL%SXC\?>*K"YU_5;6SLDM3#!9W9AV,\62^1SP1G'3).0:RO#FJWFM7_PV
MO[^7SKIX-15Y<8\S: @?\0H/XT >F:9J<&K60N[99EC+NF)HFC;*L5/# 'J*
MN5Y%;ZAJ^H^&/"<0UJ_@EO=?NK:>XCES(T0:X&W)ST"@#/3 (Z"M."_7PW=^
M--.O]:U0Z58VUK<13/,9KB$RAPRH[9)R57&>A- 'I5%>9^';K4;'Q\VFF+7+
M6RN=(DN?(U:]6Y8R)(@#J0[E.'((R/IQ6?HNFZ[<_":+Q)!X@U>ZUUK-+I%D
MNF\MO+8.$V=#N52I)Y;<<T >N45Q/AS77\6^+YM2L;J7^QK/3H46-7.R2>8"
M4D@<$HFP<]"QH\6S0WFO0Z3#_P )#=7RVOGFTTF\%JL:%BHD=RZ9.00!D].E
M ';5!<7EK:R01W%Q%$]Q)Y4*NP!D?!.U?4X!./:O+-)UG5O$&B^!-+O-3O(!
MJAN_MES#+Y<TH@R%3>O()X)(Y.T\U;\7>&(H=1\(6QUC695;5S$&>_?>BF&1
MN&'.X8P&.6P<9Q0!Z&FIP2:O+I@6;[1%"LS$Q,$VL2!A\8)XZ5<KS?7=;U'P
M_K7B<VEQ/,FF^&HI[>*:0N!(&E&\@]3\HR>IQ4=S;7GAI/"FJVNOZI?7&H7]
MO:W:7-TTL5RDH.YE0\(1]X;<8 H ],IDTJV\$DSABL:ESM4L< 9X Y->3W4.
MIW^C>.M9/B+5X9M(O;LV,4-R4CB\N-7 ('WP>FUL@#H!DUZ)]MFN/"'VXMLG
MDL/.RG&&,>>/QH O6%[%J6GV][ )!%/&)$$J%& (R,J>0:LUY39S:GK2_#JR
MDUK48([_ $>66]>"<K).5CA/+=<Y)^;KR<$9J)]5U:QTV]T!-7O-G_"41:2E
M])+OGAMY$1R-YYW<E0QY^84 >DZWK=MH%C'=W:2O&]Q%;@1 $[I'"*>2.,L,
M^U:5>=>,=%31?"\<46HZA=1R:M8,$O;DSF/_ $A,[6;YL'T)/3C%:6FZC<GQ
M3XZBFNY/)L_L[0J\AVP@VP8E1_""<GZT =G6#_PENG!=48QW>--O$LYMD)<E
MV"$%0N21\XYP.]<)HMYJ'B.'P1H]YJVH007.C/?W,T%RT<UU(NQ0ID!W<;BQ
MP>>]4DDN]$\-^-1:ZI=23P^(K6(79DQ*REK=2&9<9."5/KSGK0![-17GKZ==
M^(_'WBBPFUW5K2RLX;0PPV=TT05WC;+9'/&W..A)Y!XK @\27VKZ/X(74KK5
MI8KO3Y[B^72?,%Q(R%$1V\KY]N6.=O<C/% 'L-9"^([)_%3^'52X-[';?:6;
MRCY87.,;NF>>E9GP^L=2LO# .K2Z@]S-/+(HOYVEE2(N?+#9)VG8%R!WSWS7
MG&L^+-4BLOB?K,>I7:PVT\6F:>BS,%AD!V.R#/RMR#D<T >XT5X6-(\4V_Q
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
M+>"TV-I5NUM9GS&/E1L%!7D\\(O)R>*CN?"FAW=IJ5K<6"20ZE,+BZ5G;YY
M% 8'.5("KC;C&,ULT4 <_!X)T"WLGM!:221R3Q7#M-<RR.SQL&0EV8L0"!@9
MQ[4NI^"_#^L:H=1OK#S+ED6.7$SHDRKT$B*P5P/]H&M^B@#G[GP3X?NM,T[3
MWLG2#35VV;17$D<D(QC"R*P;!'!YYI8?!/ARVTNYTV'3$CL[F>.XFB61P'D3
M;M;.<YRBD^I&3G)SOT4 4[?2K*UU.]U&&';=WHC%Q)N)WA 0O!.!@$],5Q&N
M^ 5%[HW]G:+8:CI&FVDEO%IMU<O'Y3,P/F*^UBW Q@_45Z'10!S7@G0;WP_I
M5U!>-&OGW3SQ6L,K2QVB$ "-68 D#!/0#+' I6\ ^&'TN;36TP&TFO?M\L9G
MD^>?^^3NR>G3./:NDHH S5\/Z6OB)]?%K_Q-'MOLIG\QO]5G=M S@<]P,UFP
M> ?#%M8:=8Q:8%MM.NOMEJAFD.R;.=Y);+'/][(KI** ,@>%]&&HZKJ L_\
M2]5B6&\E\U\R(%V@#GY>/[N*S[SX>^%K_0;'19]+7[#8'-HJRNKPGJ2'#;N>
M_/-=/10!S2^ /#*^&KCP_P#V8&TVYD\V6-YG9G?CYMY;=GY1SGM4>F?#GPGH
MYF:PTA87FM'LI7$TA9XF.6!);J3_ !?>Z<\5U-% '+:A\.?"FIZ-IVDW6DJU
MEIV?LB+-(IBSU&X-N.>^3S5BR\#>&M.TO4=,M-)BBLM1XNH59MLGR[?7Y>/3
M%=#10!R8^&OA+_A&U\/_ -D@Z<LWVA4,TA99,8W!]VX'''7I6IX?\+Z1X7MY
MH=)MFA$S!Y6>5Y&<@8&6<DUL44 8&J>"O#^L^(++7;_3Q+J5GM\F;S'7&UMR
MY (#8)SR#5"[^&/A"^U>?5)])S<W$GFS!+B5$E?.=S(&"DY]N>]==10!FVV@
M:99Z[>ZW!:[=1OD1+B<NQWJ@PHP3@< = ,]ZH-X&\.-HNI:.=._T'4K@W5W'
MY\F99"0Q8MNW#E1P"!Q70T4 9,GAG1Y=6L]4>S!O;.W:VMY!(X\N,C!  ..A
MZXS[U2M_ ?AJUL=*LH=,"VVDW'VJR3SI#Y4N<[N6^8Y/\6:Z.B@#&;PGH;WN
MK7;V"//J\2PWS.[-YR!=H7!.%&/3%9>C_#+PAH-[:7FG:.D5U:,SPS&:1F4L
M-ISECGCH#G'.,$UUM% ',#X>^%UU74]3&E@7>J1217;B:0"19.'X#84GU&#^
M=.U'P!X8U71+#2+K2U:ST\ 6BK*ZM#]'!W=AG)YQS72T4 <ROP]\*IX;D\/K
MI$:Z9+()98A(X,C@@@LX;<QR!U-:;^']+?Q!#KK6H.I0VYMHYM[?+&23@+G;
MU)YQFM.B@"CI>C6&BQW,>GP>2MS</=2C>S;I7.6;DG&?0<5>HHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHIDLL<,3RRNJ1HI9G8X"@<DD
M^E #Z*P-*\:^'=;U$6&GZDLMTR&1(VC=/,4=60L ''NN:T]5U6QT339M1U*X
M%O:0X\R0@G&2%' !/4@?C0!<HK'T3Q3HWB)YDTJ[,[0@&0&%TP#G'WE&>AJ_
MJ%_:Z5I]Q?WLPAM;=#)+(P)"J.IXH LT5AZ1XPT+7KO[+IMXTTVPR;3;R(-H
MQSEE [BMR@ HJ*.Y@EGE@CFC>:''FQJX+)D9&X=LCGFI: "BBJ>EZI9ZUIT5
M_82-);2[@C,C(3@E3PP!'(/:@"Y1110 453NM4L[._LK&>1EN+UG6!0C$,57
M<V2!@<>N*N4 %%1"Y@-T;431_: @D,6\;PI. V.N,@C-2T %%%% !1110 44
M5GZ)K-IK^E1ZE9;_ +/([HN]<'*.4/'U4T :%%%% !16?IFLVFKR7\=J7+6-
MTUI-N7'[Q55CCU&&'-3:EJ-KI.G7&H7LACMK="\C!"Q 'LH)/X"@"U138W66
M-9$.58!@<8X-.H **** "BBB@ HHHH **** "BBHIKF"W,0GGCB,KB.,.X7>
MQR0HSU/!X]J ):*IC5+,ZR=)$C?;1;BY,?EMCRRVW.[&WJ.F<U<H ***S[S7
M--L=&EU>6[1K"($O-"#*.&VG&S).#QQ0!H44 Y (Z&B@ HHJ)KF!+E+9IHQ/
M(I=(BXW,HQD@=2!D?F* ):*** "BBB@ HHHH **BDN8(IH89)XTEF)$2,X#2
M$#)VCO@<\5!!JEG<ZI=Z;%(S75HJ-,A1@%#@E?F(P<X/0G'>@"Y1110 4444
M %%%% !115.75+.'5;?3))&%W<1O+$FQB"JXW'=C ZCJ: +E%%0W=U#8V<]W
M<,5@@C:61@I8A5&2<#D\#M0!-163!XCT^YU.QL(7D:6^LC?0-Y9 ,0*C)SR#
M\Z\$5K4 %%%% !1110 4444 %%%% !1110 4444 %%%1?:8/M1M?.C^T!/,,
M6\;]F<;L=<9XS0!+1110 4452&K61U6;3/.(NX8!<.I1@HC)(!W8V]0>,YH
MNT5EZCX@T_3=-MM0DE\VUN9H88I(,.&,K!4((.",D<UJ4 %%%% !1110 444
M4 %%(S*BEF8*JC)). !3()X;F".>WE26&10R21L&5@>A!'!% $E%1+<P-<O;
M+/&;A%#M$'&Y5.0"1U .#S[&I: "BBN;N/'_ (5M=1>PFUF!9HY/*D(5C'&_
M3:T@&Q3[$T =)1110 4444 %%%% !145S<P6=M+<W,T<,$2EY))&"JJCJ23T
M%8FD>-_#FNWRV6G:FDMPZEHT:-T\P#J4+ !A],T =!1110 4444 %%%% !14
M4ES!#-##+/&DLQ*Q(S@-(0,D*.^ ">.PJ"'5+.XU2ZTV*1C=VJ(\R&-@%#YV
M_,1@]#T- %RBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *1E#*58
M J1@@]Z6H;JVAO;.:UN%WPSQM'(N2,JPP1D<C@]J //-1?5[?XD^&+KQ+#9"
MUWSV^G-I[L=LTB<^:' ."JD#;T/6NO\ %NB3>(O#=QIEO<1V\TCQ.DLB%U!2
M17Y ()^[CKWJKIW@C2-.U.#42]_>7-L&6V:^O9+@0 C!V!R0"1QGK4[^$M,>
MUOX%:\B%[=F\DDBNY$=93CE6!RHX' XH S]&U[6XO&,OAK75L)IFL?MT%U8H
M\:E X0JZ,S$')!!!Q3_B7_R33Q'_ ->$G\JT-%\+:;H5Q<75O]IGO;@!9;N[
MN'GE91T7<Q. /08%7M5TRUUK2KK3+Y#):W49BE4,5)4]>1R* ,?0V\1)I1;5
M3I@A6T!A-GYF\';_ !;N.GI7#:5=:[:^%O!OB:?Q'J%U<W]W:6]S;RE?(:*4
M["-N/O#@[LY)S]!WVE>$+'2)S)#>ZM,#&8O+NM2FFC"G_99B,^]2KX4TE-%T
MS2!"_P!CTV6&6V7S#E6B.4)/4\^M '(:!IC6?Q&\9WW]I:E+]D:WE\@S K-N
M@)VL,<@9POI@=:RO#^I^+=5L=%UVVAU^>[NYXI;GS)+<6+0,WSJJ;]RA5/!Q
MNR.>M>C?\(SIX\2MK\9N8KUU59A%<.L<VT%5+H#M8@$XR*I6?@;2-.NTELY=
M1@@CF\]+*._E6W5\[N(PV,9YV]/:@#(\/PZGK'C+Q#<7.N7RV>F:GY5O91,J
MH1Y4;$/P2R\\#C!R>_&%9:OKFJ>&_!$:ZU=6\^I:A=0W-R@#.R*)N.1C.%&#
MC@@'G%>EV&D6>F7-_/:HRR7\_P!HG)8G<^U5R/3A15&U\):/9P:5## X32II
M)[4&0G:[A@Q/K]]NM '#WVL:SX=T_P ;Z=;ZK=73Z;]D:RGN2))D\_AE!Q\Y
M!SM!'4@5I^$8[RX\874]MJ/B"XT.&S0+_:@>,-<%FW *ZJQ 4 ], UH>,/!_
M]JZ1K)TR&-K[4VMOM232%5FCA8'8#@["5R P'!P?>JGACPYJ5EXG2_CL)-&T
MU+9XY;-M1>Z^T2$J5;:254* >0<G=TH U/$&H7=MXU\(VD,[I;W<UTL\8/$@
M6!F7/T(S7"W%WKZ^"=<\5_\ "2:@+G3-1N1;6P*B'RTN"NQUQE\C(Y/ QCIS
MZI=Z19WNIZ?J$Z,USI[.UNP8@*70HV1WX)JB_A+2)/#][H;0/]@O9))9D\PY
M+2/O;!ZCDT <M_8[3?&R>;^U-1CQI$-SL28!3^_8>61C[G&<>YYK-%SK.J>
M]5\;CQ%?6E[ ;J>VM(V46\20NZK&R$?-D)R3S\W%=]?>&-/O]<M-9<W,5];(
M(Q);W#Q^8@;<$<*<,N><&L^X^'OA^YNYY7BNA;W$WVB>R2[D6VFDSDLT0.TY
M(!(Q@]Q0!MV=^+C0H-1N,6XDMEGDS_RSRNX_E7FVFZU=Q>)O#,]C>^([G3]5
MG>*2?5!&(+E#$SJT:##(<J"/E48KU22*.:%X9$5HG4JR$<$$8(KFK#X?Z%IU
MU87$0O9&T]]UDL]Y)(EN-I7:BL<!<'I[#TH XJ[GUZ7PUXO\0KXEU&*;1]1O
M!96\941!8GSM<$9<$<8)P!C'OK:GXNO/#&JZY)>RO+!=Z4FHZ7&W(68 1O"O
MKEVC./\ :-=:WA;2FT?5-*,+_9-4EFENE\PY9I>7(/;\*R?$_A0Z[KWA7_18
MVL-*N&N996;YEVJ/+0#N"P4G_<% &_H%K>67A_3[;4;E[F^C@07$SG)>3'S'
M\\UY)I,>J:-\,[?Q-:Z[?*]MJ+".R4J+<QM>%&1EQEB=S'<3D<8QBO;*P_\
MA$='_P"$:_X1_P A_P"SO,\WR_,.=WF^;][K]_F@#B]4U36=9\8>(+&!?$(@
MTPQ0VPTB2"-5=HPY>3S'4L<L,#[N!ZFK$=SXAUW6?#_A_5KVZTB?^QVO]0^Q
M.J22S!UC"AAD #)8@>H%=3J?@_3-2U1]2\V^L[R1!'-+8W<D!F4= ^TC.,G!
MZCUHU+P=I.IQ:>)#>0S:>ACMKFWNY(YD0@ J9 =S @#.2<T ><VM[J&@^'/$
M<4>I7,L\GBM;6:ZAB!N7C98@Y15!!DV@]!ZD"K4ESJ]EX;\;ZO::IKIL(+0#
M2Y=0W(^[9EV574-PV &(]>M;GB#X?V\/A^+3] T^.2W_ +4CO[NTEN&0S[5P
M0LAR58E4.<C.#SR:31?!MQ<2ZO#J-G+I^A7]FML=,.H/<%GR=TFXDA."%PIY
MQDT %VNIZW\0$T@:Y?V-@-#ANI$M&"N\AE=<AB#M[9QR<#\<1?$NJ/X9T"VO
MM3OMLFJW5E>W5E$6NI(H3*%8!%)_A3<RC./K7I<6BV4.L_VLD;"[^RK9[MQQ
MY2L6 QTZD\UQWB7P/G^R%TS3$OM/M+NYNKBS:Z,,CR2Y.Y9.H +-E<@'(]*
M-#X?0ZE]CU2ZOKK59X);UA8?VED2?9U VMM(!4DENO) 4XJLRWWBGQMK^FOK
M.H:=9Z0EO'%%82"-I'D3>9&;!)[ #IP:O>"M$U+2&U.2[5K6TN94:TT]KMKG
M[, N&.]O[QYVC(%7-6\':5J^I'47:]M;QHQ#+-97<D#2QCHK["-P&3[T <+%
MKGB#6=$\*6HUB6VNKG5[G3[F]@109XXUE&X#& 2$!ST#<XXQ7J.GV9L+"&U-
MS<77E+M\ZY?=(_NQP,FJ$?A?1X8=(A@M!#%I+F2S2-B A*LISZ\,>O<YK8H
M\7LKGQ*? WAGQ$OBK4#J&H7L-HZNJ-"L<CF/.S'S,.&W$]?;BMJ^UC5/!=[X
MJM4U&[U2*TT5-2MS?,':.4M(A&0!\OR@X[<XQ791>$='AT/3M'2!Q9:?/'/;
MIYARKHV]23U/-69M TVXU2ZU">W$L]U:"RF#DE7A!8[2O3^)OSH XNYCU7PP
M_AC4E\1:AJ+ZC?P6=Y#<NK12B53ED4 ;-I&1CL.<UFW<FNW>B>-M;7Q+J-N^
MBWMW]B@A*B,")0^'!!+@],'@"NTTOP)HFDWMM=1"]F-F"+..ZO))H[8$8_=J
MQ(7CC/4"KO\ PC.EC3-7T_R7^S:L\LEVOF'+M*NU\'MD#M0!Q.J:]JNL^*8-
M-CBUK[)'I,-X\>CR11R/)*3RS2,IV@+@ =R<]JH:S8:WJ&C^#/[>NM1L[\:Z
M+;Y98U=DQ+LE8+E1)M Z'')]:[[4/!VE:A):39N[6ZM(?L\5S9W+PR^5_<+*
M?F7C.#GFG7GA'2[[0[?29S>-#;3">&8W<AG24$D.)"=V[)/?O0!E"2[7Q]+H
M+:E=_8U\/*V\R#>)/-9#+G&-^!UQ6-H%W-#I/B+Q%=>)=43P\(VBL;BY=99-
MJ9#7"C;CEN%&#D#.#FNOE\)Z7.TKS+<222Z;_9DDCW#EV@Y."V<[N3\W6JEI
MX"T6UTVXTUFU"YL)[?[,UM=7\LL:Q\8"JS84C P1@CM0!S&B7>H?\)JFC?:?
M$D-AJ&ES29U5X_-6160"2(@DJ<.<@@<XXK'T=+S0?@9J6KV6K:@+G$_EAY05
MA*W3C*#'!/?ZUZ-I?@W2M*U6+5(WO;B_CA:!9[N[DF;RV*G;\Q/ VC'X^M0K
MX"T-=/U/3PMW]AU$DRVINI#&A+;VV+G"98Y.* ,HK?>*?&NO::^LZAIUGI"6
MZ11V$@C:1Y$WF1FP2<< #IP:PH-=U_5]&\*6W]L2V]S<:O<Z?<WD"+F>.)9A
MN (VY(0'.,!N<=J[C5O!NE:OJ)U!VO;6\:(0R365W) TL8Z*^PC<!D^]6(_"
MVCPPZ1#!:"&+27,EFD;$!&*LISZ\,>O<YH QO",M[:>*/$F@W&HW5_;6)MI;
M>2[8/*HE1BREL#(!7CZUF:_HS7GQ>T5AJFHV_F:=<OB"8*$VM$,+P< YY]<"
MNVMM(L[35K[5(4875\L2SL6)#",$+@=OO&JNL^&=/UR[LKRY-S%=69;R9K6X
M>%PK8W*2I&5.!D>U '-Z+%J6K^./$4MSKM]'8Z7J"+;V<+*J',,;,')!++ST
MXQDGOQ@KKUS'J_A_4=*U'Q'=V=_J:6LES?",6EQ&^X'8G#+R 5(4<#J:],LM
M(L]/N]0N;>,B74)A-<$L2&8($Z=N%%85K\._#]G-:/&EX8[*<3VD#WDC16[
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
M[H30.;"]DDEG3S#DM(Y=L'J.30!N4444 %%%% !1110 4444 %%%% !1110
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
M=:MK+4;:34&;REE"G]W/EMBL-HW#&-Q. :T#HNL:3I_B9VLTT_1Y=$G'V/\
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
MUVPT5[%;V78;VY6VAP,Y=@2,^@^4\T 3'2K!I;&4VL9>P!%JV/\ 597:<?\
M >*A;0-*?2[C3&L838W+N\T&/E=F;<Q/U/-4SXC1/&,FB.D26Z::E]]I:3 ^
M:1DV^F.,YSWK<,B+'YA=1&!NW$\8]<T 8^H^$O#^K7XOK_2;:XN=H0NZ9W =
M PZ-CMG.*MP:+IMM+92PV<2/90&VMF _U41VY4>WRK^56UGA>$3)*C1'D.&!
M4_C0EQ#(Y1)HV8$J0&!.1U'X4 49?#^D3V=]9S:=;R6U_(9KJ)TRLKD ;B#W
M^5?R%5K/PAX>L+06MKI-M'")TN<!<DR(<HQ)Y)!'&:V?,3#G>N$^]S]WZU3@
MOIY=6N;5K,I:Q11R1W7G*1*6SD;0<C&.IZYH S[_ ,%>&M3OI[R]T:TGN)UV
MRLZ??XVY(Z$XXSU'K6HFFV<>H?;TMT6[\@6_F@?-Y8)(7Z9)-30SPW";X94D
M3.-R,",_A1#/#<*6AECD ."48'!].* (K_3[34[4VM[ D\!97*..,JP93^!
M/X40Z?:6]]<WL4")<W003R <R! 0N?H":FEFB@C,DTB1H.K.P 'XFE\Q-JMO
M7:V-ISP<],4 85SX)\-7=G:6DVCVS06B&.! "-B'DKD'.#Z'BK&H^%]"U:SM
M;.^TNVFM[3'V>/9@1#&,+C&!CC'2M2*:*=2T,J2*#M)1@<'TXIB7=M)(8TN(
MF<'!57!.?3% #(-/M+6[NKN"W2.>[*M/(HYD*KM7/T  K(N/ WA>[OKF]N-#
MLY+BYR97:/[Q/4XZ GN1R:W%N('F:%)HVE3[R!@6'U%-DN[:*3RY+B)'QG:S
M@''KB@!D>GVD6H37Z0(MW/&L<DH'S,JY*@_3<?SJLF@:2FFVNG+80BSM9%E@
MA ^6-U;<I'N#S5Z2XAA*"6:-"YP@9@-Q]O6EF=HX)'2,R.JDJ@(&X@=,G@4
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
MS\#Z7JL5I'_:-S PENF&9&7?]W<>=HVK@=!BNWLM-L--C:.PLK:U1SEE@B5
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
MU$,,/V:'RH2IB3RQMC*]"H[8[8J&71],GNGN9M.LY+B1=CRO I=E]"2,D>U
M'"W6F>'X_C:);^RTU)9=)BFA>>) 7N!.0&4GK)C:,CGI5_XFVD-_8>'K2X4M
M#-KUI'(H8J2I+ C(Y%=A<6%G=S0S7-I!-+ VZ%Y(PS1GU4D<'Z5)+!#/L\Z)
M)-CATWJ#M8=",]#[T >6:M8GP[KOC&T\+VJV1?PVERD%HFP><&E7>JCHVT#I
MU(%,\)Z1:OJ7AB_T[4/#%KY:'Y=/)%Q>(8CN1\G+G/S'.2"I->K""$7!N!$@
MF*A#)M&XJ#D#/7&2>/>JUOH^F6ET]U;:=:0W+YWS1P*KMGKD@9- 'A6I1>&I
MOA-?7FHFT/BU[V7SW9A]J\\3D%3_ !;0@Z?=P,UK>-KG3Y?&GB?3]1M]'FEN
M;*"WM9]7ND@^R91LO'N!RN6R2N#N4CWKU]]'TR2XEN'TZT:>9=LLC0*6<>C'
M&2/K7/77A'4EUK5;_2];@MDU0H;B.YL!<%2J!!L;>N!@="&&2?6@#C=4T^*V
M\6>'])+:#+I4.A@V?]HQ_P"B2S;\2.BCY2Y7:?HQQ7<> =/.F>'&MAJ-E>PB
MZF:'[$Q:*!"V?*4DGA3D8[=*O:;X6TK3_#5CH,EM'>6=G&J(+N-9,X[D$8SU
MK6@MX;6!8+>&.&)!A8XU"JOT H \5:/PW<> O$]YKAM#XK6YN]\DI'VN.X#L
M(%C/W@,"/:%X_6M^/0[?7_B/I\7B2T2[EB\,P22P3C<AF\U@2R]"1EL9Z9KT
M.32M.EOUOI-/M7O$^[<-"ID'T;&:L>1#]H^T>4GGE-GF;1NVYSC/7&>U '&_
M$YU3P_IR7+E-*DU6VCU-@2%%L6.[<1T4G:#[&LJTT[P^_P 2X['P_;:>^FSZ
M3*-6M[5$-NPWJ(MZK\NX_/[XSVKTF2..:)HY45XW&&5AD$>A%066G6.FQ&*P
ML[>UC8Y*01*@)]< 4 >*)X>T7_A0EI>?V38_:9+F$O-]G3>Q^V!.3C)^4E?H
M2*Z'QMI>CZ)?'4X8/#UU:Z=IICET*]V1[(MS/O@&"%=N1]WYL#FO2_L-I]D%
MK]E@^S @B'RQL!!STZ=>?K3+K2M.O;B*XN["UGFB_P!7)+"K,GT)&10!Y3>A
M=:\>ZL-0AT,0M86K6,&O(?D@9"7\L9P#OR&(YX%%YH6CVTGP[&NRZ7JL*F>V
MFU"94>*:,0R&)2[9R <8R>HS7JU[I>GZF$%_86MV$.4\^%9-I]LCBG7&G6-W
M:+:W-E;S6RXVPR1*R#'3 (QQ0!';ZAIS7O\ 9EO<0FXB@6;R$(RL1X5@!VXK
MA]731[OXJR6_BE;1[)-*1].BOMIA+%V\U@&^4O@)[XKL;#0K:PU?4-44M)=7
MNQ69L?NXT7"QKCHH^8_5C[5:O=-L=2C6._LK>ZC4Y59XE< ^H!% 'C?V2"^\
M'VUA&TC:'+XR2"PV.0#:%\81NNS<9 ".U>N)9Z=X>T*:.QL(X+*WC>3[/:QA
M1T+$*!W//XU<-I;-%%$UO$8XBK1J4&$(Z$#L1VJ:@#Q+1KBQ?Q7X&OM.L= T
MT7KRD0:;)NN/*:!SMF( W<@9S_$*V_#6B0#2O&.NV=FDNOQZEJ:V=PR[GC8%
MPJIG[H)8\#J3S7HL&CZ9:R&2WTZTAD+^86C@527P1NR!UP2,^YJS%!# &$,2
M1AV+L$4#+'DDX[GUH \<\(:5!=0>$[^TU'PU:7$4D<KRVY87ER2I\V*0DY9F
MR<@]Q[5UOQ'^S//X8@U4H-#EU0+?>8<1M^[<QK)VVEP,YXZ5UL6CZ9#?->Q:
M=:1W;$EIT@42'/JV,U8N;:"\MWM[J".>%QAHY4#*P]P>#0!XS<"RLK_XB'P7
MY2[-'@*"Q/R))F7?Y>.!@9/R]#GOFM;POI-HNN>']1T_4/"]K%%#(#'IA*S7
MD1C/#Y/S8(#$G)!!]Z]-MK&SLP!:VD$&$$8\J,+A1DA>.PR>/<U%;:/IEE<O
M<6FG6D$[_?EB@56;ZD#)H \W\'K8:#X@M-'C31M5:[M[B6VUJQ93<,@(9OM&
M,YSD?-NP2.E<U#?V=CX9^'3:E;6=W9+I]P[6^H2K%;N_R!3N<%2XR< CH6/6
MO;[32M.L)99;.PM;>27_ %CPPJA?ZD#FL/5?"DTVL6.JZ-?0:?/:6SVJ12V8
MFA\MF#'"!EVG*CD'IQ0!YZ- TR+P-X:M(FTZ6"_\3)).-,E#1A7:0^7YBX+;
M5(3/H,=*T-7LF\.ZQXVL_"]LMEO\.Q7*06B; )=TJ[U4=&VCMW KN?#WA6#1
M;>Y^T2I>W5U>&^FE:%442D!0409VX"CN3UYYK<$$(N&N!$@F90ADVC<5&2!G
MKCD\>] 'E?A/2+5M6\-:AIVH>&+81QL-FG$B>\C:(Y1\G+D'#'.2"I-<K?Q>
M&I?A//>7YM#XM>]?SW9A]K,_VCYE./FVA!T/RX ->ZVVCZ99W3W5KIUI!</G
M?+% JNWU(&30VCZ8]Q+</IUHT\PVRR&!2SCT8XR1P.M %VBBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "LKQ'X@LO#&@W>KW\BK#;QE@I<*
M9& )"+D\L<8 K5KGO'=K)>> /$%O#"9I7T^<1HJY);8<8'K0!9M/%.AWFA_V
MS'JUE_9Z@>9/]H39&V =K-G (R./>K6EZSIFMVQN=*U"VO80VTO;RAP#Z''0
MUYQJ.JZ5>6'@K64*W/AZPNB+]DB+)#+Y!".ZXZ*Q&3V)K8\,36NK?$76=;T4
M;M'DL(()+A$*QW%PKN<J<?-M0@$CUQ0!IZGXNBT?QJNFZC=6=II?]EM=M/.V
MPB3S50#<3C&">,9S6Z-8TPZ3_:HU"U_L[9O^U^<OE;?7=G&*Y:ZL8+KXS6<M
MQ;)+Y&A2-$SID(_GJ,C/0X)'XFN)N[.YA\+YA#6^G6'C"XDGQ;>:L,(D?:QC
M[HK%3C\>U 'KNFZWI6L6CW>FZC:W=NA(>6"5752.H)!X_&N>E\<V-WXFT'3M
M$U'3K^"]GGBNFAE$C1[(6=<;3QDCOG(KC]1L1K/AWQEJ&B>(%UJ_NM.CAF2R
MM/*1@I8]1D,Y4NN!SC ]*M_VIX=UKQ]X'F\/0*ZVQN(Y)HK8HL*FW?;$S8'(
MP?E[8[9Y .ZN?&7ABSOGLKKQ#I<%TC;7ADNT5E/H03U]JGN_$NAV&I1Z=>:Q
M8V][)C9;RW"JYSTX)SSV]:\?\.W]O<P:19ZG=V]CI]IK4EVDSV<Y=Y/.?;&T
M^WRCDM@N&Y'%3S10I)XNT77_ !##I3ZAJ%PS03Z=YLEQ"_\ JWC?.6PN  ,E
M2M 'MM9-CXHT#4M0?3['6M/N;Q,[H(;A'<8Z\ ]N]5/$EE?2_#W4['3I)9KX
MZ:\4+]'D?RR!]&/\S7#-J&B:[:>"]+\-Q#^TK"^MI9(HX"CV42#]\)#@;<C*
MD'[Q(ZT >D?\)#HW]HQZ=_:ME]MDD:)+?SU\PNHRR[<YR!U%3:EJVG:-:&[U
M.^M[.W!V^9<2A%SZ9/?VKD_ FG6RZQXOOGM8_M3ZY*HF9/F*".,@ ^F6;\S4
M7BZXMM+\?>'M7UD8T:&VN(UG="T=O<,4VLW'RY4, 30!K^(/&NE:5X*O?$5G
M?V-U#'$_V=EG4I-* =J @\DD=!SUKE;OXAS6EAHEJ?%'AE[[4YF+WP'[BVA"
M$G*^;R=ZE 2P!/;-9NH1QW_A?XF:KIT!_L>]B5K,B(JLLBPXED12.A.!N[E3
M73ZW:1GQ5X  MTVB:XW?)P/]%?K^- '2Q>(M)74(=(GUG3FU9D7=;I,H=FQG
MA"2>>H'7%.G\2Z':ZJFE7&L6$6H.0%MGN%$A)Z#;G.3V]:X./4[?1?'!L]#O
MX=174M7)OM*FMF\^U<\/.CX!"#:#\P(Q]T\USJ6\+:=KWA[7_$D>EW-UJ-P\
MUM)IOF33;I"R2QMG+\;<$#C&.U 'IW_"=:"OC"3PT]_;)>)$C M.@#2,Q7R@
M,YW\ X]&%=)7 2W%EI/QA7^T&6/[;I$$%K(Z?ZZ83/D X^]\RGZ&NPTS6;+5
MVOELI&<V5T]I/E"N)% ) SUZCD4 077BC0+'4DTV[UK3X+YR +>2Y17R>@VD
MYY[>M2:EXAT71RXU+5;*S**KL)YU0A6)"G!/<J<?0UY-X_UR6]TWQAI;RV5A
M)$S)%IZZ>TES>*$5A.7SP/1@/E"\FNPMK&&Z^+KW%S;)*\?AZ (\B;MI,TF<
M9[XH Z^+5M.F>T6*_M9&O$,EL%E4^<H )*<_, ".1ZU+%>6L]U/:Q7$4EQ;[
M?.B5P6CW#*[AU&1R,UY+:VDFG?#>RUVVA99?#NLW5RD:K@_9OM$B2H/;RV)_
MX"*[3X>P22Z%/KMRA6ZURY?4&#=5C;B)?PC5/S- &GK7BC2-&WVUQJEC#J#0
ML\%M-.JNY ./ESDY(Q[U4TKQ;9#P5HVN:]?65@U]:Q2LTD@C0NR!B%W'WZ<U
MQ=Q>:1INI>.M.\06QEU+49R]K$UN9&NX#"JQK'P=VU@P]CUQ659M<:8W@G4K
MO4DTJP7PW'!%>7%IYT<4YVEE.2 A9<<GKM(H ]@;6=+32?[5?4;1=.V[_M9F
M7RMOKNSBH(O$V@SZ>E_%K.GO9NYC6<7*;"X!8KG.,@ G'H*\TGLK'3-&T+4A
M?-JN@)X@DO;V5+0I%'O1@&"#/[M9#G(R,FM3Q--H/B>'P\VFV\5U8R>)(!<.
MMN5CG81/DY(&\8VC/(XQVH [67Q5X?ATF'59=:L$T^<E8KEKA0DA!((4YY.0
M>GI4\VO:/;Z4FJS:I91Z>X!2Z:=1$V>F&S@UP7C /I/Q"TO49=0BTG2UTV6&
M&[DM!-#%.9 S \@(67'S=]I%5A>0>&O"]G-I^H6EY:7^M22OJMU8G[/8EU8E
MUC!&!N! .0,N>: /1;?7]'N]*?5;?5+*73X\[[I)U,:8ZY;.!CWI+3Q!HU_I
MLNI6FJV4UC%D27"3J8TQR=S9P, CKZUY9IL>G:CIGC<:MJSQV$^H6LJ:C#9F
M)-X2,K((R"-NY1DGAASGFEU?4]5\0^#KAV:"ZL[#6[9IM3L[-C'>6Z[2TGE$
MG?L.W< 2#L..!0!ZKI6N:3KD+RZ3J5I?1QG:[6\JOM/H<'BHY;^=/$D%@&LA
M;O:O,RM-B?*LHRJ8Y3GD^I%<KX06PU'Q9=ZS;>)H=7N#9+;RK;6?E1A0^Y2S
M D%AR,=<&KE\C'XMZ:VT[?[#NAG'&?-BH VK?Q5X?NKZ&QM];TZ:ZG0/%#'<
MHSNI&00 >>.:C\5^*-/\(:#+JNHN!&A"I'O56E8_PKDC)QDX] :\UT[3(+;X
M/^#98;-([E=3L9BZQX?>9P&8GKG!Q]*[?XH6SW7PVUM(H6FD6$.%5=Q^5@20
M/H#0 FI>-[*#5O#QL]1TZ71]0>Y%Q>><K(HBB+<.#M'(P<UT-CK.F:GIYU"P
MU"UN;-<[IXI59!CKD@X&*XG5I=(\2^*? MS9+!>Z:;F[=2(\IN6$D'!'9A^8
MK"\1Z;=R6OQ(M--MWVF\L9FAABW;TV1-+A1]XD Y'?IWH ]/TKQ#HVN&4:5J
MME?&+_6"VG63;Z9P:EU#6=,TD ZCJ%K: HT@\^94RJXW$9/0;E_,>M</X7.G
M:OXPM=3M_%,&IW-K920^3:V'D@1L4X<@G&"!A3@]?>M#Q)90WGQ.\'&XMTF2
M*"^D&]-P5@(L'Z^E &X?%WAM8[20Z]IH2\.+9C=)B4YQ\O///'UXJ;5?$>B:
M$T:ZMJUE8M)RBW$ZH6'J 3T]Z\SET6R7P5\4773XA*UY=[3Y0SA8D=<>P8DC
M'<FM/6/$,EKJUII]Q<66F1R:1$_VRYL&N9;QB2#"@!&<=2O));@4 =[=ZYI-
MA;Q7%WJ=G!!,ADCDDG55=0,DJ2>1CGBL>U\4K=^,I+"*>UDT@:/'J*7*MG.Z
M1U)W9QMVJ#_6N"\/:<EYIOPJM[^U\U(_M3-'*F0I6)BN0?0@8^@J?QUH]_>^
M/+C^S[<W%M;:-;2W.GH-HO85N)"T((Z$CD#OC!X- 'I%UXFT*QTZ#4+K6+"&
MSN/]3.]PH27_ '3GG\*H:]XYT'0+;2[FYO[9H=1G2*&1;A-I0GF7)/*+D9(Z
M9%<1JVJ0/XSTGQ##JL6E:)<:*(K.[GLO,BCD\PEXR"0(V*[1S_=([4E]8Z?I
M7@?1KV&^_M#38?$<5[+<_93&D4;2DOM7M&&/;CF@#U!M6TY=*_M1K^V&G[!)
M]J\U?*V'^+=G&/>I9KZTMY+>.:YAC>Y?9 KN 96P3A?4X!/'I566'3_$7AV2
M!2LNG7]LT8*C :-UQD?@:\Z\#R:CK&LVHU*WE:3PC8R63;ACSKHL4W*3U_=1
MKS_TTH ] L_%&@:AJ3:=9:UI]Q>KG,$5RC/QUX![=_2L_0?$WVP:R^J36MM'
M::Q)IT#$[ P&P(#D\L2V..O'%><6FM2:YJ7@N7[19)-'JBF32[+3VB.G@QR
MH\A)P>@((7/4# J[?1RQ^&?$MUY,K1VGC!;N78A8B))(2S #D@ $_A0!ZS]L
MMOMPLOM$7VLQ^=Y&\;]F<;MO7&>,U2L_$NAZCJ,FGV6L6%Q>QYWP17"LXQUX
M!SQW]*\_O-47Q1XUU67PY)),6\+7$%M<JC*CS&08V,<9P2.1QGZ&J7A6/3]2
M'A2R?Q+$EWICQR)ID>F>5/"ZH5>-SG*CE@21@]: /6KR]M=/M)+N]N8;:VC&
M7EF<(BCW)X%99\7Z ^A7FL6VKV%Q9VJDRRQW"%5/92<\$G &?45A_$4+$WAV
M^O(7ET>SU19K]50N$78X1V ZJKE2?PK(CFLM>\7Z_J^B*LVE?V";:XN(XR(I
M[C<64 XPY5<Y(SC(% '1?#_Q!>>)M 75+O4=+NC.J/Y-@I!M25R8I"7;+ $=
MAWXID_BC6-1UN_TWPSI5K=IISB*ZN[VZ:&/S2 3&FU6)(!&3P!FKGP_B$7P\
M\.@($8Z;;EAC!SY:]?>N8T37;#P-K?B33/$4CV0O-4EU"SN7B8QW$<H4X# '
MYE(((Z]* .R;Q#;:;HT%]XCDMM%DD^5XKBY0A7ST#<!NF1CMV%6EUK2GTDZL
MNI6C:<%W&[$R^4!TSNSBN$U#6].B\>Z1XDU598=$ETJ6*SN+N!E6&?S026!'
MR%D P3C(%<SJ3>7H.JZK96YBTJ\\46MQ8))"Q1]H3<_E ;G1W4\*,GK0!ZK:
M^,/#5]%/):Z_IDR6\9EF,=TA\I!U9N>![FK%GX@T;4=0GL++5;*YO(.98(9U
M9T['(!SUXKRV\GM[_P )?$"]>[A?5[VQ#S645K-#Y2*A52!*JLV><MC' ':N
MEO--MK#Q?\/Q96D<"(EU$?*3: GV?.TX[9 /UH ZL^)=#75QI!UBP&HDX^R_
M:%\S/IMSG/M4S:SIB07D[:C:B&R8I=.9EVP, "0YS\IY'7UKQG1K6*;P\GAO
M6_$T>GZD+\R361TW-R9Q/O$BOG+;N"' Z&M'Q9&)_&UWKEO:32>'=/N+:/74
M0G;=R(20P7'S"+<A;UQC^&@#U75M7L]%T6ZU:\DVVEM$9G9><@#MZD]!]:P=
M+UKQ=>26EU=>&K2#3KIE^07V;F!#T9U*!3[J&R/>G_$+2KGQ%\/=6L=. EN)
MH5DA4'_6%65PH^NW'XTS2OB+H&K/:6L$ES_:,[*CV/V:3S8&/4.-ORA><D\<
M4 :TWBC0+?5ETJ;6M/CU!B%%L]R@DR>@VYSD^E27WB'1M,G\B^U6RMIMR+Y<
MTZJV7SM&">^UL?0^E>1B[TR+X8ZOX5OK=I/%D\MRC6A@)GGN7D8QR@XY'*$/
MG  Z\5UVB:4DGQ/U.;4;>.XNK?1K*,3.N[YB9-^"?4J* .INO%?AZQG6"[US
M3H)6D,022Y13O'5<$]1D?G4^JZ[I.A0I+JVIVEC'(<(UQ,J;C[9/->2C5?#M
MG9_$.QU"W#:E>ZA=10I]F+/=90!$0@')#'IVW9[YK4T^>+PKXHTRY\7L(5_X
M1VUM8+N=2T:3)GSDW8(#'Y3[@4 >D'6=+6QAOCJ-H+.<A8I_.7RY">@5LX/0
MU3D\8>&X=-AU&77M-2RF9EBG:Y0)(0<$*<\X[XKS$Z6EWX7MU>Q8:1J'C..:
MUMI(BH-J[@?</W58[CC X;WKK?%VLC1->TNR1M.TBUEMYG_M.YLS*%8%?W*
M$ ,W7D\[>A- &OKOCG0=!L--O9[^VDM]0G2*"1)TVLK, 9 2<%%R"2.E6[?6
MA>ZW:PV5UIMQI]Q9-<(\=SNE<AP RJ."G/+9ZX%>66J"'X6Z==7,;&WLO$XG
MF9K<IY<(NR68IU0<Y([5T6L,^K^+C-H3[S<^$[Q;.6/@%S)'LP>W.* .TMO%
M&@7NJ-IEKK6GS7RD@V\=RC/D=1M!SD=_2DO?%/A_393%?:WIUM()?)*2W**0
M^ =I!/!PRG\1ZUYD+W1]6\)^$] T. KKMI=6;&W6!EELFC93,\G'RC 8$G[V
M>^:V;?2K6XG^)DT]E')++(T6]XP2R"U0@ ^F2?QH ]*!! (.0>]9VG^(M%U:
MZFM=.U:RN[B#F6*"=79!G&2 ?7BL_P +LI^'&C-=^85_LF$RX!+8\H9X'.?I
MS7GMA=7<FBZKX5\-7\.M6<>ASK97D-N8Y[5L!5@=A\I9@>.%;*Y([T >H6'B
M30]5O9;+3]8L;JZBR7A@N%=EQP> :7_A(]$&L?V1_:]C_:73[)]H7S<]<;<Y
MS[5YQX6&FZK?^%XU\30O=:8-T6G0Z;Y,L7[HJ\;D'*C&<YQD@>U7/ >J:)8:
M9;^']6B'_"2+J,K3P26S/*TQF9A-G'3!!W] .] 'H)UC3%L)K\ZA:BS@9DEG
M,R[$*G:P+9P"#P?>HK_Q#HNER^5?ZM96LOR?)-.J-\Y(7@GOM;'T/I7D&K:Q
M:V/PV\6>&9A/_;/V^[86BPL6V-.7$G3&S:<[NGXUW%OIUM=?&'4KFXM(Y6BT
M:V6)Y$SMS)+NQGOP* +6I>.K3P_I5]?ZS/I^V+43:01VMTK,R[U7YMV,.H8L
MR]@*U(]>CO=3TM=-O-+N=/O(YG\U;H&1RF!^Z R' )(8YXXKSG4X&/@#QF[0
M,XB\3M.<(6(1;B%F8#T"@GZ UTEW=VNJ^._"%[I,J2VDEEJ/E2QK\G_+(?S!
MH ZE/$NAOJYTA-8L&U$$@VHN%\S(ZC;G.?:G2>(M%BUA=(DU:R34GQMM6G42
M'(R!MSG.*\?\-VT%QH&D^'M6\2I8ZE;WJ22:>=._TE;A9=VX/G)W'^/&,-71
M/J=OHGCA[?1+^'4#J6K+]OTB:V;SH'.%>='P"%4*&^8%<#@C- 'J%%4--UBS
MU66^BM'=FL;@VT^Z-EPX ) R.1R.1Q5^@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "@@$$'H:
M** .-@^'5I%8P:4^LZK-HD#J\>F2/%Y7RMN52P0.5! X+=J[*BB@ HHHH **
M** "BBB@ HHHH *I:3I-IHM@MG9H5C#,[%CN9W8EF9CW))))J[10 4444 9N
MOZ-%X@T*[TF>>>"&[3RY'@(#[<C(!(/49!]B:OQ11P0I#$@2.-0JJ.@ X I]
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 5D>(/#]OX@MK:.6XN;6:TN%N;>XMF >*
M0 @$;@0>&(P01S6O10!AZ/X9CTS4Y]4N-0O-2U*:)8&N;HH"L8)(15154#))
MZ9-;E%% !1110 4444 %%%% &9H^AV^BMJ)MY)7^WWKWLGF$?*[A00, <?**
MTZ** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBF3.T4$DB1M*R
MJ6$:XRQ Z#/&3[T /HKD;7Q;JL7B;3='US0$L/[324VDL-Z)_FC7<RN-HVG'
M<$BMW7M:M?#VBW.J78=HH ,)&,O(Q(554=R6( ^M &C16+HM_K]Y,W]K:';Z
M?"8]R-'?>>P.1\K+L !QW!(XJOXKUW6/#]E/?V.B0ZA9VUN]Q<.]]Y+(%!)
M78V>!ZB@#HJ*YW0/$&I:C8+?ZQI=KI5I-'$\$GV\2[]^, _(NT\@=\DXK1;7
M]&6R:];5[ 6BN8VG-RFP..JELXS[4 :-%5DU"REL/M\=Y;O9[2_VA95,>T=3
MNSC%<]'XN2\\5MINFR65Y9_V2]\D\<P(:19 FW>"0!SSZ4 =51659ZW!_8]G
M>:G<6-G+/;^>RBZ5D  &XJ_ 91D?-TY%6X]3L)M/_M"*]MI++:6^T+*ICP.I
MW9QB@"U15"PUS2=5<IIVJ65XX7<5M[A)"!TS\I/%7Z "BJ1UC2UU(::=2LQ?
MGD6IG7S3W^YG/Z5D:KXMAT&+7+O54@CL=.5&C,-RKS3%DW%3&<;6XX!/S#F@
M#I**Y;4O&-O#<^'VL)[.>RU*[>":;S PC587D/(. 1M&<UT%EJ-CJ5M]IL+R
MWNH,D>;!*KKD=1D'% %FBJ5CK&F:F\J:?J-I=M$<2+;SK(4/O@G%+;ZOIMY<
MBWMM0M)YS'YOE13*S;,XW8!SC/&: +E%5K[4;'2[?[1J%Y;VD.=OF7$JQKGT
MR2!7,6GBZ\O(-<EMX+&46&J)9PE[GRDDC98CN+G(S^\. .O H ["BJ<^KZ;;
M7 @N-0M(IFD6(1R3*K%VY5<$YR>P[TAUC2QJ0TTZE9B_(R+4SKYOK]S.?TH
MNT52N]7TRPN(K>\U&TMIIO\ 51S3JC/_ +H)R?PK/MO&&BW7B6]T!+R(7UH(
M]P:5,2,V[Y4YR67:<C'&10!NT5SOA+Q+_;VEK-=M;0W;W%S&D"-@LD4S1[@"
M<G@#)]36['<P2S2PQS1O+"0)45@60D9&X=LCGF@"6BJ5_K&EZ48QJ.I6=F9#
MA!<3K'N^FXC-27&H65I&DES>6\*."RM)*JA@!DD$GD <_2@"S145O<07=O'<
M6TT<T$BADDC8,K#U!'!%9NEZTL^CVUWJ;V-G-,9!LCNUE3Y2V=K\!OE7)].?
M2@#7HJK9ZE8ZC:FZLKVVN;<$CS8)5=..O(.*P9O%]M-XHT+3=+N;*]MK\W(G
MEAE$AC:) P *G //.: .HHK(TW6EFTJ.[U-[&S>221 $NUD0[2W1^ 3M4DCM
M@^E3RZ[H\&GQZA+JMC'92\1W+W""-_HV<&@#0HJO)?V<5C]NDNX$M-H?[0T@
M$>T]#NSC%8VJ>-_#^E0:=/+J-O+#?W*V\,D,\;+DYRY.[&P8Y(SC(H Z&BN:
M/BJ-?%YTYIK0:7_9(U#[69..9=GWL[=N.<UT$ES;PM$LL\2&9MD09P-[8SA?
M4X!/'I0!+1165!JS?;=42]^QV]K9R(J3?:E8D,H/SKQY9R< 'KP: -6BJEKJ
MFG7UQ-;VE_:W$\!Q-'%,KM&?1@#D?C5B::*WA>:>5(HD&YW=@JJ/4D]* 'T5
M0AUO2;BP>_AU2RDLT.UKA+A#&ISC!8' ZC\ZM&Y@%RML9XQ<,AD6+>-Q4'!8
M#KC)'/O0!+16+?>)+!=)U:XTV_LKNZL+:29HHYE<JRJ2 P4Y'(H\/^([+6=/
ML,WEG_:4]G%<RVD<P+IN0,?ESD#GO0!M451;6])741IS:G9"^/ MC<+YI_X#
MG/Z47FM:5I^_[;J=E;;&56\Z=4VEAD Y/!(Z4 7J*JWFIV&G6HNKZ^MK6W)
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
M,,%QM.*W?$UH+Q?BM'Y F=;6V=%V[B"+8\CWZUZP8HS*)3&AD P'VC('UIV
M"3@9/7WH \OU9?#VO_\ ""16*V-YIKZF?,2$*8V<6[MA@.,Y R#^-4/$-C<0
M_P#"SK+1(#$6M;&3R;=,9W*WFD*,<E%.<=:]=6*-%"HBJ <@ 8Q3L $D 9/4
MT >9>&(=,U#Q7I%]9>*?#]S):VLJ+9Z38^0[Q,H&V3]ZQ 4A2 0,&M'X1Z3I
M]KX"TZ^ALX4N[@2F6?8/,?\ >$8+=<851CIP*[I(HXRQ2-%+'+%5 R?>G !1
M@  >@H \_P#%L^FV7Q'T&[\1- FCBQN4@ENL>2ER60_,3P"4#8S[XKCX_P"S
MSX*\6-I4(BL&\46K0*L91=I>V(*J>BG.1[$8XKV]XTE7;(BNOHPR*78IS\HY
M.3QWH X/1M)T^]^*WBV\NK.&>XMTL1"\J!O+S&22N>ARJ\]>!7":-:17N@#2
MM6\3Z'IFKC43)/%-8'[>MR)]P8.906)XPP7&TXKW<  D@#)ZFFF*,RB4QH9
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
MHW,<>%B4V^ #CA1D#CVH A\9_$72]+T?4H=)U>U.LVSI&L9&X;O,4,N3\I8
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
MV1(K2(R2/M6.(E5'7Y@<_P"Z: /0:*** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH ***1F"J68@ #))[4 +17GW@OQCJFL>(YX-3$:V.I0/?:
M-M3:?)25D*L>[%?+?Z-6I??$;0;"YOX'%]*=/D,=ZT%G)(MN  =[D# 7GK['
MTH ZVBF12QSPI+$X>-U#*RG((/((K!U;QGI>DWT]F\=[<RVT8ENOL=J\PMD(
MR#(5'&0"<=<#.* .AHK%'BO1S?6]J;M5^TV1OH)F&(I81U*OT) ()'H<U5F\
M<:1%INFWBI>S-J:L]G;0VKO/,HY+! ,A<8.3C@CUH Z2BN UKQM':^(_"ES%
M)?+I]]%>B2T%J_FRR)Y85/+QNW!MW;U/3FN@L_&.EWVAW&JPK>%+:8V\UO\
M97,\<N0-AC +;OF'YT ;]%<[:>--*NK75972\M9-+A^T7=O=6[1RI'M+!@IZ
M@A6Z>E1:9X]T35M2M+*W-XOVU6:TGFM7CBN=HRPC<C#$#)_#C- '3T5R5Y\1
M=%LYS'Y&ISQ"Z^QBXM[)WB>?./+5@.3G(X[C%6=4\;Z3I5[<VTB7LYLU#WDE
MK:O*EJ",@R,HXXYQR0.: .DHID,T5S!'/#(LD4BAT=3D,I&01[8KC_#OCT:S
MJVLV<^F7UO'8W#(DK6DBJ$6-6/F$C"ODG [C'K0!V=%<OIOC[1M7T^;4+*+4
M9;*.)9!.MC*5D+$#8F!\[ D @9P?H:M:7XNTW4Y[RW*W5C<6<0GFAOH&A98C
MG#\\%>#R.F.: -ZBO.=3^(,&I:AX8ATA]0MTO=5B'F36CQ)=V^Q\E&889<[/
M0\@UT%_X\T73[NYAE^V/#9R"*[NX;5W@MGXX=P,#&1GKC/.* .FHKG]7\9:7
MH^H)82+>7-R8?M$D=E:O.8HLXWOM!PO!]^.E5?ASJUQKG@BSU&ZN6N9)IKC$
MK?Q*)Y O_CH H ZJBL;6O$]AH=Q;VLR75S>W(9HK2S@::5E7[S;1T49')P*J
M'QWH"^'FUR2ZDCLH[@6LWF1,KP2E@I5U(RI!(SGMS0!TE%<M#X\TRX^VQ1VN
MII=VUO\ :1:S6,B2S19P'1",L,]>X[UD6/CF37/ =IK#R76C3O):B28V#/&Y
MDD"[8]_#*<XW \9S0!Z!17.ZKXTTS2M1FL##?WES;QB2Y2QM'G^SJ>07*CC(
M!..N.<4V]\=:#96^ES_:9;A-5C9[+[-"TK3[0O"J!G/S#C'KG&#0!TE%96@^
M(;'Q%:2W%EYR&"9H)X9XC')#(,$JRGD'!!_&H=>OS97VB1C46M!=7PA*"W$G
MVCY';RR3]S[N=P],=Z -NBL*R\66&HZN^GVD%]*$F> W2VK_ &?S$SN7S,8X
MP1GID8SFM6_NQ86$]VT4TPB4MY<$9D=O8*.2: +%%>6W?Q!N]4^$[>((XKG3
M+J-[1I93"R1[7N$5O+9OO+MR"1GK79Z/XPTO6M2ET^%+RWNDA%PL=Y;/ 98L
MX\Q-P&5SQ^- &_17,V?CS1;V\MH8OMBP7<IAM;V2U=;>>3GY4D(P<X..QQQF
MNFH **XI_'^EZOHFJS:5<WT"6UG-,VH_8&>*!D'(Y^5G'!V9YK0N_&.GZ5%:
MP3?;;^[>S6Z=;.T9V$73S&5>%!.>/KCI0!TM%>=ZGX]@_MCPAJ-M)?+I6HQW
M9, MF,EP0J>7A ,GDY&/7/2KFN?$>UL_!&H:]IEI<SSVDQMY+::V=6AE')$J
M]4&".>G(]: .XHJGI>HIJMBMTEM=VZL2/+NH&A<8]5;FJ.L>)['1KR&R>*[N
M[V6,RK:V5NTT@C!P7('1<\9/4],T ;5%<O-XEM-0_P"$=N].U=HK74+MH@@M
M=QG(1R8VW8,9!4Y/7*XK+TKQ[+KL7B.W&G7]K)8O.D$S6DB* L2L-[,,*^2?
ME],4 =7H>B6GA_3%L++S#&)'E9Y&W.[NQ9F8]R236C7!^#?']A?Z-X=M;V2]
M:\O;6*/[9+;.L,]P(P702$8+9#>V016MJ/CO1M-N[J&47DL5FP2\NH+5Y(;8
MD X=P,# ()QG&><4 :>N:%9>(+..VO?-7R9EGAEAD,<D4BYPRL.AY/YU!I'A
MBRTF_EU 3WEY?RQB%KF\G,CB,'.P=E&>> ,GK5;5O&^D:1JR:5(+RYOI($N(
MX+.V:9GC8L-P"@\#:<GZ>HKH)I1#!)*5=@BEBJ*68X&< #J?:@!]%<9X5\?P
MZYIFH7NH6EQI\5E).9)YK=XXA'&Y499N-^!RO4'-7M,\<:3JFHVUB(K^UENU
M+VAO+1X5N0!D["PYXYQP<<XH Z6BH;MVCLYW4X98V(/H<5P/@GXB6-UX<\/1
M:G-?/=7<<<#7\MJX@DN"/N>9C:6)X],\9S0!Z)165'XBT^6/5W5WVZ2[)=?(
M?E*H'./7Y6%,TKQ/IFLWGV6TDD\XV<-ZJR(5W0R@[6&>O3!]#0!L450T;6+/
M7M-34+!F>VD=U1V4KNVL5)'MD'![U1UCQ9I^C7Z:>T-[>7S1>=]FL;9IG6/.
M-[!>@SP,]>U &[17-7'CWP];:!9:V]XYL+R;[/$ZQ,6\S#'85QN#?(PQC.>*
MVM,U!=4TZ*\2WNK=9,_NKJ$Q2+@D?,IY'3\J +=%<?'XX+?$&Y\-MIE\8HX8
MF6=+20_.SLI+'&!'P,-TZ^E2W'Q$T&VGE#F]-G!-]GFU!+1S:QR9VD&3&.#P
M3T![T =711UK"A\66%UK4FFVT%].8IC;RW,=J[01R@9*%\8!'?L#QF@#=HKF
M+KQ[HEI=SQ2&[:WMIOL]Q>I;.UM#)D#:T@&!@D GH">2*P]>US4[:]^("0WD
MB+I^B17%H!_RRD,<Q+#WRJ_E0!Z'15/297GT>QFE8M(]O&S,>Y*@DURTVJ:]
MXC\4ZII.AZA!I=CI.R.XNVMA/)-,R[MB@D *H(R>N30!TNB:-:>'](@TRQW_
M &>'=LWMN/S,6//U)K0KFY?$#^&["RM]?G^W:K<.Z0QZ=:N7N O.X1@DC"X+
M<X![]*=#XWT.70[O5FGFAALY?)N(98'6:*4D (8\;MQ+#  YSQ0!T5%<M;^/
MM*GDU..2UU.V?3+4W=TMS9LFR, D?B0#@=\'TI^F>/-$U;4[6QMS>*;Q6:SG
MFM7CBN=HRPC<C#8'/\LT =-17,7'CW1+:\FB<W9MX)_LT]\ELYMHI<@;6DQ@
M8) )Z GDBK-WXQT:P?5TN[AX7TI$>X1T.2KCY"@_CR?E&._'6@#>HID4GFQ)
M)M9=RAMKC!&>Q'K6+!XLL+K69=-MH+^<Q3-;R7,=J[0)*!DH7 QD=/3/&<T
M;M%<9X7\?1Z[/K"7=A=V45A<RJ)YK5XXUB15/[QFX5^22OI5S3O'NC:C>VEL
MJ7]NM\2+*>ZLY(HKDXSA&88.1R,XSVH FOO!UE>:K<ZE#>ZE87-TJK<FRNFC
M$VT84L/4#C(P:UM+TRST;3+?3M/A$-K;KLC0$G ^IY)SDDGK6/)XVTE-7DT^
M..^G,,XMY[B"TDD@AE./D9P, \C/IGG%9&C>+4LGUW^UKJ69_P"WY;&R@1-\
MC#9&0B*.2!DD^@R30!W5%%<V/&^EC4X+*6#48%N)_LT%U/921P22\@*'([X.
M#T/8T =)17'Z-XX.J>--7T%],OHTM)$CBF-I(%Y0LQD8C"@D?*>X(KJKNYBL
MK.:ZG+"*%#(^U"QP!DX !)/L.: )J*P=)\76&K:HVF"WO[.]\DSI#>VKPF2,
M$ LNX<X)&1U&>E6?$NK-H?AO4-22&662W@9T2*(R'=C@D#L#R3V&30!9U73;
M?6=(O-,N]WV>[A>&78<':PP<'UYJQ;PI;6T4$>=D2!%SUP!@5YUX3UBY?2/#
M5Q<Z[K GU.X431ZA9@BX<P%V6,[5V1]PPR#MQZUU$7C31IK>*1)93))?G3A;
M^6?-$X/*E>HP!N)Z;>: .AHKF;_QYHNGW=S#+]L>&SD$5W=Q6KO!;OQP[@8&
M,C/7&><5-J_C+2]&U%+"1;RYN3#]HD2RM7G,,6<;WV@X'!]^.E '045ROPYU
M:XUOP/9ZC=7+7,DTUQB5OXE$\@7_ ,= %7=:\7:7H6HP:==?:9+VXB:6"WMX
M&E>4*0"%"CKSGZ GM0!NT5S!\?\ A]/#_P#;<MS+#9K="TE$D++)#-G!1TQE
M2.]-B\1KJ&LZ#Y5Q>V$=Y]I'V&ZL"CW&Q0<DM@H!G(_O9H ZFBN<L_&VDW^I
MBSM8[Z6-IFMUO%M)#;-(N05$F,=01GID8S4?_">Z)]L$6;LVWVC[+]O^S/\
M9O.W;=OF8Q][Y<],\9H Z>BBO-M ^(MI96NJ#6IK^86VK74,MTMJ[PVL8F*Q
MAW PHQCZ#&: /2:*PM5\6Z=I5ZMEY5Y>W9B\]H;&V:=DCS@.VWH"0<=SC@&N
M4\9^,UGB\-0Z1<ZI]BU:<.]WIMLSN\01SL0[3A]RC(QN !H ](JBVD6C:Y'K
M.UA>I;M;;@V T98-@CO@C(],GUK"N?&VE:.S6#C5+^6RA1KR6&S>8P KD&8J
M,!B/F( SWP*L:GXYT/2XM,D>::X&J1-+8K:0M*UP!MX4*,DG>./KZ4 ='17.
M7GC73;.2*'[-J5Q<O;K=26]O9O))!&W0R*!\IZ\'G@\5M:?J%IJNG6]_8S+/
M:W""2*1>C*: +-%<?=^.#:?$%?#9TR^DA-H)3-%:2.=Y=5!R!CRP&Y;H#Q61
MIGQ"MM+N_$L6L27\Z6>KRH9(K5Y4M(-J;2[*,*N=WOUH ]'HK#U3Q9IVEW4-
MH$N[V[FB\]8+&W:=Q%G&\[>BYX!/7MFM#2M5L];TR#4=/F$UK.N4?!'?!!!Y
M!!!!!Z$4 7**Q=:\46&B74%G*EU=7MPK/':6<#32E!U8@=%&0,G%56\=^'T\
M/KKDEVZ67VD6LA>)E>&7=M*NA&5(/7(H Z2BN8MO'6F7?VZ*.UU)+RT@%R;2
M:RD2:2(G =$(RPSQQT[XK%L/'4FN> +?69'NM%G9[823FP9XV,D@7;'OX=3G
M&X'C.: /0:*YS5?&VE:5J%Q8F*_NY[5!)="RM'F%NI&07*C R.<=<<XI;_QQ
MH5A;Z7.UQ).FJ(SV7V:%I3/@ X4*,Y.X<?7T- '151T?2;30],BT^R1E@CW$
M;FW,S,2S,3W)))/UKG+[6[GQ9X7N8O"\ES;:@UTMG,\J>5+8D$%V=6YR%Z 9
MSD?AIWWBNPT_53I?DW]W<Q(CS_9+5YA K9"ERHXS@G'7 SB@#>HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KGO'$>IW/A*]LM(B=[V]"V
MJLO_ "R60A7<^RJ6/X5T-% 'FNI>#-9T1O#^IZ?JU]JIT6>...S:"!,6S 1R
M!2B*20N#R?X?6KUOHNH+HGQ!A:T<2:C<W+6J\?OE:W15(^K BN\HH S/#MO-
M:>&-)MKA#'-%9PQR(>JL$ (_.N"OM"N=.\7Z_<7=CXCNK/4Y(YX)-'NBJ\1A
M&210ZX(*\$\8/7BO4** /+?$W@JY\1Z1HWAK3;"33+'3K(W"SW)#LLA0HEMD
M$Y!R=^,C  !YJZ\FLP:WX?\ %DOAV\91ILMA>6%L%:6U<NK!E4D!E)0C@]"#
M7HM% '&2PZEJWC#PGK$FE7%I%!#?"=)64M#O""/=M) +!<X!..E95W8>);"'
MQ=/I5O<1R7>L0RJT 3S7MO+B65HMW&[ 8#/<>M>D44 >3P:%JMQ-XQN(M.U@
M0WV@_9K4ZE*'FEDQ+QU.WEA@'USWKH+O1[]XO (2T<G3YXVNL8_= 6SJ<_\
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
M=3%38WA%K<122%P2/,4(?F^8$=1GG-:'B_P[K.M^*?\ A(++35QX>$7V2WD
MSJ9#!W!/]U0/DS_'DUZA10 R&3SH(Y3&\>]0VQQAER.A'K7GOV348/&\4N@:
M7K.G^=J!;5%G9#8SQ<AI5&XXD;"D;<'^\*]%HH \T.BZK<V/CKPT=/NHGU:X
MN;FUOB%^SLLD:!5+9R#D$$8J64:OXH7PUIK>';[3#IM[!=WD]SL$2>2#\L9#
M'?N/ (&,=:]&HH X#P[+J_ABZU'1I/#U_=FXU2:Y@O(2GDO%*^[<[%@5*Y((
MQDXXSFL>V\-:UHOBC4_%MK82W$RZO.KV38)GM)!'F2+)PK@KGMN (/:O5Z*
M '(!]?6O'I=.\4:K-I']IV.N2ZG;:U#<7C-*BV4<2S9!C4'Y@%P>F1@Y->PT
M4 <;IL=]IGQ)UYI=,NY+35A;/!>1!3$GEQ%6#G.5.0,<'.:W?$QU8>&=1.A!
M3JOD-]E#8^_CCKQGTSQGK6K10!YGX>TW4I?'VEZHUEKXM(M/GBEGU>52WFL8
MSA5!.T<'H #VZ5W?B""6Z\-ZI;P(7FELY41!U9BA 'YUHT4 <"-%U+[!\.D^
MR2;M.:,W8X_<XM60Y_X$0*RK?0M:B\=IXZ.E';<W;6DFG[1YD5N0$6YZ_P"L
MRN6'78<=J]3HH \B'AJ6QEUW3-5TKQ-?0WM[<31'3;PBWN(I6+88>8H5N2#N
M'.,\UOB'4?"GC74[RVT*]U*RU*SM8[<VI0F)X0R['+,, A@=W3K7?44 <K\.
M=.OM*\$6=IJ5L;:[6:Y:2+.=NZ>1A@]Q@@UD>(]0N-,^*VD7,&F7&H :/<"2
M*VVF15,L7S*I(W8..,YP2>V*]!JHVF6;ZM'JC0 WL4+0)+DY$;$,5QTZJ/RH
M \V_X1W6;S39K^73)89=1\4VVH_8V*EX;=&C7<^#@'"%B,G&:ZS7-.N[GQWX
M6O88':VM4O!/*.D>^-0N?J0:ZBB@#@? TNK^'](L/"MUX>OS-:.\3WRE/LS1
M[F(E#;LDD$?+C.37.:)X4:RTJ'PWK6D>)[MHK@J6MKT_8I5\W<LG^L 4="01
MG(/%>PT4 %>2-;^(8?"GB;PROAB]DGU:]O?LER&3R=DTC#?(2<I@'=T.1C'M
MZW10!Y;=^&[O1/%=S=S6^OWEC=6-K"DVCW+(R20J4*R*&4D$$$'G&3ZUICP\
M]NO@B/3-+N[:SLK^6>:*XD#R0*\<O+G<>2S^IZUW]% 'GUK)J_A/5O$D(\/7
MVJ)J5ZU[9SVNPHQ=%7RY"S#9@KU/&#4.@^$M2T6]\!031>:NEV-XEU,G*Q22
M!"!GZ[@/I7H]% 'FFL:+=V'CS5M4FM-?N+'4HH#%)HURR&-XU*E)%#*?0@\C
MDUVOAC3K?2O#=E9VEG<6<$:$K;W+AY(\DL0Q!()R3W-:U% '&ZI'?:?\2[#6
M$TR[O+*;36L&>V"L8I#,K@N"1A< \^U4$T/4AX0^(5J;.3S]1N;Y[1.,S!X%
M5"/J1BO0:* /*KCP_?Z=K]KJ=S9Z[-:7&D6UL_\ 9%R4E@FCSE74,"5.[KS@
M@^M=WX3TZVTSP]!!:V5Y91L\DI@O) \H9G+$L0S<DG/7O6U10!Q6KQZAHGQ!
M'B*/2KO4K"YTP63BS"O+ ZR%P=I(RK!NW0BN3UJPU2P\+W&J7&GF*[U/Q3:W
ML.GO(H91YD:HK$94,VS)Z@9]J]AJIJ&F6>J1117L F2*9)T!)&V1&#*W'H0#
M0!R&GPZCX@\>KKDND7FEV=IIDEFOVP*LDTLCJQP%8_*H7KW)XK"M=,UF?X2V
MGAU]$OH-0TZ>SC<2!=LNRX5F9"&.5"KG/'6O5Z* . MI-5\):_XC_P"*?O\
M5(M3NA>6D]GL8$F-5,<FYALP5X/3!JMH/A/4]%G\ P30^9_9L%[]KDC.4A:1
M00N?3)*CZ5Z110!S'AK3KNS\3^++B>!HX;N^BD@<])%$$:DC\01^%8/C*TU#
M^VYKOP[I>LV_B I&D-[;LGV2Y4'.V<%L;5RPY ;T->BT4 (,X&<9[XI:** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *HZQJUIH6D7.IWSE+:
MW3>Y49)[  =R20 /4U>KG_&_A^7Q1X/O](@D1)Y@C1&3.TNCJX#8YP2H!^M
M$-GXODFU :=>Z%J&GWLUL]S:0SM$?M*IC<H*N0'&5RIQUIND>.M,URXTNVL(
MKB2>]BDFEB*@-9JAVMYHS\IW_)CG)SV&:R]!T:2SO_MX\#QV-U;V\GERG4EE
M+.1]Q.N W]XX^E0>%?"6M^&_$B:P_DW#ZTCOK:*54039+HT?JHW%"._#4 68
M?B?:3:?#JIT354T9IA!+J#H@CB<OLY&[<5#<%@"!5FY\3VFBZAXPO9Y=2N$T
MN*WEFMV*&- 8R1Y(X(SU;<>O2N(\/Z?XD\2?"ZV\-Q:9;+IUY,X;4OM(_=PB
MX9G!CQDOP0,<<@Y%=-K_ (3U:_B\?+;PQL=8MK>.SS(!O*1E6SZ<^M &];^*
MKNZTMKZ#PSJS!Y52VB(B5YD()$G+@(O'\6#R..:Q-=\?W</@S7[ZQTFZM]7T
MH^5/;3^6WV<E-ZR$A\,F"/NDGGI6IXRTS5[_ $O38]-22>*&Y1[VTBNC;O<1
M!2"HD!&/F*G&1D#&:YJU\#ZK)X=\;6?V&'3VUE%^QP?:C,%Q$%PSGG.1SU S
MQD"@#H9=<EN+OPRU];ZKI=Q=W;QK;"2(K)B%F_>;2V4X) !SG&:BN?B+;PQ7
M5_%HNI7&B6DK0SZI$(_+4JVUF52V]D4Y!8#L>N*)=/UO6+OPG>W6EK8OIUX[
MW,1N%DVIY#H&!'!RS#@5BIX?\5V7@^^\$6VF6TMK.9X8=5:Z 5()79B6CQNW
M@.1@<$@<T =-J?C2.TUW^Q;#2+_5+YK1+Q%M=@0QLS#)=F 'W>_7(QGG&KX?
MURU\2:);ZK9K*D4VX>7*NUT96*LK#U# C\*R-,\/7.G>.'OE4'3TT:WL8W+#
M<721R<CZ$<U/X(TB\T/PX;.^14F^V7,N%8,-KS.Z\CV84 ,U3Q@MEK<VE66C
MZAJEQ:PK/>?9 F($;.W.YAN8@$A1DX%8O@C7[]?AOHUU'I^HZQ=W+3?<=0P
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
MLW[8)T,^_/F(HRL8VY&!C.>@Q5_QMINK:BNEFPBENK.&X+7UC#=?9GN$V$*
M^1P&P2N0#0!I>'?$,7B""[(M+BSNK.X-M<VUQMW1R  ]5)!!# @@]ZAUKQ0N
MEZI;Z39Z;=ZIJ<\33BVMBB[(@0"[,[* ,G YY-9G@#P_?:%_;C7EE'9I>WPN
M((8[@S;4\I%P6/).0<_IQBG:UIVM6'C>'Q)I.GIJ<<FG_8+BV^T+"Z8D+JZE
MN".6!'':@#0N?$=\MK:R6?AC5KJ6>,R/"?*B,.#C:Y=P-WL,YZ]*P;_Q&FN3
M>!=2TV6XAM;W4G5XV)1CB&4%' .#AE/'(R*;KFE>)-3U73[R]TH7MD;)DDTV
MWU,PI#<%\AV;Y?,&W"]#@@D#FJ^A^#M8T_1/!EI/!"LNE:G<7%T$ERJH_G[2
MI/)_UB^_- &YX#N)[F+Q"9YI)?+UZ\C3>Q;:H<849Z >E6M6\5?8=8&CZ?I5
MYJVHB$7$L5LT:B&,D@%F=E )(.!U.#2>$=(O-(CUH7B*INM7N;N+:P.8W;*G
MV^E9][8:YHOC6^US2M,35+;4K6&*:$7*PR121%MI!;@J0_/?(H EE^(FEQZ!
M9:NMI?R+=7O]G_94AS/%/\V49,]<IC@]QVYJ&?QU.;'6H!H5_:ZUI]H+I;*8
MQ$O&V0)%8/M*@@Y&<\8Y-<QK.C:OH6@Z'(R6LFLWWBM=0>#S"(5DD$A\O=C.
M  !NQUYQ70VNA:UK>O:OK6JV46F&?2CI=K;>>)FP2S,[E>.I  '84 0VWBFZ
MU+PAX<U'5;?5--FN[RQC#V[Q 7+2;><!FQ$2>0<-BM._\=+;W6HK8:'J6IVV
MF,4OKJV\L)$P 9E4,P+LH/(4<5CP:%XAN_!WAG2[K2X[6XT?4+ R?Z2KB2*
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
M0&FE=@J*">!DGKV&:S=.\3ZFOB.WT/7])@L;B\@>:TEMKHSQR;,;T)**0P#
M]"#ZT =317G5I\2=3FT"Q\27'AL6^@SR)%+.;T-+'N<)O";>4#$#J#WQ5O1=
M;\2W/Q(\0:;/9VS:;;?9\?Z7S C*Y#*/+^8M@$@D;?4T =U17GNB^+([/PEH
MD6D:5+-?:I=7,-I9S7C-C9)(7=Y6!(4!2>A/( %76\<W=C9^(8]6TA+?5-&L
MC?&"*Y\R*XBVL0R.5!'*D'*\>] ':T5QNG^,M2EUK2+74]!%C::RCFRE%T))
M RIOVR(% 4E02,$],&F^/]9U[2)?#XT:&%UN=3B@E+S^7OR&Q&?D;"MCENHP
M.#F@#L\C.,C/7%+7F][?:W#\5(#9Z1#<:C+X>3S(FN]D,)\\DYDVY(SP,+D^
MU;VG>*=0UGPO'J6GZ/']N%Q);7%M<78C2W>-F5RTFTY4%>RY.1P.: .JHKS3
M7/'.LS>!?$\UE9V]KJ^D,8IVBN_,C12@<2QML^;@CY2!WYKNM$N-2NM+BEU6
MT@M;D_P0SF52,<'<57D^F* -&BO/D^(&KW":3?6V@6C:7JU\;*UEDU K+G+8
M9T$9 !V-@ GWQ3K?Q5!HTFJW":=+]G_X2,6%Y+)=LXCWH@$H!'RKN91M& ,Y
MH [^BN0UGQY!H][K<;V;2V^DP0&219 "]Q,V$A (QTVDMGC=TJ.Q\<3KJDFG
MZO86L<QLI+V Z=>_:E=8\;T/RJ0XR.Q!]: .SHKF_"/B'4/$EA'J,UC8PV-Q
M$LL$EM?>>PS_  2#8NUAWP3W%6->U/6K!U&F:997$6S<\UY?_9USG[BX1B3]
M<#WH W**RO#6NQ>)?#ECK$,+0I=1[_+8Y*$$@C/?!!YKC)/&=_KW@K6]4N/#
MIAT6&TN@T@U I+,T9((3:N0IP1NSD$'@]2 =H/#6@KJ7]I#1-.%_NW_:1:IY
MN[UW8SGWK3R 0,C)Z"N.NO%5_!<)IFB:1#=RVVF1WT_VN],06-LA45MC%F.Q
MN3@>IYKG+SQ%J>K:W\/]:M='C>\OK6]DBM%NOD562(@M(5& !R<*?09H ]5H
MKS/Q'XWUUO &OW-G81V&L:5=?9;H"YW+$,*PDC)3YP0R\$#J?3GOK"?4Y=,\
MV^L;>WOL-B"*Y,B>WS[!U_W>/>@"]17G/ACQEK$'A_7]7\2VT(L=/NKO][%<
M>9("DA A5-B@@= Q//&0,\:L'B[6+74=*AU_0(K"UU63R;>6&\\YHI2I94E7
M8N"0#RI(R,>] '8T5SWBKQ*_AY-.CAMX);G4+G[-$US/Y$*-M9LN^UL?=P
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
M,D<\<4WFQL'0.C*V 2"#T(XQ0!T-%>>S:3'XA^)VNVE[>ZDD%K86CP):W\T
M1F,FXX1@,_*.OI4-CXMN/"D7B33-5N)]4?2+NWALI)' EG%PH,:.QXR"2"Q[
M<T >D45QECXWN#?WNG:E9627D-@]_";*]^T12HIPREBBE6!*]B.<BLF_\5WF
ML?#RXUO5/#SVVES):RVZ1ZB4FDWRH,DJH*C)!')R.H&: /2:*Y@^,H;:;Q/'
M?V_V<Z$@F;]YGSH6CWJXX&"2&7'/(ZU7O/$OB*+2+6_A\/V2J]FES,MWJ7E%
M7(R8D_=G+#U.T<T =?17G&I^,==O=3\%76@64+V.KQ/,89[KRS*?)9MC?(VT
M+P<C.3Q@=:LZAXF&A:KXLOTTJ6:XTZULIKI1>,5:-M^XHI&%V*&/ ^;OB@#O
MJ*YO4/&%K8ZS'9B,2VJ:9+JEU<A^(85QM(&/F+?-W'W3UK)TWX@7%Q>:1]OT
MVTM[+5Y!':M#?B::)F4L@ECVC;N /0M@\&@#NJR]0\.Z#J-R+W4='TVYG0#$
M]Q;([ #I\S#-9/ASQ5?>([^=H-.M$TR*XFMF?[;FYC:-BN7BV84$KP-V<$&L
M3XGB_NK_ ,,:;'IEI?6-QJ(\R&XN2BSNL<A$;C8PV\;L\\@#'>@#T10 H"@!
M0.,=,4M<2GB35?-N].\->&[:YMM&5+>?=>>2OF! QAA 0[MH*C)VBFS_ !"D
MN+?PVVA:.]_)KT,LD"23"(0F,*2'.#@#+9(_N\ YH [BBH;1YY+.![J)8;AH
MU,L2/O"-CD!L#(![X%34 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 5F^(M*.N^&M3TD2B(WMK);B0C.TLI&<?C6E10!Q@\.Z[?VGAH:F^G1W&
MD7Z3R?9G=E>-8608W*#N);..F.]-\3>%-0U3Q3;ZO;V^D:A EF;86NJJS) ^
M_=YJ *021P1P< <BNS#J7*A@6'49Y%.H \ZLO FL:1H7AG^S[JP?5M"EN"!*
M&6">.8MN7@$J<%2.#@CO3I? .JZQ:>*UUN^LQ-KB6Q0VL;%('AR5!#?> (7Z
M\\#I7H=% ''Z+X=OXYW74M$\,VD30/$\NFQMYKEA@XRB[!C/&6K%7P5XL?0-
M*\/37^D_V=I5S;R13*)/-N(XI%*JPQA"%';=D@=!FO2J* ,'Q=H$OB'1D@M;
MA;:]MKF*\M977<JRQL&7<.X.,'ZU0L-#UR_\46>N>(GT^,Z?!+%:6U@SN-TF
MT.[,X'90 ,=SS76T4 >.>#_#_B+Q'\,]$TF:YTU= E9)99 '%R8TEW^4%^[R
MRCYL].U=W#HFKV/CV^U>T>RDTW4HH%N5E9Q+$8@P&P $,#N'4C%=.JA5"J
M.@%+0!Y[;>!=7TW1/#[6-W9'6-%N;J5!+N\B:.=W+(2!N!VLO.#@CH:FN/!V
ML:M:>)KO5+BQ75M6TTZ=!';ES#;Q@/C+$;F)9R2<#V%=Y4/VJW^V?8_/B^U>
M7YOD[QOV9QNV]<9XS0!@7?ARYN-0\*7"S0A='=VF!)R^8&C^7CU(/..*?XPT
M.^UJQT]M,DMUO=/OXKZ);DL(Y"F058J"1D,>0#714U'21 \;JRGH5.10!SUI
MHFH?\)E'X@O'M03I"V4L4+,<2^87)7(^[S@9Y]JYVZ\ ZFVBQ6RR:?=-%K=Q
MJ36=T6^SW,<CN51\*3D;@>A&1WKT6B@#SRT^'][_ &!XNL+A]-M6UU1Y4=C&
M5BMSY03&,#C(ZCKR<#.*[#2#JL&C+_;$=K]LC7!6Q9G5@!QC< <GTQ6G4,-U
M;W$DT<$\4KP/Y<JHX8QM@':V.AP0<'UH \(\(W4&DPZ+J%O+H>IZI+<JAT[]
MZ;^(R/AV(WE5D )+-Y:C@\^OIG_"%/<Z)XMTR\FB*:W>2W$+)G]UNC15)X^\
M&3/'M76_N5G_ .68E<9[;B!4E 'G\7P^O+OP%J&E:M?02:UJ%U]MGNT0O'YR
MNI08."5"HBD'MFM+1=%U>REGFDT?POI\PMV2*6QC=F:0XP6^5<)ZJ"3TYKKJ
M* .,\-^%M1L/%=WKMY!I=@)[7R'M=,9RD[[MWFON51N&,#@GDY-,\2>$]0U/
MQ7%J\%OH^H0?8_LPMM55F2W?>6,J*%()((!'RGY1\U=M10!@^"]"G\,^$=/T
M>YEBEEM596>($*<NS# /L:R;?P=>P_"Z^\+&XMS=W$-W&LH+>6#*[LN>,\!Q
MGBNTJ*YNK>RMI+FZGB@@C&7EE<*JCU)/ H \<\36=HWCFXM]3U+1[%;72K6%
M3K#2*DX^<L(MDD>5Y&X'=DXXXKK?#UK>^)#X0\2/:V^GQ6$%W$]J@905?:D;
M1@CA2$W '& 1UKMV\F638WENZX;:<$CT-24 </J/@>[U#2O&5G]J@C;7)UFM
MVY/E[8XU ?C^\G;/!KJ]*.IG3T.KI:)><[UM'9H\=L%@#^E6W=(T+NRJBC)9
MC@ 4[K0!P2>"-2GTCQ+X>O+BS&DZI-<7%O<1%C/&\K[P&4C;A3GH>>.E6$T#
MQ-K&HZ,WB.?2UM-*G%T!8F1GN9E4JK-N " ;B<#=SWKKY[JWMGA2>>*)IG\N
M(.X4R/@G:N>IP"<#T-2+(C[MCJVT[3@YP?2@#&\2V6H:A8K;6=CI-]"Y(N+;
M4]P1U[8(5N0?53^%<>GPWOK73=!DC?3+Z^TO[0K6M\C-;/%*V[RU)#,NS"A3
M@\#I7I=% '$W7A/4-0\,BQ:TT73KC^T;>Z\NP5EBV1R(Q!.T%F^4\X Z#WK9
MTG0Y]/\ %/B'59)(VAU-[=HE7.Y?+B"'=QZ^E;M% '(:GX=UNS\53^(?#5Q8
M^;>P)#?6E]O$<NS.QU9 2& )'0@BH+[P]XGO)])UMKS2SKFG2S%80CK;-#*J
MJT9;ELC:"&QU[8KMJ* /*O%VB:E:>%?$^MZS+;G4-36VMBEH&:"V@60#YB1N
M9?F8N<#C.,4SPH\*:S=:'I<FA:DE_82&;4-+,K?9RH 19&>23Y3N.%!&,'BO
M6*C7R8F$2[$9LL$& 3ZG% '(_P#"(7O_  BOA#2O/M_.T6XLY9VR=KB%"K!>
M._;.*SO^$'U#3M4U1[#3/#>HVM_=O=K)J<3>= S\LO"'>N<D<KUQ7H=% '#>
M(_ UYXFOY)[B]CMDL;=!HPMB1]GN 0QF8>Q55 Y^7/<UU)&K'05!^Q#5O)&[
M.YH#)CGT;:3GWK0IJ2)(@>-U93W4Y% ' Z?X%O3!XF%RNFZ8NM61M!:::6:%
M'*N#,<A?F.X= .!WJ1O#'B6;3=!NGFTJ+6]#D(MPC2-!/$8A&P<D!E)Y.0#C
M ZUWE1W%Q!:6TEQ<S1PP1*7DDD8*J*.I)/ % '#W'@:_\0Q:_<>(;FUBO=4L
M5L(DLMS1VT:DL#E@"Y+G)X'3%6Y=*\7ZMX>U32M8FT9!<:=+:QO;&0F25EVB
M1BP&T=?E ;KUXKL%974,I#*1D$'((I: .0\.^$[SPQJR/83P#3+JW7[=:DD;
M;E5 \V+C'S8^8''0'KQ5Z_T.\G\96FN6\T"K;Z=<6H60$GS'9&4X'51L.>0:
MVOMEKY\L'VF'SH4$DL>\;D4YPS#L#@\GT-3 @@$$$'H10!Q>@>%M3M?&$NOW
ML&DV!>U:"6'2V<BZ<L#YDFY5&1@@<$_,>:9XB\(:CJ7BMM6A@T:_@DLUMEBU
M5&<6C!B2\:@$-G(R/E/RCFNXHH P_!VB3>'/"&F:/<2QRS6D(C9X\[6.3TS7
MG/AK0/$?B3X>#1ENM.CT.]N[@2RD.+F.,7+ET4?=;)!^8D8#=#C->NR75O%/
M%!)/$DTN?+C9P&?')P.^*D50HPH 'H* ./N_#_B&R\5ZCJF@7.FI!JD$,4_V
ML.6MVC#*'0+P_#?=)'(ZUGP^"-9T[PKX3M;&XL9-2T"8R8G9Q#,"CH1N )'#
MYZ=J]!HH P_$N@OXG\)76D7$RV\]Q$O[V,;ECE4A@0#U 91^%9,.A>(]7US2
M;WQ')I<<&E.TT<5@9&,\Q0H&8N!M #$X&>3UKLJ* /(-"T7Q+KWA36M'M+K3
M8M(O]3O8I99%?SX4,[APH'ROD9P21C)ZUV<WA[5+/QK9ZQI+636?V"/3[B&Y
M9U=(UDW!DP""<$C!QVYKH[N]LM+M6N;VYM[2W4_-+,XC0$GN3QR34BW5NURU
MLL\1N%4.T0<;@IZ$CKB@#A9/ NII:R3VEY:IJ<&OSZO:%PQC99"P\M^,C*L0
M2,X/K5I/"^LZE?ZIJVM36$=]<:8^FVL%HSM%$C98LS, 6);'88 [UVM% '(2
M>$[Q]"\'6 G@\S1)[:6=LG#B.%D.WCN3QG%=!IRZJLU]_:4EHT1N";,6ZL"L
M.!@/G^+.>G%7Z* .,'@"SU/Q#J^L>(8H[N:ZE5+58Y9%$,"* JG!').XGJ.:
MH6_P_O;&TCTVTN+9=-M?$$6J6:,S%HX0=SQ=.N[=CGOR:]"HH P!H,Q\=7&N
M.\36DNEI9>4<EMPD=R2,8QA@*Y3X3Z,;<:OJ)G-Q;1W#Z9IDA'2TAD?&/;<S
M#_@ KTJD50HPH 'H!0!S'B7PYJ%YK&G:_H5U;V^K6*O%LNE)AN(7QE'V\C!
M(([]JI:EX>\3>(M&FCU6\TRUO8;B"ZT];1'>.*6)MV79L%@W P ,#UKL#=6X
MNA:F>(7!7>(MXWE>F<=<>]2T <-/I&OW&H?\)%KYM%?2K&X6SM=*+R,SNHW/
MN<#YL+A5QWZUPG@>XMM&F\,O92^']5O;DQVTEO:>:UW:*X_>.<R,JE<9?Y$S
MS7NE-6-%8LJ*&;J0.30!Q4O@N^?P/XGT,7%O]HU:ZNYH7RVQ!*Y90W&<CO@&
MI)?#_B#2?$5[JWA^339AJ,$,=U!?,Z!)(E*JZ,@.05."I Z=:ZY;JW>Y>V6>
M)IXP&>(."R@]"1U J6@#AK3P+=6=IX>C%Y%-<66JR:G?2LI7S7D63=L'./FD
M&,]A5"]\%>)UT77_  [IM[I::3J<EQ+'-.',T0ERS1[0-N-Q(W9R >A->D44
M 4ELG70UL=R^8+;R=W;.W&?I7(KX+U2T\.^$UL;JT&L^'D"J9=Q@F!C\N120
M-P!'0XXQTKNZ* .)7P?J.KOK][K]Q:QWNJZ<=,CCLMS1V\.&_B8 LQ9R>@Z
M57LO#'BJ?4_#,^KW6DK;Z(Y^2U\PM.#"T>\E@,'D?+TY//05WU% '#S>"KZ3
MP'XDT$7%M]HU2ZNYHG);8HED+*&XSD \X!J:Y\/^(-/\476K^'YM-9=0M88+
MJ.^WC8\6X+(FT?-PQ!4XZ=:[*B@#G_!6@W7AKPM;Z7>7$=Q/'+.[2QC ;?*[
M@X['##(]:Q1X+U*:+Q3H]S-9G1=;EFN%F0M]HBDD51@KC:0"N<YY]*[JB@#A
MX_#OB?5KC18O$-QI8LM*N$NMUF9#)=2Q@A"P8 (,G<0"V2.U:OC/0;_Q!IMC
M%IMU!;75K?PWBR3J64>62>@Z\XXR/K71T4 <*W@W5-?O]4O?$TUE&]UI;Z5#
M%IY=ECC<[GD)< EB0N!C  [T_P -^&=5TNYL4O-(\+K':KM:]M86%Q+A2 P7
M8 A)P3\Q[UV]% '.^,-#O]:L].?3)+=;W3]0BOHEN2PCD*!@5)4$C(8\X-)9
MZ)J'_"9)K]X]L-VD)9RQ0LQQ*)"[%<C[O.!GGVKHZ* /+?$'PWU?53XBAC30
MY_[5F:6+4;U':YMU*@")?E.%&, AN 3\IKH;O0/$%AXJN]9\/S::5U"VB@NH
MK[>-CQ[@DB[1\W#$%3CIUKL:* ."TKP+J-AI/AFTFO;::72M5GO9Y "HE5S-
MC:,<']Z,CIUYJT?!][_PB?B[2?M%OYVM7%Y- ^6VH)EPH;C/'?&:[.B@#Q3Q
M%9VA\;WEOJ>IZ-9"UTRU@4:P9%6< .6$6R2/<F3\P.[)[<5Z?X.U*;5_".FW
MUQ8)8O)%@6Z*555!*J5! (4@ @'L16TT:/C>BM@Y&1G%.H X31?!%_IEKX,B
MEN;9CH3W#7!4M\_F1NHV\>KCKBM[2=#GL/%7B'59)(VAU-K<Q*N=R^7'L.[C
MU]*W:* .,O-#\36GC34=;T1](>*^M8(&6]:0,AC+\@*.?O\ KVJG=?#F6]\.
MZC'=ZA#<:Y?7L6H274D'[DRQD;(_+R?W85=N"2<$GVKOZ* ./TWP]J(M[^.Y
MTCPYIS3VCP(^FJQ9F88RS%%POM@]N>*2^\(WMU\+K3PND\ NX;:TA:4D^63$
MT98CC.#L..*[&B@#A_%_@:Y\1>(;"^MKJ&&T>-;;58G!S<0)*LJJN!URK Y[
M,:9X@\&:CJ7BFZU**'1KZ"ZM$MT&J(SFR*[LM$H!#;MP)&5Y YKNZ* .!7P;
MK5AH7@]=/GL)-2\/J599V=890T1C;#!2PZY'%;-GX;E_X2+Q!?WY@EM=6M+:
MW:%,_P "NK@Y'0[^*Z6B@#@/"_P]N=/T'6=/UR^2[EO[8:>DT6<I:)&4C7D?
M>^9B>V34WAKPKJND36$%UI/A<Q6BA#?P0L+B4*N VW8 K'C)W'O7<T4 </!X
M6UBY\:V.NWL.C6;6AD\RXT_S!->JRE520$ !1D-R6Y QBMKQ!H=QJVI^'[J&
M2-$TV_\ M,H?.67RG3"X'7+#K6]10!Q1T#Q/HVK:S+X=GTM[359_M3"],BO;
M3% K,H4$.#M!P=OUIVF>!VT>Z\)"UN4>VT.WN8I3)D/*TJK\P'3[P8GGOWKL
MZ* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "N6^(^KW>
MA^ -5OK"3RKH(D4<O_/,R.J;OPW9_"NIJAK6CV>OZ+=Z3?H7M;J,QR '! /<
M'L0<$>XH Q=,^'GAK29+.XMM/"WULP<7N]A-(W<N^<MGG(.1STK ;QKXFF\,
M7'C&TM=,.A0EY%LW#_:9;=&*E]^=JL0"P7:>.];NE>'O$]E+:PWGB[[586Q&
M$%@J33*.BR2;B#VR0H)]:S/^%>7ZZ3-X<B\0"/PS-(Q-J+0>>L;,6:)9=V-I
M)(SM)P<9H 9K_C;5(KS5TTF;2;:'2].COB=15RUT'5F 0*R[0-N,\\G&*?\
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
M[-W_ (3[Q#_S]1_]^5_PH_X3[Q#_ ,_4?_?E?\*PGLIDT^*^(7R9)&C7GG(
M)X_$5H'PS?[5"O:O,T0F$"S#S"I&[[O?CFDZ=%;I#4ZKV;+O_"?>(?\ GZC_
M ._*_P"%'_"?>(?^?J/_ +\K_A6%#937%G=72!?*M@IDR>?F.!C\:OV_ARXN
M;5KB.]T_RT0.^;@ H#TW>G)Q0Z=%;I IU7LV7O\ A/O$/_/U'_WY7_"C_A/O
M$/\ S]1_]^5_PK+M]%GNKJY@BGM2+=-\DIE'EXR!][\144VFR17<-LD]M.\Q
M 4PRAP"3C!/:CV=':R#GJ]V;/_"?>(?^?J/_ +\K_A1_PGWB'_GZC_[\K_A5
M&;PU?1><(Y+6XD@SYL4$ZLZXZ_+UXK'HC3HRV2$ZE1;MG3?\)]XA_P"?J/\
M[\K_ (4?\)]XA_Y^H_\ ORO^%9&G:1>:I'<O:H&%O'O?)QZG ]3P>/:JMO;S
M7=Q';P1M)+(VU57J33]E2UT6@>TJ=V=#_P )]XA_Y^H_^_*_X4?\)]XA_P"?
MJ/\ [\K_ (5F7>AW%I!)*;BSE\K'FI#<*S)SCD?7CC-6%\,W#6[3B_TTPJP5
MG^TC )Z#/X&IY*&]D/FJ]V6_^$^\0_\ /U'_ -^5_P */^$^\0_\_4?_ 'Y7
M_"L3^SIC;7=PK1O%:NL;LK9!+$@$>HX--O;&:P:$3!<31+,A4Y!5NE5[*EM9
M"]I4[LW?^$^\0_\ /U'_ -^5_P */^$^\0_\_4?_ 'Y7_"LH:)>&^BL\)Y\D
M'GA2W1=I?GT.!TIVF:'/JNT6]Q:"1F*K%),%<X]J3A12O9#YZNUV:?\ PGWB
M'_GZC_[\K_A1_P )]XA_Y^H_^_*_X5E_V-,VH6]E#<6D\MP=JF&8, ?<CI3+
M#29]0:X$;PQK;KND>63:H&<=?K1[.C:]D'/5[LU_^$^\0_\ /U'_ -^5_P *
M/^$^\0_\_4?_ 'Y7_"L>32YEOH;.&2"YFFP$^SR!QDG&,]J6^TJ2PC#M<VDP
MW;&$$P<J?0C\#STH]G1[(.>KW9K_ /"?>(?^?J/_ +\K_A1_PGWB'_GZC_[\
MK_A7.1123S)%$A>1V"JJC))/:M9O#-]\Z)+:2W,8)>VBG5I!CKQW(]!0Z=%;
MI IU7LV7?^$^\0_\_4?_ 'Y7_"C_ (3[Q#_S]1_]^5_PK'T[2I]26=XY((XX
M%#2/-($4 G Y^M0WEJ;.?RC-!-QG=#('7\Q3]E2O:R%[2I:]V;W_  GWB'_G
MZC_[\K_A1_PGWB'_ )^H_P#ORO\ A6%%932V$]XH7R8&17R><MG'\C4TFD7<
M5Y:6CA%N+G;MC+<KN.%W>A[T>RH]D'M*G=FO_P )]XA_Y^H_^_*_X4?\)]XA
M_P"?J/\ [\K_ (5E2:'?1:TNDNBK=,P506^4YZ'/I4-CIMSJ%PT-NJDHI9W9
M@JHHZDD\ 4O9T;7LA\]7:[-O_A/O$/\ S]1_]^5_PH_X3[Q#_P _4?\ WY7_
M  K+N]$N;6T-VLMO<VZL%>2WE#A">@/<56N;">UBM9) "ES'YD94YR,D8^N1
M0J=%[)"<ZJZLW?\ A/O$/_/U'_WY7_"C_A/O$/\ S]1_]^5_PK)N]%O;+5DT
MR:,?:7*A0#D$MC'/XT^UT"^O;F]@ME222T!,@#=<''R^M'LZ-KV0^>K>UV:?
M_"?>(?\ GZC_ ._*_P"%'_"?>(?^?J/_ +\K_A6#%93365Q=H!Y5N4#Y//S9
MQ_(U BEW5!U8X%/V-+^5"]I4[LZ7_A/O$/\ S]1_]^5_PH_X3[Q#_P _4?\
MWY7_  K,AT*]GUJ324$?VJ,L&RV%^7KS5>+3;J6>ZAV!9+5'DE5C@@+U_&E[
M.CV0^>KW9M_\)]XA_P"?J/\ [\K_ (4?\)]XA_Y^H_\ ORO^%9-EH\]Y:FZ\
MVWMX-_EB2XE"!FQG ]:CBTRXFGNH4V%K6-Y),.",+UP1UH]G1[(.>KW9M?\
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
M&=E4(">R@8 ITE[<RR0R/.Y>%%2-LX*@= #[5'LGKKN7[1::;$?DRYD_=/\
MN_O_ "GY><<^G-;%M_R)M_\ ]?D/_H+U4N]<U2_@\BZOII8CC*EN&QZ^OXU4
M6YF6V>V$C"%V#LG8D9P?U-:-2:U(32>AK6'_ "*>L_\ 76W_ )O5_3;,:_I.
MGQN>;"Y\J<^D#9?)^FUA^-<TES-';RVZ2,(I2I=!T8C./YFGVU]=6B3);SO&
MLZ;) I^\OH:F4&[VWO\ I8:FE:YO:1?'4O&<UX1CS4G*CT7RFP/P&!53PC_R
M-5A_OG_T$UDV]S-:3"6"1HY "NY>N",']":+:YFM+A)[>1HY4.59>HH=/1I=
MK IZIOO<TO"W_(TZ;_UW6KFB/#'::^UQ"9HA"NY ^TG]X.^#BL"WN);6X2>!
MS'+&=RL.H-36>I7NGRO):7#Q/(,.5/4=:)P;O\OS",TK$T5[Y&K0WFF6S0M$
M0Z1LWF<CKV'%7KZWL-0T>;5[.![.2.98YH"VZ-BV3E#U'3I6=+J^H3W<5W)=
MRFXB&$D!P5^F/K1?:M?ZDJ+=W4DJH<JI. #ZX'>CE=TT',K-%[PBRKXGL]Q
M)WJA/]\HP7]<4GAR"Y'BNR3:ZR13AI<\%5!^;/IQFL8$JP9200<@CM6C/X@U
M:YMVMYK^=XV&&!;EAZ$]3^-$H-MVZJP1DDE?H:NF26C6?B226.1[4["%B8*Q
M!E&,$@X[=JY^[:U:<FTCECAP,+*X=L_4 ?RIL=S-%#-#'(RQS "11T8 Y&?Q
MJ*JC"S;%*5TD=7X5N+2UTJ_FO4W0+<V^3C(4_/AB.^#@X]JI16UW:^-K1+U_
M,F:\B?S<Y$@+@A@>X-8R7,R6\ENLC"&4JSH.C$9Q_,U)_:%V6MF,[EK7'DDG
ME,'(Q^-1[-\S?<KG5DNQVND$:QK,&>;W3+PCW> N?_02?R-8.G*TGAS7HX03
M-NA=@.IC#'/X XS6/;W]W:WGVN"X>.XR3YBG!YZTEK>7-E<"XMIY(IA_&C8-
M)4FKV\O\Q^T3M?S-?1 T>B:Y-("+=K=8P3T,A<%0/<8)J_H4*:IIECYO*Z7>
M%Y/:$J7.?Q0_G7/WVK7^I*JW=U)*J<JI.%!]<#BHK>]N;2.:."=XTG39*%/W
ME]#3=-M/O_2$II-=CK[:=M0CL_$<OS/8QS^<3_?7YH_UD'Y5CZ%=36VF:S=1
M.1-&D+JWN)5-9$=[<Q6<MHD[K;RD&2,'AB.F:9'<310RQ1R%8Y@!(HZ, <C/
MXBA4M&OZM>X.IJF=9?P0MX<U34[50MM?-!($'_+.0,V]/P//T(KD[;_CZA_W
MQ_.G+>W*63V:SN+9V#M%GY2P[XJ%6*L&!P0<@U4(.*:9,I)M,Z_)'CK62.#Y
M=U_Z U36V-4T^]UI,><=/E@O /\ GH -K_\  @/S!KDO[0N_M<MUY[^?*&#O
MW8,,'\P:;!>W-K'-'!.\:3KLE53PX]#6;I.WW%JHC3T[4(5L4T[4[*2>S>0O
M$\9VR1L< E3T/3H:O6FGC2]8U^R$GF"&PF4/C&1@'\ZQK/6]2L(/)M;R6*/.
M0H/ /J/3\*KI>7,<DTBS.'F5DD;.2X/4'ZU3@VV)32L:G_,C_P#<2_\ :=/U
M)7A\)Z3#< B8RRR1JW58SC]"036?9:QJ.G1-%9W<D*,VXJIX)]:K7%S/=S--
M<S232MU=V))_$TU!W^=Q<RL=#XNGL?[8NXOL3_:L1_O_ #^/N+_#CTXZTMB^
MGIX2M_[2AGEA.HO_ *F0*1\BY/(.?IQ67+XAU:>!H9;^5XW78RDCD8QBJ)N9
MC:BU,C>0',@3MN(QG\A25-\JB^@W-<S:-_5+R^T[QA)=JD<CQ ; JDHT.S _
M J:K:G9V$^CQZO8126RM.8)+=VW -MW90]2/K6>FJ7T=Q#<)=2K-"@CC<-@J
MHZ#Z47VIWNI%#>7+R[/NACPOT'2A0::\@<T[E2BBBMC(**** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH *]YT?_D"6'_7M'_Z"*\&KWG1_P#D"6'_ %[1
M_P#H(K@Q_P ,3LP>[+M%%%>8=X4444 %%%% !1110 4444 %%%% %/5=/75-
M+N+%I#&)EVEP,XYKC?\ A6%O_P!!27_OT/\ &N^HK6%:=-6BS.=*$W>2.!_X
M5A;_ /04E_[]#_&C_A6%O_T%)?\ OT/\:[ZBK^M5NY/U>GV.!_X5A;_]!27_
M +]#_&C_ (5A;_\ 04E_[]#_ !KOJ*/K5;N'U>GV.!_X5A;_ /04E_[]#_&C
M_A6%O_T%)?\ OT/\:[ZBCZU6[A]7I]C@?^%86_\ T%)?^_0_QH_X5A;_ /04
ME_[]#_&N^HH^M5NX?5Z?8X'_ (5A;_\ 04E_[]#_ !H_X5A;_P#04E_[]#_&
MN^HH^M5NX?5Z?8X'_A6%O_T%)?\ OT/\:/\ A6%O_P!!27_OT/\ &N^HH^M5
MNX?5Z?8X'_A6%O\ ]!27_OT/\:/^%86__04E_P"_0_QKOJ*/K5;N'U>GV.!_
MX5A;_P#04E_[]#_&C_A6%O\ ]!27_OT/\:[ZBCZU6[A]7I]C@?\ A6%O_P!!
M27_OT/\ &C_A6%O_ -!27_OT/\:[ZBCZU6[A]7I]C@?^%86__04E_P"_0_QH
M_P"%86__ $%)?^_0_P :[ZBCZU6[A]7I]C@?^%86_P#T%)?^_0_QH_X5A;_]
M!27_ +]#_&N^HH^M5NX?5Z?8X'_A6%O_ -!27_OT/\:/^%86_P#T%)?^_0_Q
MKOJ*/K5;N'U>GV.!_P"%86__ $%)?^_0_P :/^%86_\ T%)?^_0_QKOJ*/K5
M;N'U>GV.!_X5A;_]!27_ +]#_&C_ (5A;_\ 04E_[]#_ !KOJ*/K5;N'U>GV
M.!_X5A;_ /04E_[]#_&C_A6%O_T%)?\ OT/\:[ZBCZU6[A]7I]C@?^%86_\
MT%)?^_0_QH_X5A;_ /04E_[]#_&N^HH^M5NX?5Z?8X'_ (5A;_\ 04E_[]#_
M !H_X5A;_P#04E_[]#_&N^HH^M5NX?5Z?8X'_A6%O_T%)?\ OT/\:/\ A6%O
M_P!!27_OT/\ &N^HH^M5NX?5Z?8X'_A6%O\ ]!27_OT/\:/^%86__04E_P"_
M0_QKOJ*/K5;N'U>GV.!_X5A;_P#04E_[]#_&C_A6%O\ ]!27_OT/\:[ZBCZU
M6[A]7I]C@?\ A6%O_P!!27_OT/\ &C_A6%O_ -!27_OT/\:[ZBCZU6[A]7I]
MC@?^%86__04E_P"_0_QH_P"%86__ $%)?^_0_P :[ZBCZU6[A]7I]C@?^%86
M_P#T%)?^_0_QH_X5A;_]!27_ +]#_&N^HH^M5NX?5Z?8X'_A6%O_ -!27_OT
M/\:/^%86_P#T%)?^_0_QKOJ*/K5;N'U>GV.!_P"%86__ $%)?^_0_P :/^%8
M6_\ T%)?^_0_QKOJ*/K5;N'U>GV.!_X5A;_]!27_ +]#_&C_ (5A;_\ 04E_
M[]#_ !KOJ*/K5;N'U>GV.!_X5A;_ /04E_[]#_&C_A6%O_T%)?\ OT/\:[ZB
MCZU6[A]7I]C@?^%86_\ T%)?^_0_QH_X5A;_ /04E_[]#_&N^HH^M5NX?5Z?
M8X'_ (5A;_\ 04E_[]#_ !H_X5A;_P#04E_[]#_&N^HH^M5NX?5Z?8X'_A6%
MO_T%)?\ OT/\:/\ A6%O_P!!27_OT/\ &N^HH^M5NX?5Z?8X'_A6%O\ ]!27
M_OT/\:/^%86__04E_P"_0_QKOJ*/K5;N'U>GV.!_X5A;_P#04E_[]#_&C_A6
M%O\ ]!27_OT/\:[ZBCZU6[A]7I]C@?\ A6%O_P!!27_OT/\ &C_A6%O_ -!2
M7_OT/\:[ZBCZU6[A]7I]C@?^%86__04E_P"_0_QH_P"%86__ $%)?^_0_P :
M[ZBCZU6[A]7I]C@?^%86_P#T%)?^_0_QH_X5A;_]!27_ +]#_&N^HH^M5NX?
M5Z?8X'_A6%O_ -!27_OT/\:/^%86_P#T%)?^_0_QKOJ*/K5;N'U>GV.!_P"%
M86__ $%)?^_0_P :/^%86_\ T%)?^_0_QKOJ*/K5;N'U>GV.!_X5A;_]!27_
M +]#_&C_ (5A;_\ 04E_[]#_ !KOJ*/K5;N'U>GV.!_X5A;_ /04E_[]#_&C
M_A6%O_T%)?\ OT/\:[ZBCZU6[A]7I]C@?^%86_\ T%)?^_0_QH_X5A;_ /04
ME_[]#_&N^HH^M5NX?5Z?8X'_ (5A;_\ 04E_[]#_ !H_X5A;_P#04E_[]#_&
MN^HH^M5NX?5Z?8X'_A6%O_T%)?\ OT/\:/\ A6%O_P!!27_OT/\ &N^HH^M5
MNX?5Z?8X'_A6%O\ ]!27_OT/\:/^%86__04E_P"_0_QKOJ*/K5;N'U>GV.!_
MX5A;_P#04E_[]#_&C_A6%O\ ]!27_OT/\:[ZBCZU6[A]7I]C@?\ A6%O_P!!
M27_OT/\ &C_A6%O_ -!27_OT/\:[ZBCZU6[A]7I]C@?^%86__04E_P"_0_QH
M_P"%86__ $%)?^_0_P :[ZBCZU6[A]7I]C@?^%86_P#T%)?^_0_QH_X5A;_]
M!27_ +]#_&N^HH^M5NX?5Z?8X'_A6%O_ -!27_OT/\:/^%86_P#T%)?^_0_Q
MKOJ*/K5;N'U>GV.!_P"%86__ $%)?^_0_P :/^%86_\ T%)?^_0_QKOJ*/K5
M;N'U>GV.!_X5A;_]!27_ +]#_&C_ (5A;_\ 04E_[]#_ !KOJ*/K5;N'U>GV
M.!_X5A;_ /04E_[]#_&C_A6%O_T%)?\ OT/\:[ZBCZU6[A]7I]C@?^%86_\
MT%)?^_0_QH_X5A;_ /04E_[]#_&N^HH^M5NX?5Z?8X'_ (5A;_\ 04E_[]#_
M !H_X5A;_P#04E_[]#_&N^HH^M5NX?5Z?8X'_A6%O_T%)?\ OT/\:/\ A6%O
M_P!!27_OT/\ &N^HH^M5NX?5Z?8X'_A6%O\ ]!27_OT/\:/^%86__04E_P"_
M0_QKOJ*/K5;N'U>GV.!_X5A;_P#04E_[]#_&C_A6%O\ ]!27_OT/\:[ZBCZU
M6[A]7I]C@?\ A6%O_P!!27_OT/\ &C_A6%O_ -!27_OT/\:[ZBCZU6[A]7I]
MC@?^%86__04E_P"_0_QH_P"%86__ $%)?^_0_P :[ZBCZU6[A]7I]C@?^%86
M_P#T%)?^_0_QKN+2W%I9P6P;<(HUC#$=<#&:FHK.=:=3XF7"G&'PH****S+"
MBBB@ HHHH **** "BBB@ HHHH **** "BN-T+QW:/X*TW7/$5U;63WLTT*E5
M8(61Y  .N#MC/4\GZ@5NZ)XDTGQ$EPVF71E-NX2:-XGB>,D9&Y' 89'3CF@#
M5HK$UGQ;HN@7'D:A<RK+Y?FLD5M+,43)&YMBG:.#R<=#2ZAXLT/3-.L[^YOU
M-O>X^RF%&E:?(R-BH"S<<\"@#:HKB?#GC6VU";Q5J%SJ<)T73[F,03,H58X_
M)1F!X!SN+<'G/'M3+7QQ!K7CS2=-TB^+V<EG<RW,,ENT;[E,?EL0ZA@,,V,<
M'WQ0!W-%< _Q'M=)TOPV]]<)J+ZI*5DNK2VF2,)\_P ZKM8DY4#;UZGI716N
MM+/XBN(?[1M_LBZ?%=K;M Z21JQ;]XS-QM(7IC(QS0!NT5SNF^.O#>K:A#96
M>H[YI\^07@DC2?'7RW90K_\  2:BO/B%X5L+F:WN=659+>4PS@0R,(6!Q\Y"
MX09XW' /KQ0!T]%5KZ_@T_3YKZ=F\B)-[%$9SCV"@D_@*YKPW\0=)USPC_;]
MU(+".*)9+H2JX2(MG #LH#]/X<]O6@#KJ*Q=&\6:+K]S+:Z?=LUS$@D>":"2
M&38> P615)7W Q6?XF\<V/AC6](TZZBE;[<S>8Z12-Y2!&(("J=Q)7&!R,YZ
M4 =517"3>/+72_&VJ6FJ7[)IZV-K/:PK;,\F6\PNVU5+D8"YSP/;-='<>*M$
MM=&M=6DOT:RN]HMWB5I#,6Y 15!9CUX SP: -BBL_1]<T[7K5[C3;CS4C<QR
M*R,CQN.JLC ,IY'! ZUG:IXY\.:/>W%G>ZCMNK?!FAC@DD= 5#;B%4G;@@EN
M@SR: .AHK"U#QGX>TNSLKN[U.)8+Z,R6KHK/YP&/N[0<GYEP.ISQ3+WQMX?T
M^.T:XO9-UW +B***VEDD,1_C**I91[L!0!T%%<5XE\:6UE9^&=6L-4@&DWVH
MB.>X #*\/E2$CD9!W*.G.1CVJ]+XPTS4?#6L7^DZI%"^GQ,99+JVD'V<A=P+
MQ$!\8YZ<]J .GHKA;WQJFC^-K>SU/4%&GRZ,EPD<5N7:6<R$915!<_*#QS@<
M^]:UQXGM+VQT2_TG5[06E]?I 'DA=_.!#9C4#!1\KU;I@YH Z2BN2T'Q]IVN
M>(M4T=$ECDM)O+B=H9 )0(PS$DH F"2,$\XR.M7=/\;>'M4U"*QM-0WS3%A
MQAD6.<KU$<A4*^,'[I/2@#H**X'QQ\1M+TG0=;ATS5536+2-DC;R&:-)@,[-
MY4Q[_P#9)S[5V\EU%;:>UW=2K'#%$999&X"J!DD^V* )Z*P])\7Z)K=^UC97
M4ANA'YHBFMY86=,XW+O4;ADCD9J&/QUX;FOWLXM1,DJ,Z[D@D,;,@)95<+M9
M@ > 2>* .BHKA-.^(EIKWA;5[ZUF73KFR6=O,N+>5XHT1RH<_*,Y !*CD=.U
M=5IVL6=]<36,=TDM[:1Q/<*J,H D7*L,]C@]"<=.M &C17+#Q;8W-_8W-IJL
M#Z9-9W%P8A:RM+*(F"ET('0'/&,G(QFLJR^(EOKW@6[U>TN(]+NH!F1KJVEE
MBA'FE <A5WY Z+T)YZ4 =]16+J_BS1M"N4MK^[<7#1^:8H8))F5,XWL$5BJY
M[G I+WQ=H=A:V5Q+>^8E\ADM1;1/.TJ@ EE6,,2 ",G&!F@#;HJ*VN8KRUAN
MH'WPS()$;!&5(R#@^U<'XB^(^F%+.WT+55:[DU.VMRWD-LE0S*D@1V7:_!.=
MI)% 'H-%8&I^-?#^D7TEG>WY2:$*9RD,CI &Z>8ZJ5CS_M$51O\ Q_ING>-(
M/#TR2D2VQF,Z12. VY J@*A!!#9W X&,&@#K:*YZ\\;^'M/U!K*ZOVCD240N
M_P!GD,2.<85I0NQ3R.IJIKVN7=D?$R6VHVXEL='-W# (#YD3[9,.S'Y6!*\#
M';GW .LHKFHO%VGZ=H.C3:O=N;R]M(Y1'# \LDAV LP2-2< GDXP,U:G\7:#
M;Z##K;ZE&=/G8)#*BLQD<D@*J@%BV01M SP>.* -NBN.\+^+!XC\8:];VEX)
M]-M;>U:%#%L:-V\S>&! 8'Y1PW3%:^L^+-&T"<0:A<RK*8_-*0VTLQ5,D;FV
M*=J\'DXZ&@#:HKBO$/C.#3-8\*7,>I1)HNHBX:615#B51%NCV\$Y+$8"\DG%
M;5GXOT"^T>[U6+48UL[-BMR\RM$82.SJX#*>1P1SGB@#;HKG;/QUX=ODNS#?
M.K6ENUU+'-;2Q.(AU<(RAF7W4&M&37M,BMM.N'NU\K4I$CLV52?.9U++C [@
M$Y/ [T :-%<^WC?PZNJ?V<=1_?>?]F+^3)Y0EZ>7YNW9NSQMW9SQ3_&6OCPS
MX2U+51S+!;N81Y;.#)M)4':.!D<DX'O0!NT5Q.@^+;+3_"MI?ZUX@N+Z6\?$
M;26)CE9]H+)'$B!F .3G!X/6MJ+QCH$VA3ZTFHI]@MY/*GD9&4Q/D+M=2-RG
M+#@CO0!N45FZ+KVF^(;22ZTN=IX$D,9<Q.@)P#QN W#!&",@^M8FE^,HOL?B
M"]UN:WM+33=8>P24*P&W]V$+=>2SX)X'TH ZVBL/2?&&@ZW<7$%A?AY;>,32
M+)&\7[O^^-X&Y?\ :&1[U!%XPTK5=,OY=*OBKP6KSK//:2K%M .)!E1YB@_W
M2<_C0!T=%<Y)XOTK2=&TF?5=21YKZ!7C-M;R,9_E!9TC4%@O.>1QD9K,\,>-
M+:\T;7M9U+4X6TVUU66&WN  %\D!-@&!EB2W'4DG% ';45AVGC#0[VRO[N*\
M98]/C,MVLT$D4D*8+;C&RAL8!(XYQQ5>+Q[X9FLKF\BU+?;V[I&TBP2$.SDA
M5C^7]X201A,]* .DHJGIFJ6FL68NK-I&BW%2)(7B92.H*N P/U%9?C?7+KPW
MX0OM6LTB>X@,85902IW2*IR 0>C'O0!T%%<UIGB&[USQ'=)IT</]@V(:&:[=
M26N+@=5BP<;4Z%L')X'0FFV/Q"\*ZE=VEM::LLKW9"P,(9 CL1D)O*[0^/X2
M<^U '3T5S^K>-O#VB7LEG?7Y6>) \RQ022B%3T,A12$'?YL5H6^N:9=ZBEA;
MW:2W+VJWB*F2'A8X#ANA&?0^GK0!H45BP^+="N-$BUF'4$DT^686\<RHQW2%
M_+"@8SG=QT]^G-4[WXA>%M.N9[>YU54EMY3%.!#(PA88^^0I"CG[QP.O/!H
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
M'/(]:T[W3;D:G\/FBLI1'9NXG*1'$"FU9?FX^49P.>^!7<*JHBHBA548  P
M*4C(P>E 'AOAV\9-+TF;66U&'P]::HUW"\5@I@$AF?8?/$A9HMS\'8,Y'.*]
M'^(UI<WW@NXM[2WEN)C<VK".)"S$"XC).!Z $GV%.@^'V@6YBC5+UK.&02Q6
M+WLK6R,#N&(BVW /(&,#TKJ: .2T6PF3XB^++N:T=8)X+)(IGC(60!'W!6/7
M!QG'M3_AK:7-C\.=$M;RWEM[B*WVO%,A1T.X\$'D5U5% 'E]O'>1^&?'^@OI
MFHB]FEU.Y@/V5S',DN2FQ\;68[ON@YX/'%:EUIET&^'GE6,P%G,//V1']POV
M5U.[CY1G Y[X%=Y10!XQ;:&8=.U3PYKTWBT&>\G)AL+,26]RDDA=7601-C((
MSN8$$=J]F5=JA<DX&.:6B@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "HKF;[/:S3^5)+Y:%_+B7+O@9PH[D]JEHH \O\ !7BM1H6I^*-=N-:3
M,\BE;@$P',S)''!&,_,,!2 ,Y/>NPTCQ=9ZIJITN6RU#3K\Q>?'!?P",RQ@X
M+*02#@D9&<C/2N3C\*:VOPWL+5+1?[4T[6&U)+2210)@MT\@7=D@;E.1GOC.
M*U[6#5?$7C?2]:NM'N=)LM*MIT07;QF6>27:" $9@%4+U)Y)Z4 8/A?6]4NK
M+X:-/J%Q(U^MT;LM(3Y^V%RN[UP0#727'Q&T>W:>4VNI/IMO,8)M4CMLVT;A
MMIRV<D \%@"/>L/PUX8UFQM/AVES9-&VE+<B]&]3Y.^)E7H><D@<9JI'I/B2
MT\!7?@*/0)99)!-;1:GYT?V8PR.Q\QOFWA@&/R[3R* .YF\7:7;C7C*TJ?V)
M&LMUE1RC1[U*<_,",@>X(H@\6Z9=1Z"\#2R?VXI>T"KSM$>\EN> !P?<@5R?
MB;P?JDOB32TTV'SM,O;>"RU9RX4K'!*LBL03R67>G&>M2^#?"VJZ;XMNVU"W
M":7I:30:0V\-O2>8R,< Y&T!$YH NZ=XWT_3O"^BW5[>:AJ+:C++#!-]D'FR
MNI<A2B< _+M&.O&>YK1MO'6D2Z5JM]<I=V/]E$+>6]W#MEC) *_*"<[LC&"<
MUS6A>&-9M--\"13V3(^FWUU+=C>I\I768*>O.=R],]:J>-]-O+6W\<W4L&(=
M3.FPV9+@&9PP4JIYVMD@!B, X/04 =EI7C*#5->.C'2-6L[L0"X(NX%0",D@
M-D,>I!'UZXJ]K&NC2)(HTTO4[^212VVRM]^T#U8D*/IG)]*Y+PL\^G>-/L^O
M6VI'6;^R(@NKJZAG7R8F!*#RE7;RX.2O/K5WQ;;ZW+XALVCM=6N]$^S.K0:5
M>"WD^T;AM+MO0[-N>C<'J* -%_'.CCP_8ZQ%]IG2_D\FUMHH29Y)02"@3L1M
M;.>!@\UDZ_\ $*?3K/2I[30M3WW6I)9SPW%H0Z XR!\P!<@C:02#SZ5AZ5X9
MU_1?#_A:^&E//>:-J%[)/8+<*TCQ3-*-RNQPS ,IY()R>AK=\1C6]=T+3K^/
MP_<0SV&L6]XMB\T9FEAC/)X;:&Y/R[NW7G% %J_\5PZ?J[7=S+J4<,6BO?R:
M;]F3*JLB@N3G.\ XVYQC)K:F\16$5WH]LKO+)J^XVOEKD%53>7/HN,<^I%8R
M:9>:EX\@U:ZTV2&PFT%[65)F0E7:56\M@I/.T'ID>]9/@+PQK6G:R[ZW%B#1
M[4Z9I4A<-YT)D9C)@'Y3L$2_\!- $1\?7.F:'X5EMHM0UI-3NFBENGM%5W3]
MY\JJC "3*C Z;03UKI8M<A'B>Z6XOKFWBBTF*]DL[B%%2!2SY<MUW?*01T&*
MY.W\/:YIO@3P>/[*EGO-'U+[3<V<4B>88SYP.TE@I/[Q3C-:6L>&]2\0ZUKL
MAMGLX=3\-I9(\K*?+F+RDHVTGIN&2,CT)H V=,\<:?J5]9VQL]1M%OP393W=
MOLCN<#=\IR2#MR0& )%3Z)XLM=?G LK#4?LC[_*OG@Q!+M.#M.<]<XR!G'%<
MKX:T$"]TA=0\+:]%=V.':XNM7::VBD5"-R*9FW9S@?(,!NU3>'--U2U\6P2:
M;HVI:)I)29M1M+JYCDMVD/*F!5=MIW9)(VC';- '::1J]IKE@+VR,AA,CQ_O
M(RARK%3P>>H-7ZH:1>7M]8";4--;3Y_,=?(:59#M#$*V1QR #CMFK] !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %5[^PL]4LI;*_MHKFUE&)(I4#*PZ\@U8HH R=)\,Z)H4TDVF:;
M;VTTB[6E5<N5]-QYQ[=*UJ** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MI#+&V6))X(4]">G.,T 5+'QE?ZM\+)M8UJVU/3MOE_Z;8O"K2YGV_NQN;&.
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@"&&TMK>:>:&WBCEG8/,Z( 9&  !8]
MS@ <]A4U%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 9^I:#H^LM&VJ:58WK1_<-S;I(5^FX'%788
M8K>%(8(TBB0;41%"JH] !TI]% !1110 4444 %%%% #)8HYX7AFC62*12KHX
MR&!X(([BB&&.WACAAC6.*-0B(@PJJ!@ #L*?10 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
M<%LD 9P<#DG'2H[GQQI$5EIEQ:"ZU%]30R6EO90[Y)$ RS8.-H&1G)&#QUH
MZ2BL2V\4V-S=Z5:>3=PW&I).\4<\!C9/*(#AP>0<D8]:KWOC;1].L-8O;EID
M@TBZ2UNFV=&;9@CGD?O%R?K0!T=%<C_PE":A?:$\9U734NKN6);:XLU4W06$
MN"=W*KCD$<Y&"!5#1/'5SKEIXC6XT^_T\6,ERD=T+7B)$0$;MS$&49)V].!0
M!WM%<M%XMM++1]#4_;]6OK^S2>*.WMU\Z9-JEI64$*@^89Y R<"GMXYTDZ1;
M7\4=Y-)<7+6<=G'#_I'GKG=&4)&TKM8G) P.O2@#IJ*JZ=>_VC8QW7V:YMB^
M<PW,>R12"1R/P^A'-47\3:=%?:O9S-)')I5NEU<%UP#$RL=R^H&U@?<4 ;%%
M<]:^,])O=,T._MVFDBUJ40VJA/FW88G<,\!0C9],5S-WX[N='T'3+FV%[K!N
M]9:S>9[0 J@G*,@"$#=V3UQS0!Z/17G^H>+IK'Q_IP>WU5[>ZT621--BA+2-
M+YJ\E,X!"[N20!ZUMKX[T5O#L6M W/ERW'V1+;R#]H-QN*F+R^N_(/'MG.*
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
M6[$\:G D"P%ESZX/-69M&NW^(=IK8V?8XM+FM6^;YM[2QL./3"FDUK1;N_\
M%WAG4X?+^SZ=)<M/N;!P\11<#OS0!BW'Q*,-OJ%\OAV_DTS3+N2UO;P.@$>R
M38652=SCH3@<9[D'&O=^*YAXBFT?3-(FU"6UBBFNG6>./8LA.W:&(WG"D]AT
MYS6--X0U1_A_XJT4"'[7J=W>36_S_+MED++DXXXIGB_PUK&M3I'8Z1917D21
MK::XEZT4UKC&[*A<L <X7)!SSB@"_)XGT_1-1\87EU+J+QZ:;8RQO)YB9:,%
M5A3^$L2 1W8YK+;7=4O_ (D^%8+_ $>\TD^1>N4DF22.52B8Y0XW+@Y!Z9'K
M4VL^"=2U7_A,E2:&)M4>SELI&)(WP(A^<#H"R8[\&IX],\3ZUXOT35]7T^QL
M;2PAN(FAANC,[-(@!;.T#&5&!UZDGM0!+%\05DBM]2.C72^'[BY6VBU,R)@E
MGV*YCSN"%L 'KR#BK</C":\\5WNA6.AW=Q]@G2*[NO,1(XE=%8-R<L?F/RCG
MY<]Q7+>'_ $NB)::9<>$-#OUMIAC57GVLT8?(8Q["?, [9P2.M=CH.C7>G>(
M?$M[/L\G4;N.:#:V3M6%$.?3E30 >)+V*UU3PY')+?(UQJ/E(+:;8K'RG;$@
M_B3Y>GKBF:/XJGUS4YH[/1YCIL-S+:O?&>,8DCR&S'G<!N&!WY!P!S3_ !)H
MUWJFI^'+BVV;-/U'[3/N;!V>5(O'J<L*PH_#FKS>.+35H])LM(,4[M>WEK>%
MOM\>U@JM$% ))*DEN1C@F@#H?$_B:/PS#I[M8W-Z]]=BTBBM@"Y<HS#J0/X<
M=1C.3P*HVGCF!8-;.M6$VDSZ-$L]U%(ZRYB8$JRLIPV=I&/7BK7B?1KO5KSP
M]+;;-MAJB74VYL?((Y%./4Y85C:[X)NM=U#Q8'ECAMM7TVWMH),Y*R1F0Y8>
MF67]: +=MXVN1?:?!JOAV\TV+4R4LII98W#OM+!'"G*,0#@'/I4/@7Q+KNO7
M6KQZII3PPVU_/"DWFQD1[2H$1"G)(R?FZ'UJ,Z9XG\1ZCH8UVQL;"UTJY6\E
MD@NC*US,JLJ[1M&Q<L2<\]![U>\+Z7K&B:SK=M<6MNVFWE_-?PW:3_-F3;^[
M,>WM@\Y]* )];\5OI>OVNB6FD76H7UU;/<1+"RJH"L =S,0%'/7Z#DFJD7Q
MM7T.2\DTZ[CU".__ +,.FY4RFZ[(&SM((.[=G&.:S?$4NJP?%?2I=(M;>[F7
M1K@R03RF+>GFQY"M@X;.#R,<$>]4;OX?:IJ>@W%S?16$NK3ZV-8:R=RUN0%\
ML0%\9/R9^;'7MB@#HO\ A-_LUOK2ZII,]E?Z59&_>V,JR":'#89'''5"#G&#
M5>3X@R6^B1:O=>'-1AM+JX@ALQN1I;@2YPP0'*]!P<$[A[XIQ^%)IO#GB&UM
MO"FE:)=7VGR6L)@N!(TC,K##$( %R1W/TK5UGP]?7V@^'+.'RO-T^^LKB?<V
M!MB(+X]3QQ0!43QYJ,FHW.D+X1U ZS!&L_V7SXMAA;.',N=HY!&WKGVR0\^*
M+'6D\'ZE VHQ1ZE=.L<4<HC&X1N669?X@"I&/4 UIV^C7<7Q!O\ 6FV?9)]-
M@MDPWS;TDD8\>F&%<]I'@W5;+2_!UO-Y&_2;^XN+G$F1L<38V\<G]XM $>C>
M,O$]Y;>*'FT"1S87<T<)%Q"/*VHA$9Y^8C<6W=#TJWH?CB]7P%INL:UID_VN
MZ2WBMTB>,M?2R 8V@'"9//S8P,^E6=(T36-/U;Q)926UNVF:K<RW<=XL_P Z
M%XT388]O8KG.:Q&\&ZYJ?P]TK0M0L-/6ZT2:W>!'N#)#>B(%2'^7*!E)]>:
M.D@\:1P/J<&N:?+I5SI]I]ND1I%E5X.1O5EZX*D$<'..N:YO4/$VIZKXA\&"
M?1+_ $J"YU RQ/)*C++&8)/E<*?E;D':?Z&KD'@M=0T36[$^%],\/O?636R3
M6TXED)/]["#"@X/7GVH72?%^K:CX8DU.QTZT@TBY$DYBNC(TY\ITWJ-H"KDC
MY3D\]L<@&G\0M?U;P]HMK<Z3:&:22]@B=]R *K2*NW#?WLE<CIG-2WGBV[M[
MBQTV'0;B?6[F%KA[%9XP((E;;N>3.W!) &,YJ?QOHU[KGAIK;3A$UY%<07,2
M2MM5S'*K[2<'&0I&:R[O3_$D?B.S\56>F6DEU)8&QO-.>\V[1YA=&239@D9.
M00.M &[X<\11>(;6Y;[+-9W=G.UM=6LV"T4@ .,@D$$$$$<$&L+2_$VO77Q%
MUK1I=)<Z?:B#8XFB'DJWF?O#SE@^T8'48YQ6EX2T2^TW^U=0U4PC4-5NS<RQ
M0,62%0JHB!B!N(51DX&2:@BTO6-/^(=_J=O:V]QINJ06\<LC3['MVBW_ ,.T
M[LAAW% #-"\;7'B".XN;3PY?FQ@$RFX,D8\R6-B-B*2"V<?>X&>.U6-.\574
MNOQ:-JVB3Z9<W%N]Q;%IXY5D5"H8$J>&&X''3WJCI?AK6;'X9W>A0W26FK2?
M:_)G1SA#)+(Z'(&1PPY'(_"LKP]X.U&T\7:7J[Z)8Z7!;6DT$XCO&GEF=@F&
M9B!D?*<<D]<T 7=/^)?VZTTO4G\/7]OI%_.ELM[(Z865VVK\F=Q3=QN_IS6Q
M;^*I[_Q#>:=I^CS7%M8W*VMU=>?&GEN5#$A"=Q4!AD_7 .*PH?!VJQ_#/0M
M80?;;*ZMI9?G^7:DX=L''/ I^L>'-7U+Q;:WUKI-EI\\%Y&[:Q!>$236ZG)C
M>,*-Q*_+AB0/6@#3UGQA=Z'))<7?AV[72(IUADOO.CR-S! XCSN*Y(]#CG%2
M:CXMN(M;NM*TC0[K5I[*-)+PQ2QQK%O!*J"Y&YR!G'ICGFN+U[P%K^JC5X)=
M/L;RYN+XW%OJMQ>L6CAWAEB6/;\I &W@@=3R:Z:;3/$>B>+=8U/1;&RU"VU<
M0LRSW1@-O+&FS)^5MRD 'CG(- $</BK7I?B3+HXT:4Z<+&&;#2Q*T8:1@93S
MG&!C;U^7WK8\6WL5E'HQEEOH_.U:VA7[)-Y99F8@!_[R>J]ZI2:7KEKX_@UN
M"UM;JWNM/BLKO]^8S RR,Q=05.X8<X'!XJ[XLT:[UF/1EM-F;35K:[EWMC]V
MC$MCW]J ,N_\?S6]WK4-EX<O[Y-&DQ>31R1HH38KY7<1N;!/RCT]QGIUU:UD
MT$:S&Q:T:U^U*<<E-NX?I7/VOAR_B3QF&\K.KS.]KANQMUC&[T^8&M;0]):T
M\&Z;H]\JL\6GQ6LZJ<@D1A6 /IUH Y3P[I&M>*?#]KXCO?$^JV5]?H+F"&T=
M1;VZ-RB^65(?C&2W)]JUKWQG<K?ZA;:1H%WJT>F$)>312QQA7VABB!CEV ()
M ]0,YK-T2Q\;^&=)B\/6EEI5_;6P\JTU&>[:/;%GY1)$$)) X^4@''45+'I?
MBGP[J.N)HMC87]KJMTUY%+/=&(VTKHJMO7:=RY4$8.>U %]_'$-W'I(T*PFU
M2XU.U:\AC$BQ!(5V@L[-T.6 QSSFJ,7Q(#Z!INJ/H-\&U#4'L(+6-T>0NH?G
MK@?-&R\D8QGI7(:CX>DTC6_#/ARUU&!)].T:0F:XO)+(,6D7<4DC.XDD-E2"
M ,'K6YH-JWB'1_#HTRPM;.VT'7'640W!EBD1$D4R1.1EP6?J><[J .@M?'5N
MEKKCZU83Z5<:+&LMU"[K+F-P2C(RG#9VD8]>*?9>+KJ35;33M2T&YTV:_B>2
MR\V9'$I0;BC;2=C8.<'(X//%9NO>"+O7KWQ<CRQPV^KV%K!;R9R5DB,ARP],
ME?UI/#OAV:PU&&ZD\#Z)I]Q;QO\ Z5;709F?:1B,; 0#D\DC />@"_I/CZSU
MJZTZQM;.?^T+AI5N[5B UB(CAS+Z?-@#US2^-]6U"U72-(TJX^S7VL7HMA<[
M0Q@C"EY'4'@MA<#/K63H'A#7-$\20>(FF@FO=4+C7(0^$4'F,Q<?\L^%_P!H
M'/6MWQCX?O-:MM/NM*GAAU72[I;NU,^?+<@%61\<A64D9'M0!%'IR>#+>[UF
M\\2:M<Z=;VSO<17THF&1@AU. 0>",#@YZ5'9^-;@ZAIL&K>'[S2X-4;R[.>6
M6-PS[2P1PIRC$ X'/I5;4].\4>,-!U+1]6T_3])MKFU:-6CNFN)#+D%6X50$
M!'/4GVIITOQ/XBU#0UURQL;"UTJZ6\ED@NC*US*BLJ[!M&Q<L2<\]![T 7--
M\:S:MJM_;VNA79L]/N9[:ZOFD145X]W"@G<V<#H.-PSWQ2L?B1]JM-)U*;P_
M?VNCZE)%#'?2NF%DDX7* [MF[C=^/0@UH:'HUWHVC^(EN]F;O4+R[CV-G]W(
M25S[X[5Q?AC2O$GB/P!X5TBXM;&'2(Q:W4EZEP2[Q1D.L8CV\.2 "<XXSWQ0
M!UM[X[ECDU.73?#][J.GZ7(T5Y=Q2QIAD&7$:,<OM[].<@9IVH>.XX[W3+/2
M-*N=6GU.R-[:^2ZHI3*_>9B HPV<GV'4UF+HGBO1H-=TC2K.PNK/4[F>XM[R
M:Z,9MO.Y8.FTEMI)(P>>.E:.D>$9]&\1:%+"ZR6&FZ&VG%V.'9]\9!QZ$(30
M!8USQ7J.B07-XWAB\FT^SB$MS<+<1 JNT,VQ=V6VCKTY!QFL[4/%NM1^/M,T
M[3M*>[TVZL'N!MEC0R\Q_."QR NXC'?-9/BKP5KFLWWB%6T^RU)=0CVV%W=7
MC*+%?+VE1%M(SNR01U)YK:NM#UNRUOPYJNGVMM>&RT]["YADN/*V[O+.]3M.
M0"AXH %\56.C-XEN9#J=R\&IQVJ6[R"0R3.D>R.!>-H)8<$]<FKUAXOF;5FT
MK6-&N-+OFMGNH%>9)4G1<;@&4_>&1D'US6)J'@K5K@ZU<VSVR7;:Y!JU@)&.
MQ_*2,;7P,C.UAW[&KT6CZ[KGB2'6M8LK73DL;*>WM;:*Y\YGDEVAG9MH 4!0
M .3R30!'IOQ'-_%HU[+X?O[72M6ECMX+R5TXE<?*"@.[:2" W?Z$&NC\2:_#
MX;T@W\T+SDRQP1Q(0I>1V"J,D@*,GDGI7,Q^$=37P+X1T@B'[5I5W937/S_+
MMB8%\'')]*Z?Q';SW6C2V\.E6FJ+(0LMG=R;$D3OR589Z$9';J* *-WXIGTO
M14N]3T:X@O9KI;2VLHY4D:XD;[NU@< 'G);&-I_&O'XX@M5U5-=L)M*N=,M1
M>2QM(LH>$Y 9&7KRI7'!SCUKF'^'NJW?A;[--#:YM]774++2;BY::&.(+M,!
MD(S@Y<\ @$BKW_"$#5?#NN:=_P (UIGAZ2^M?(CEMYA*[-G(W8084$+W.>>E
M &RGB^_BTB_U/4O#-[8VUM8R7T;/-&_F*B[MAVG*.1V/OSQ5Z?Q/! _AY3;R
M'^VGV1X(_=_NFDY]>%Q6;]F\4>(="U+2-:T^PT^.YT^6U,T-T9F>5UV[@-HV
MI@DX.3TK*M-$\6WM_P"$SJ5EIUK;:))^],5R9&G/DM'O7Y0%'(X.3SVQR :=
MGXSEUNXU2VMM$ODLK&6YM;F_$J($>/</D!.YB<#D#C</?&$OB_6;8^!H=(TZ
M]O[+4[1I&-S<Q&:?$)8*SMCYEX8MP#TKI= T"]TW1->M+CR_-OM0O;B':V1L
ME<E<^AP>:Q5\,:]IFC^!YK.VMKN^T"$Q7%L]QY:ON@\LE7VGH>>G- &G_P )
M)8:5K7BJ[OIK]$TZVM9KB.24/$FY&($2#HQQ@^IQ4UKXQE74H++6=$N=*:Z@
MDGM6DE242",;G4[2=KA3G'/0\\5EZQX(O==D\8QS/#!'K-K:);L&W;9(@Q.X
M8Z;MOU&:=X?\.SV5^ES_ ,(3H6FW4$+[;N&YWDR%<?*!'D*<G))R!V- &WX8
M\277B2WBO?[&FM=/N(1/;7+W$;^8IQ@,JG*M@YQST.2#Q70UP7ASP[J^G^)+
MK5(=)L]$M7M'1["WO#+%<W!8%9-H4*@&",@9.[I78Z4^H2:5;/JL4$-^4!GC
M@8LBMW"D]J +E%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5
M'/;PW4#P7$,<T+C#QR*&5AZ$'K4E% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% $9MX3<K<F&,SJA02[1N"D@D9ZXR!Q[5)110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!5O=,L-214O[&VN
ME4Y59XE< ^V14\44<$2Q0QI'&@PJ(H 4>@ I]% !1110 4444 %%%% "$!@0
M0"#P0>],A@BMH$@@B2**-0J1QJ%50.P Z"I** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBD9E12S$!0,DD\ 4 +17FVE>)-8U;XBZ7<"Z>/0=2M[O[':[1B2.+RPL
MQ.,Y<LQ'^SM]:[C70?[%N2-5_LI54-)>@)F) <L?GRHXR,D'&<T :-%<#X$U
M6XO?$>MVMGKD^N:#;I%Y-[.48K.<[T5U #C&T^V<5!XGU>9/':Z7JOB&\\/Z
M5):(UC/;[$2XG+'>'D=6 (&W"\9S0!Z+17.WWB%M&?3])CM[K6M7FM_,V6XC
M0NB8#2N6*J@)([]3@"L'6_$PU>P\.75@UU:-_P )'#9W4#G9(C+O#QOM)![=
MR#Q0!Z!17FG]KO;6GBZ:[U#4HXH?$4,$;6K@R(&%N J[^ I+<CT)K?U'QREI
MK.HZ59Z'JFI7>GHDEP+9$VJC+N!W,P!..-O4X.!0!UE%<O)XWLY;72'TJQN]
M3GU:!KFVMX-B-Y2@%F<NP5<;@.O4XJ[X6\1IXHTEM0CL+JR03/"$N=FXE#M;
MA6;&&!'.#QZ8H VZ*Y9?&9BU2RM;_0=4L+:_G^SVUW<"/:\F"0"JN67(4XR/
MRJI>_$:WM9-6\G0]6NX=(F:._GAC39$J@$L"S#=P<X&2 ,G'&0#M**Q;+Q-8
MWVNS:5&)%D2SBOHY6 "30N2-R\YX(P<@=14$/BZTN?!%SXJB@F6SB@FN$60
M-(D>[!&">&VY'L10!T-%<-H6C^)=4TNQUR\\5WD%_<HEP;2*&(VL:-AO*V%=
MQX.-V[.>:LWWC^&VDU&2UT74[_3],D:*]O;=8]D3+]\ ,P9]O?:#B@#L**YF
M_P#&4$5S;VVEZ=>:Q/-9B_VVA0!8"<*Y+LH.>< 9)P:HI\1[.33-$O$T?5'?
M6O,^QV\:QO(^T9YP^!D>IXP<XQ0!VE%<K;^.]/.BZI?W]K=V$NERB"[M)E5I
M5<[=@7:2&W;EQ@\YJ2T\7O->36%WH6HV6HBU>[M[64Q,;E%P"$97*[@2 5)'
M44 =-17-:1XWTO7;K3;?34GG>]M6NGPH'V5%.W$O/#;\K@9Y4]AFJ.O7^IZK
MXUMO"FF:A)IL*V1O[V[A56E*%]B1H6!"DD$DX/ H [.BN5DNY/!&F.^IZK?Z
MR)[A(+&%X4-P\C=(P5VALX)R0, ')I]CXSBFN;^RU#2[W3=0L[4WC6MQL8R0
MC/S(R,5/(P>>": .GHKBH?B1:2>&9_$<NCZI!I,:0O'/)&@,P=PAVJ&SP6[C
MD=,\5=L/&L,^L+INH:5?Z3)-;O<VSWH0+-&F-Q^5CM(!!*M@@4 =117&0?$2
MVE6RNY=&U.WT:^F6&VU.54$3ECA"5#;U5CC#%1U'3-7%\9QS>*[KP_9Z1J-U
M/9S1QW4\:H(H5=58.6+#(^;H,GY3QZ@'3T5RS^,S;:G:6]]H.J6=I>7(M(+R
M81[&D.=H*ARZAL<$CTZ53T'Q9JVI^-M=T>XT6[CM+2:-(YLQ8@!BW9?#DG<>
M5P#@$9QS0!VM%<+I'C*UMO"N@?9DU;6+W4UD^RPR^6;F4*3N9VRJ*!QSGN.M
M73\0-/AT+5]1O+*]M9M'94O;*55\V/=C:1ABK @Y!!YP: .MHKFM+\8QZAKL
M>E7.D:CILUQ UQ:-=H@%PBD!L!6)4C<#M8 X-2ZQXH_L[6(M(L]*O-3OWMS=
M-%;-&NR(-MW$R,H))X '- '045SNI>*_LFHQZ98Z1?:EJ#6XNI+> QH88R<
MNSL "2"  23@U7?QYISZ1IEY96EY>7&IR/%:V,:*LQ=,^8&W$!=FT[B3@>]
M'545ST?BQ!-I-O>:7?V5SJ5S);+#.JYC9$9R20Q!4A>"I/6H]2\:V&F#Q$9;
M>Y;^PH8IKC:%^<2*6 3GK@=\4 =+17%7?B@7]MI-S+:ZUI<$^K6\-LP$:FZ5
MP2NY221&>X.&Z4>'_%FK:KXQUW2+G1;N&UM)TCCGS%B &(-\^').X\C . 1G
M'- ':T5P^C>,;:+PMX?^QQ:MK%[J<+/;12F/[0ZJ?F>1LJB@9 SGN!S5P^/;
M$:1]J^P7OVW[>--.G$()A<GD(3NV8Q\V[=C'Y4 =915/3+R>^LEFN=/N+"7)
M5H)RA9<'KE"00>Q!KEF^)%FMN=2_LC4CH F\DZN%C\G[VS?MW;]F[C=MH [6
MBO-[R]O-4^,*:=<:?JYLK*SBEA$%VL40<RM^_<+("ZD*%P03P?EYK4UOQ;JV
MF^/].T6VT2ZN[2>UEE8Q&(&0@I\REG& NX@YP3D8S0!VE%>:6WB^ZT;Q+XS5
MM,U;5(+2[25_L^TI;0BWC)QO8 G.X[5R>IKJ+SQA:Q_V;'IEG<ZK=ZE;_:K>
M"VV*?)P#YC,[*%7YE')R2<4 ='167H&NV_B#3WN8(IH'BF>WGMYU DAE0X9&
MP2,].A(((JCH'BO_ (2)A-:Z/?)IL@?R+]S'LEVMM/RARZY(.,J,X[4 =%17
M+V_C,MJ]A8W^@ZGIJ:@[1VD]SY6UW"EMK!7+(2 2 1VK.N/B=8V\=[=-H^JM
MIUA>/9WM\(T\N!EDV9QNW,,X/R@X!&>>* .YHKFM)\8Q:EK8TJXTK4--FEMS
M=6S7BJHGB! )&&)4C(^5L'!Z55M_B#:3M:W/]E:@FC7EP+:WU1@GE.[-M4[=
MV\*S<!BN.1ZT =?161X@\0V_A^VMWD@GNKBZF%O:VMN 9)I""<#)   !))(
M KFM?UN^NX_#4C66H:3*?$,%O/!,P!=?+<GE&*NAX[XR/44 =Y17+:OXS.BS
M227F@ZHNEPS+#+J.(_+4LP4-MW[RF2.=OYU._BO?XBN=)LM(OKW[')%'>7$1
MC"0-( PX9PS8!!.T' ]>E '145SMMXK^W:Y<V%EI%]<6UK<_9+B^0QB..7 )
M&TN'(&X9(6K'B'Q)#H/V*$6ES?7U]*8K6TM@N^0@;F.6( 4 9))XH VJ*\ST
MSQH;/4?'6M:C;:E%;:>+0FQFQYD1\LA@HW;>3SD'!ZUW%YKEO9:[I6DR1RM-
MJ2S-$Z@;5\M0QW<YYW#&* -2BN%7QW!KN@ZO<VNFZS;6%M:7)DU%%C4H\88$
M1Y8Y;C(.-N>">M6G\:0V!TG2[?3]4U2^O-.6Z@"*A=U&T$NQ8*IYR2<#TY(%
M '845RB>/;"708-1CL;UKF>].GII^U1.+D$AHSEMHQM))SC JWX<\4-K]YJ5
MH^D7NGS:=(L4XN6B(WE0V!L=L\$'/0YH Z"BN*\/>+=6U7Q?KVE7.BW45K:3
MI'',3%B$&(-\^'))8\C:#PPSCG&'X"\=O#X/\-1ZGI^JO#=;+3^U9MIC:=B0
MH.6WD$\;L8SWH ]1HKEM2\;1V5YJ$-IH^HZE%I@!OY[41[8#MW;1N8%V"D$A
M0<9'?BM+4/$FG:=X7?Q$\C2:>MNMPK1+DNK ;<#U.1UQUH UZ*X[7O$$W_"&
MZC>:C8ZQHGDM$-T,D+3$-(H!1@S+WP<\XS5K4_'6F:/>:K:7\5Q%<6,,<\<>
MT$W:N=J^2,_,=_R8..2.W- '3T5CZ[XAM_#OAN36]0MYUAB$9DB0!G7>RKC@
MX."W.#VXS6'_ ,+"_P")E_9C>&=:34I8A/:6K1Q[IX\X+9W[4QW#D$9'<XH
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
MDCW[U9&(P&!SP>H-=C10!P>L6/BG7K6PU-M(M+2\TK4([NVL6NP[3H%975G
MVJQ#\8R!CD\THT;7-<US4-<U#3DTXC2)=.M+0W"RN[.=S.S+\H&0H R>Y.*[
MNB@#S7Q987>E? >#3IE1+VUM+"!U)RHD62)2,CJ,CM5JZT/7O%VO6L^LZ=%I
M-K8V5U;@I<K,TTLZ",E<8P@4$\X))'%=U=V=M?VS6UY;Q7$#$%HY4#*<$$9!
M]" ?PJ:@#S,:'XIU3PMI7@^_TFWM;6T:V2YU);I722*!E8>6@^8,VQ>H &37
M4Z#I%Y8^*?%%].BK!J%S!);L&!+!8$0Y';D&NCHH \BB\'>);BXT=M0TQYM0
ML]6BNKO5)M3+K-&LN?W<6<*-N."%QC SFNPT[3]7TSX@ZW<_V>LVF:L8)!=K
M.H\DQP["K(>3DJ,8]:ZVB@#S#1_"OB'P[I_A34+>PBN[W3+2>SO+'[0J%DD<
M,&1S\N05'!/(-/U/PEKVLZ%XOO)K2*WU/7!;I!9"<-Y4<.,;GZ;CEB<<#@9-
M>F44 <YJND7EUXZ\.ZI$BFTLH+M)V+ %3((PO'4_=-9?CO1[W5G1;/P\UU=1
MP'['J<%^+:6UE.>IX;;]T\;L\\5V]% 'F>I>#M2C\00ZO=Z6OB$SZ=!;72Q7
M?V=TGCSF1<E05;<>,Y&*MS>&]1TX>&M7T708(9M,>Y$VDK=CYDG^\5E;@N"
MW/')&>]>@T4 </K=IXDU.+0M;31X5O\ 3+]ISIPNU+/"T;1G]Y@+O^;..GO6
M1>^&?$NKZ=XZENM/M[>YUNU@CM($N ^-B,NUFX&>1GMSQG&:]/HH YGQ1HU[
MJD'A];6-6-EJMM=398#$:9W'GKUZ5!I>GZOI?C_7)SIZRZ9JSPS"[6=1Y)2$
M(59#R22HQCCFNL)"@DD #J32]: /)+?P!JEGHOA*>XTI-1GTRRDL[RP%WY3$
M.P8,C@A201R"<$'VK?\ [ 1/"T]L/ L+I=78>>P-^K2$!1B7>>-X( P&X'.[
MM7>9 ZFB@#FO!>F:KI_AZ6UU=Y=SW$K6\,MQY\EO 3\D;2?Q$#///7&3BN17
MPWXJ/@4> 6TNW%MC[*=7^U+L^S[\[O+^]OV\8Z9YS7J=% '-6VC7</Q$NM6\
ML?87TF&T1]PR7661B,=>C#FJ_B+3]7C\8Z)KNF:>M_';P7%K/#YZQ,HD*$."
MW! V'(Z_6NMHH Y"TT#4(IO&K/$H&JR[K7YQ\P^SJG/I\P(YKG)O ^H01^&+
MZ72%U1[+1H]-O+%;OR71E"D.C9"M@A@02.H(KU*B@#"\*Z:FF:3(D>BII+2S
M-*UNMQYQ)( W,WJ0!W/3K7+Z3H&N1^)Q?6&D#PY \,_VV-;T307,S#Y&2,<
MAOF+84D<8YKT6B@#R?2?"/B ZKX9NK[29$NM/NO,U"_N-4,YN#Y;J61"2 I)
M!QP1D #&:T[KPEJ\OP[\4:.D"&]U#4;JXMT\P89'GWJ2>@^6O1<CUZ44 <QJ
MNAW5]XXTG4%0?8H;"[MYG# %6D,>W Z_PM^5<EX<\$3:5!I^E:AX0BO&M)44
MZD-1Q$ZJV5D\LG<&  .W;C(ZUZI10!RWC#2=2NKK1-8TB".ZN])NVF^RR2"/
MSHWC9& 8\!L-D9XXJIJ=EK_B&+0I[G2H[%[/6XKIH/M*R,L"HP+,1QNW-T&>
M,<UVE% 'D7B3P=XEUB/6[:;3'OKJXO#+:7\FIE88[?>K+&L.>& &.1@G)S6Y
MXET+5]0\2+=:3HGV'4$GAVZW#?!5>%2"RRQC!?C<H4@CIR*]!HH \^O]"U>Y
M\:6^H:=HG]ES+>HUUJ<5\/+N[93RKQ#EF9<#E?E/\7%:WBS2]4?7- U_2;1+
MV;2WF62T,HC,D<J!259N-P*@X/7FNKHH \TG\)>(==L?''V^VMK&?7((!:HL
MWF!"B$!6('7A<D#')QG%:$%IXGUGQEX>U;4M%ATZUTZ*X21?M:RN7D0#/R\;
M<@8[]<XKNZ"<#)Z4 </I?AO4[7X3ZAH$L*#4)H+]$0.""97E*<].0Z_2I])\
M/ZC:>*M&OYHE%O:^'_L,K!P2)M\9QCN,*>:[&B@#Q[Q!H^I6"6FGMLCN]0\5
MW-]:C[3Y.4V.RMYH!\LCKC!)Z8Y-=3X!N$@U#6]&FL3%J4$D=S=W(OC>"=I
M0"9"JD, F-NT8&,5UVH:98:M:FUU&RM[RW)R8KB)9%SZX(Q2:=I6GZ1;?9M-
ML;:S@SN\NWB6-<^N .M '.:9I^KZ9X\UZ8Z>LNF:L\4RW:SJ/**0A"K(>225
M&".,&LBW\):O'\,O#6B- GVZPN[.6=/,&%6.8,V#T. *]%HH \QN_!L]GXCU
MN=_#(URUU*X^U12I?^0T1955D=2P!&5R",\'I7:75CY'A 6%OHEM<JELD/\
M9C2@1E, &,,PP0!G&1S@=,UM44 >6-X0U^?PAXBTV"SDM+2ZDMCIVF7%Z)C;
MA'5I/GR0JG&0N3C';-7_ !9X3USQ%X@;6H5A@GT0(VBQN5(N),AY#)Z*<! .
MW+<5Z)10!S'C/3-0\0^!I[*VM@E].;=S"TB_*5E1V&[IP ?KBI)](O'^(UEK
M*HOV*+2IK9WW#(D:6-@,=>BGFNCH!!&0<T >:?\ "(Z[:VJ7UM;PR7]EXCNM
M3AMGF"BX@D+C&[D*Q5LC/0CFKS:'KFNZIK&MWVGII\DFC2:99V9G61V+DL7=
ME^4<[0!D]R:[VB@#B)O#>I/H'@:T$2>=I-S:R78WCY%2!D;![_,1TIECH^MV
M5SXNTXZ<KV>JS3W=O>K<*!EXE01E.H.5Z]*[D,&&5((]12D@=30!PS^&M3;P
MOX&L1"GVC2;FSDNUWC"+'"RO@]^2.E5SH6KR>-[?4;#1/[&(O"]_>17P:&]A
M 8 &(=7/RG)4$<\FO0<C.,T4 <YX@TB\U#Q+X7O;=%:#3[N66X)8 JK0N@P.
M_+"L>*S\2^&=9UXZ5HT6J6NJ77VV"4W:Q>3(R*K+(&Y*Y4$%<G':N[HH X'1
MO!=]HEUX)B5DGATBUNTNY@V!OE"GY0>2-V[\*H67A+7])T?PU>V]I#<:EHU[
M?2R633A1+%/))]U^@8*RD9XZBO3:* .'M?#=_K^J:[JFOV26*:CIRZ9%9B42
MNL0WEF=E^7<2_ !. .M<K'X)\8Q^&%U/RX#XMAND$1$PVF!;?[/][IR"9/K7
ML5% '&KX3GL-3\$1V4:M9:)%-%,^X \P; <=\M_.LN?PCK#_  KUO0E@3^T+
MNZN98D\P8*O<%UYZ#Y3FO1@01D<BB@#Q_6[.[U;QUXL-L$ELXHK>"\B;538!
MU\K<4;"-O&&/S';]XC.!7=V,T7BSX;JVGVYLHM1TUHX(I/\ ED&0J!QV'KZ5
MHZAX:T+5KI;K4=%TZ\N% "RW%LDC #IR1FM-55$"JH55&  , "@#S^/1M?U#
MPSX5L[K2EM+C2-1LVF4W*.'BB3#2 CWZ#K5G7_"-YKFO^("2L5IJ.@I81S;@
M<2[Y3R.N!N4UW% ((R#D4 >>>&/#<EMJ&FF^\&1VL]H,O?\ ]I>:BN$(W1ID
MDY/J%P"?3F7QK/J%M\0/!\VF6<=Y<+'?$P/+Y>]=D>0K'@-Z9X^G6N^J&2SM
MIKJ&ZDMXGN( PBE9 6C#8W;3U&<#..N* /.;OPAKVLZ)XJOI[>"TU75[FVGM
M[,S!U1;<H45W'&YMASC@9'-:EC9>(]3\>6>NZEI$6G6<.FSVHB^U++('9XVR
MVWC!VG&,].<9Q7<44 >?0^#=3G^"]MX7D,4&J16T> S;D$J2"102.Q*@$CUJ
M?6X_%'BGP;K>F3^'XM/EGLFBA5KU)#)*>PQP%]R<\]!7=44 <QJ>C7MSXI\*
M7T4:F#3OM'VABP!7?#M7 [\^E<3!X.\2W%QHK:AICS:A9:M%=7FJ3:F76>-9
M"?W<6<*-I'!"XQ@9S7KM% 'GUWH6KS^-K?4-.T3^R9%O0UYJ,5\#%>6RY&UX
MARSL,=5^4_Q'%9,'@:;3I-0L+GPE'K4$]W+-#=_VEY2&.1RVV1"<@C)'"G->
MKT4 8>FZS+>>)M4TJ&T46.FQQ)]I5NLS#<8\8_A78?\ @0K%DLO$'A[Q=K>I
M:9HZ:M::OY,F%NDA>"6- A#;NJD '(R1SQ7:*BIG:H7)R<#&3ZTZ@#SW2_!F
MJ::GA!9#%-+8W]U>7[QMA4:9)3A0>2 S@?K6I\4?^28>(?\ KT;^8KKJAN[2
MVO[62UNX(KBWE7;)%*@97'H0>#0!Q4-AXCU_Q+H%UJVEP:?:Z.9)GDCN1+]I
ME:,HNP 95>2?FP>@]ZPKGPUXN7P9=>$(-(MGMUO3,E^UVH$L1N?. "=0_.#G
M X.">*]8  &!P** .<TK2+RT\<^(]4E11:WT-HD#!@2QC5PV1V^\*R/#=GXF
M\,E]"CT:"ZL/M\DL6HF[50(9)"YW)C<7&XC X/'(KNJ* . ?PMJI\#>,]+$*
M?:]4N[Z6U7S!AEE^YD]!GWZ5!K7AW7;G5\2Z?)JFGMI\4%M$NI&VCM9AD.TB
M@C>#E>0&(QC%>C44 >9-X7U"'P/X?TBZ\,_VA>6-F$6XM]06":TFQC*OD''3
ME2>G0UKZ3X?UV#Q%H5_JDJ74EKH<EG=W(8?-.SQGIU/W6YQV]Z[:B@#SJW\)
M:O'\,O#6B- GVZPN[.6=/,&%6.8,V#T. *Y2[262Y\7:Q+;QWVB6^J2R75LV
MK&T$IA"C!A",&(*8Y9=^!D=*]PK*N/#&@7>H_P!H7.B:;->Y!^T26J-)D=#N
M(SF@"]972WUA;W:(Z+/$LH5QAE# '!'8\U/110 4444 %%%% !1110 4444
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
M2Q+QE5@C!"!58JI0$ A2 " >Q%<]'X/UY/#'B;PX9=.-GJ'VM[*?>XD#3,S
M2+MP -QY!.?2@"SH?BO4DO\ 0M+U30OL5OJ=NPLIA="1]T<>XB1 ,(2H)&&;
MIBJDGQ,*V\FKIIULV@1W)@:X-\!<%1)Y9E$.W[F[_:SCG%;MYX=NKC5_"MVD
ML(31VD,X).7W0-&-O'J<\XXKG-*\!7VB$V$&C^%[ZQ6X>2*\O(C]I2-G+;64
M(0Y&2 =PZ#B@#L?$VNQ^&O#E[K$D#3K;(&\M6V[B2%&3V&2,GL,FN=\0:Q='
MP+=7VM:;"(Q/;",:;J;%95::,!A*$4C!;D8P<=>:ZO5DO9-,F33DM)+E@ J7
MF[RG&1N#8R>1D=#]#7!I\/M3;PYKMDO]FV#:E=VMQ%8VCN;:V$4B,Q4E0<MM
M.<*!G'UH U]9\?+H>JWVE76F.;\+&VEPI+G^T=YVX4X^4JW#=<#GFMW7M8?0
M?"U_K$MLLLEG:O.T"R8#%5R5#8_7'X5S/B#P3JFO:Q=:TVH10:C9%/["VLQ2
MWVX9C(,<F0_*P .% ZUT'B72KO7O!FI:4K0Q7EY9O#DL3&KLN.N,XSWQ^% '
M/-X[UN/4=/LY/";*^K1.^F@7JDDJ 2)OEQ'\IW<%O3DU/'\0#%H-_<WVE/'J
MEGJ TPV$,P?S;AMNP(Y ^5@X.2!CGCBM&Y\/74VO^%[]981%I,<Z3*2<N7C"
M#;QZCOBL>^\"7UU'K<D5Y;Q7<^LQ:M8.065'C2, 2#C@E&!QG@Y]J -/3O%&
MHCQ%#H>O:1%87-U \]I);W7GQRA"-Z$E5(8;@>A!'>L;3?B/J-YINCZS<>&_
MLVC:C/%;>>;P-(CNVT-LV\INXSD'OBM6QT/7+_Q1::[XA;3XFL+>6&TMK%WD
M&Z3;O=F95[*  !^-48/!&H1?#O0_#IN+8W6GW-M-)("VQA',';'&<X'&1UH
M70]=\2W7Q&\0:9<6-NVFVS0 '[7S C(Y#*/+^8O@$@D;?4USO@OQ7J6@^!M,
MGFT+=HBWCV\MZ;H"0&2Y90ZQX.4#, <L#UXQU[2WT35[#Q[J&K6K6,FF:G'
M+@2NZS1-$K*-@ *L#D=2,5ECP1J ^%\7A?[1;?;$N4E,F6\O NA-Z9SM&.G7
M\Z -(>*KZZ\7WNB:=IMM*FGO$MT\U[Y4N'4-NCCV'<H!ZDC)! JK\5[N_LOA
MOK$EA&K,T)25_.,9CC/!88!R>@QQU//%1>)O"VL>(=9@?R-&@CM[F*6#5$:0
M7L**P9D VX.<$?>Q@]*W/&>B7'B3P?J>CVLD4<]W%L1Y20H.0>< GMZ4 8%E
MJ5QX?%AX:T7PM8P:K-"]W+9Q7FRWMX@P0.TGEY)8XX"]<YZ9K-\3>(FU[P=/
M'<6;6.H6&MV5M=VQD#A6\^)@58 ;E(8$' ^E='K6A:PGBFV\1Z"]B]TMF;&X
MMKUG1)(]^]2KJ&*L#GL<@]JRY/ NIW.AWXN;NT;5]1U6WU"Y9-PB18GC(C3C
M)PD> 2.2>U $2:Y;^&_%'Q!U:Z61XK<V.(XQEG8PA54>Y8@?C6K!XKUBVUFQ
MTW7-!ALI-223[$\-[YRF1%W>7(=B[3@'D9'%5M7\"W&KR^+=]Y'"NKFTDM74
M%FB>!1@L.F-RCH>E3P:'XBU;Q#I.H^(VTN&'2B\D,-@\C^=*R%-S%U&T $X4
M9Y/6@"G)\3[2+1/#.HR6#@ZS<B":/S/^/3#;)&8XY"N57MU[=*/$WBB":WUJ
MUEL)I;73+ZQMS+#=M"9)9'0D J,@)O0D9.<XXJFWPRN)K_Q.)[N V%_#.FFQ
MC.ZV><K)(QXP/WB*1C-6T\#ZH_@)M*N;NUDUBYU%-0O+@%A&[BX61L<9^ZH4
M<=ATH NWWB_6/^$@U?2-&\.K?2:8D4DDLMX(48.FX*/E)W=0!TXR2.E(OCF7
M4K;01H6FI<W>L6CWB)=7'DI#&FW=N8*Q)RX  'J>*T]-T*XL_%/B+5))(C#J
M:VXB52=R^7&5.[C'4\8S7E^JZ$=&N/".@ZIJ>F6C6&E3 W-])(ELSET&(V5X
MVWX'.2/E[<T >G^#O$-UXFT1M1N]/CL6%Q+"(DN/._U;%&).U?XE;IG@ YYK
MGO#FN^)M2U?Q3:ZE96XL[:Y>,.MWN-O^Y5@BKY8W@YSDD8W'TK4^'6H?;O#+
MQQV=G;VUG<R6UN]B&$%Q&N#YD>[G!)(SDY()R:6PT#6-.\2Z]+&]C)I.K2?:
M"S.XGCD\I4V[=NTKE0<YS[4 <MX&\5ZEI7@[PC'>:%Y>DW8@L([O[4#)YC#"
ML8\?<)&,[L]\5N:G\0)[>XU=M.TRVNK+2':.ZDFOQ#+(RJ&<11[3NV@]RN3P
M*='X,OT\%>%M%-Q;?:-(NK.>9\ML<0L"P7C.3VR!^%4Y? ]]8ZUJMQ8Z3X;U
M.VU&Z:[#ZHA$L#L!N (1MZY&0,KC)H [*36;9?#CZY&LDMJ+0WBA%^9TV;Q@
M>I%96@>(=7UG17U,Z1:&*2W$]HMIJ F,I(SY;$JH5NG<CGVK;>*YBTDPV8MD
MNDAVQ!D(A5P, 8'(7/8=JX)/ 6L7"^(90^FZ'+J=A]E6'2G=HS+DDS/E4PQ'
MR\#.">30!NZ3XKOYO%"Z#J^F6MI<36SW,+VM[]H4A&4,C912K#<#W!KF/"'B
M<Z'\.O"5C;V\5SJ.HI*L"33B&-51F+N[X. ,CH"22*T_#O@J_P!.\5V&L2Z?
MH&FP6UE+:M;Z6K9=F*$.6*+N^Z>"./4YXJ)\.;Z#P]X8C TJ\U'1%F1H+Q"U
MM<)*?F&=I*D84@[3R.E '5>&/$IU_P#M"WGMH[:_T^80W$<4XFC.Y0RLC@#*
MD'N 001BN@KE;/3-=L/#]XNFZ?X<TW5))%,,=NCFWV@KG>0JEFQNQ@#M754
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% "!5
M#%@HW'@G')I:** "BBB@!CQ1R,K/&K%3E2PSCZ4^BB@ HHHH **** "BBB@!
M&574JRAE/4$9I:** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ I
MCQ1RX\R-7VG(W#.*?10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !39(XY5VR(KKZ,,BG44    P!@"BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH S]<OY-+T6ZO85
M1I(4W*'Z'GOBO/O^%F:K_P ^=E_WRW_Q5=OXN_Y%34?^N7]17BBJ7<*HRS'
M'J:]#"4H3@W)'%B:DHR2BSM/^%F:K_SYV7_?+?\ Q5'_  LS5?\ GSLO^^6_
M^*KF[S0=3L(&FNK4QQJ<,2RG!SCL:SJZE0HO5)'.ZU5;L[7_ (69JO\ SYV7
M_?+?_%4?\+,U7_GSLO\ OEO_ (JN;.A:F++[6;-_)V>9G(SM_O;>N/?%9U"H
M47LD#K55NSM?^%F:K_SYV7_?+?\ Q5'_  LS5?\ GSLO^^6_^*KBJ*?U:E_*
M'MZG<[7_ (69JO\ SYV7_?+?_%4?\+,U7_GSLO\ OEO_ (JN*J>SL[B_N5M[
M6(R2L"0H] ,FAX>BM6@]M4?4Z[_A9FJ_\^=E_P!\M_\ %4?\+,U7_GSLO^^6
M_P#BJY6]TN^TX(;NV>)7^ZQY#?0CBK'_  CVK&V%P+&1HS&) 5P3M(SG .<8
MJ?8T-[(?M:W=G1?\+,U7_GSLO^^6_P#BJ/\ A9FJ_P#/G9?]\M_\57*V.FWF
MI-(+2 RF,;GP0,#IWIEY8W.GRB*ZC\MRNX#<#Q^'TI^PHWM9![:K:]SK?^%F
M:K_SYV7_ 'RW_P 51_PLS5?^?.R_[Y;_ .*KC$1I'5$4L['"JHR2?2K]WH6I
MV-N9[FS=(EP&;(.W/3< >/QH="BM&D"K57LSI/\ A9FJ_P#/G9?]\M_\51_P
MLS5?^?.R_P"^6_\ BJY">UFMEA::,H)D$D9/\2Y(S^AJS::+J-];_:+:V+Q;
MBN[< ,CMR?>AT**5VD"JU7HF=-_PLS5?^?.R_P"^6_\ BJ/^%F:K_P ^=E_W
MRW_Q5<=-!)!.T$BXD5MI7KS^%27MA=:=<FWO(6AE !VMZ&CZO1["]M5[G6_\
M+,U7_GSLO^^6_P#BJ/\ A9FJ_P#/G9?]\M_\57.Q>']6GMDN(K*1XW7>NW!+
M#U SFLU49G"*I+$X [YH5"B]DANM56[.T_X69JO_ #YV7_?+?_%4?\+,U7_G
MSLO^^6_^*KDKVRN=.NFMKN%HIEP2K>XR*6YT^[M(()KB!XXKA=T3'HX]OSH]
MA1[(7MJO<ZS_ (69JO\ SYV7_?+?_%4?\+,U7_GSLO\ OEO_ (JN0GM9[:58
MIHV5V565>Y##(_,&KEQH&JVMLUQ-92)&HRV<94>I'4?C1["@NB'[6KW.C_X6
M9JO_ #YV7_?+?_%4?\+,U7_GSLO^^6_^*KF[;0=3N[:.YAM2T,F=C%E&<'!Z
MGU%4'1HW9&&&4X(]Z%0HO1) ZU5;L[/_ (69JO\ SYV7_?+?_%4?\+,U7_GS
MLO\ OEO_ (JN3M+"[O\ SOLL#2^2ADDV_P *CO4=M;37ES';V\9DED.%4=2:
M/84>PO;5>YV'_"S-5_Y\[+_OEO\ XJC_ (69JO\ SYV7_?+?_%5R:Z?=M?-9
M"!_M*E@T9X(V@D_H#3['2K[4ED:T@,JQX#G( &<XZGV-#H45JTA^UJOJ=3_P
MLS5?^?.R_P"^6_\ BJ/^%F:K_P ^=E_WRW_Q5<E>6%WI\PBN[>2%R,@.,9'J
M/6F6UM->7,=O;QF260X51U)H^KT;7L+VU6]KG8?\+,U7_GSLO^^6_P#BJ/\
MA9FJ_P#/G9?]\M_\57,7FCZAI\2RW5J\<;':'X*Y],CO3[;0=3N[9+F"U+0R
M9VL649P<'J?6E[&A:]D/VM:]KLZ3_A9FJ_\ /G9?]\M_\51_PLS5?^?.R_[Y
M;_XJN6M-*O;Z:6*V@,CP_P"L (&WG'4GUJ.\L+K3YA%=P/"Y&X!AU'J/44_8
M4;VL@]M5M>YUO_"S-5_Y\[+_ +Y;_P"*H_X69JO_ #YV7_?+?_%5ST7AS5YH
M%FCL9"K+N49 9AZA<Y/Y53M+&ZOKG[/;0M)-@DKTP!UZTO8T.R#VM7NSK?\
MA9FJ_P#/G9?]\M_\51_PLS5?^?.R_P"^6_\ BJY:\TJ^T]HQ=6SQ^9]PGD-]
M".*M_P#"+ZSMW?8CMSC/F+C/YT>QH;V0>TK>9O?\+,U7_GSLO^^6_P#BJ/\
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
ML>9_\*QOO^@A;_\ ?+4?\*QOO^@A;_\ ?+5Z911]<J]P^K4^QYG_ ,*QOO\
MH(6__?+4?\*QOO\ H(6__?+5Z911]<J]P^K4^QYG_P *QOO^@A;_ /?+4?\
M"L;[_H(6_P#WRU>F44?7*O</JU/L>9_\*QOO^@A;_P#?+4?\*QOO^@A;_P#?
M+5Z911]<J]P^K4^QYG_PK&^_Z"%O_P!\M1_PK&^_Z"%O_P!\M7IE%'URKW#Z
MM3['F?\ PK&^_P"@A;_]\M1_PK&^_P"@A;_]\M7IE%'URKW#ZM3['F?_  K&
M^_Z"%O\ ]\M1_P *QOO^@A;_ /?+5Z911]<J]P^K4^QYG_PK&^_Z"%O_ -\M
M1_PK&^_Z"%O_ -\M7IE%'URKW#ZM3['F?_"L;[_H(6__ 'RU'_"L;[_H(6__
M 'RU>F44?7*O</JU/L>9_P#"L;[_ *"%O_WRU'_"L;[_ *"%O_WRU>F44?7*
MO</JU/L>9_\ "L;[_H(6_P#WRU'_  K&^_Z"%O\ ]\M7IE%'URKW#ZM3['F?
M_"L;[_H(6_\ WRU'_"L;[_H(6_\ WRU>F44?7*O</JU/L>9_\*QOO^@A;_\
M?+4?\*QOO^@A;_\ ?+5Z911]<J]P^K4^QYG_ ,*QOO\ H(6__?+4?\*QOO\
MH(6__?+5Z911]<J]P^K4^QYG_P *QOO^@A;_ /?+4?\ "L;[_H(6_P#WRU>F
M44?7*O</JU/L>9_\*QOO^@A;_P#?+4?\*QOO^@A;_P#?+5Z911]<J]P^K4^Q
MYG_PK&^_Z"%O_P!\M1_PK&^_Z"%O_P!\M7IE%'URKW#ZM3['F?\ PK&^_P"@
MA;_]\M1_PK&^_P"@A;_]\M7IE%'URKW#ZM3['F?_  K&^_Z"%O\ ]\M1_P *
MQOO^@A;_ /?+5Z911]<J]P^K4^QYG_PK&^_Z"%O_ -\M1_PK&^_Z"%O_ -\M
M7IE%'URKW#ZM3['F?_"L;[_H(6__ 'RU'_"L;[_H(6__ 'RU>F44?7*O</JU
M/L>9_P#"L;[_ *"%O_WRU'_"L;[_ *"%O_WRU>F44?7*O</JU/L>9_\ "L;[
M_H(6_P#WRU'_  K&^_Z"%O\ ]\M7IE%'URKW#ZM3['F?_"L;[_H(6_\ WRU'
M_"L;[_H(6_\ WRU>F44?7*O</JU/L>9_\*QOO^@A;_\ ?+4?\*QOO^@A;_\
M?+5Z911]<J]P^K4^QYG_ ,*QOO\ H(6__?+4?\*QOO\ H(6__?+5Z911]<J]
MP^K4^QYG_P *QOO^@A;_ /?+4?\ "L;[_H(6_P#WRU>F44?7*O</JU/L>9_\
M*QOO^@A;_P#?+4?\*QOO^@A;_P#?+5Z911]<J]P^K4^QYG_PK&^_Z"%O_P!\
MM1_PK&^_Z"%O_P!\M7IE%'URKW#ZM3['F?\ PK&^_P"@A;_]\M1_PK&^_P"@
MA;_]\M7IE%'URKW#ZM3['F?_  K&^_Z"%O\ ]\M1_P *QOO^@A;_ /?+5Z91
M1]<J]P^K4^QYG_PK&^_Z"%O_ -\M1_PK&^_Z"%O_ -\M7IE%'URKW#ZM3['F
M?_"L;[_H(6__ 'RU'_"L;[_H(6__ 'RU>F44?7*O</JU/L>9_P#"L;[_ *"%
MO_WRU'_"L;[_ *"%O_WRU>F44?7*O</JU/L>9_\ "L;[_H(6_P#WRU'_  K&
M^_Z"%O\ ]\M7IE%'URKW#ZM3['F?_"L;[_H(6_\ WRU'_"L;[_H(6_\ WRU>
MF44?7*O</JU/L>9_\*QOO^@A;_\ ?+4?\*QOO^@A;_\ ?+5Z911]<J]P^K4^
MQYG_ ,*QOO\ H(6__?+4?\*QOO\ H(6__?+5Z911]<J]P^K4^QYG_P *QOO^
M@A;_ /?+4?\ "L;[_H(6_P#WRU>F44?7*O</JU/L>9_\*QOO^@A;_P#?+4?\
M*QOO^@A;_P#?+5Z911]<J]P^K4^QYG_PK&^_Z"%O_P!\M1_PK&^_Z"%O_P!\
MM7IE%'URKW#ZM3['F?\ PK&^_P"@A;_]\M1_PK&^_P"@A;_]\M7IE%'URKW#
MZM3['F?_  K&^_Z"%O\ ]\M1_P *QOO^@A;_ /?+5Z911]<J]P^K4^QYG_PK
M&^_Z"%O_ -\M1_PK&^_Z"%O_ -\M7IE%'URKW#ZM3['F?_"L;[_H(6__ 'RU
M'_"L;[_H(6__ 'RU>F44?7*O</JU/L>9_P#"L;[_ *"%O_WRU'_"L;[_ *"%
MO_WRU>F44?7*O</JU/L>9_\ "L;[_H(6_P#WRU'_  K&^_Z"%O\ ]\M7IE%'
MURKW#ZM3['F?_"L;[_H(6_\ WRU'_"L;[_H(6_\ WRU>F44?7*O</JU/L>9_
M\*QOO^@A;_\ ?+4?\*QOO^@A;_\ ?+5Z911]<J]P^K4^QYG_ ,*QOO\ H(6_
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
MCE@D4.DD;!E93T((X(KC+3QAX@UR&34O#_ARWN]'5V2&6XOO)EN@I(+1KL(
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
MIK=+4(?OAR0K [0O0UZ"GBC1WM=3NC=B.#3+AK:[DD1E$;C&1R.1\PY'%;
M'044 >=_##7M*O9O$-G;7L4EQ+K-Y=QQC.6A9QAQ['(KHO'.JSZ1X0OIK($W
M\X%K:*O4S2$(F/H6S^%=%10!Y'<:7K_@V?PGJEY%I:Z=I!739FLFD+F"7:A9
M]PP0'"M]:CU-&_X1[Q<-IY\76Y'';S+:O8** .0^*8+?##Q %!)-J>!]15#P
MKO\ !VO/X6NP6LM0>2\TN\89,C-\TD,C=W')!/)7Z5WU% 'BUGI=K;_!+1[N
M&SC2\&IV\_FK& ^_[8%W9ZYV\?2MR/5-#T'QEXN_X2LPQ2WDD;6SW,187%MY
M2@)'P=V&# J.YZ5Z;1@'M0!XQMO_  9X#\'^)[FUG$^EB>">W8'>+:?=Y:L.
MORD0C':JVF:+>Z7JEAX#N%EDBU.>SU>Y=@2I"(6N%)]Y84X_VZ]PHH \VM=)
MLKO7/B3-<V4,LKE(M\D8)*?9$. 3VS74^!&=_A]X<:0DN=,M\ENO^K6N@HH
M\7T>QBO?!?PVMKNV6:$ZO*7CD7(.!<$9!]P*U]1T[2GUSX@V>HRM8:9<6NGM
M+-"G",=XWX (ZA<\8P.>*]1HH \<U36KG6/ 'B>W>2RU"*TGLDBU6QA,:78,
MJ$C'(W+T.TD<]JUKB]T32?B%XJ'BB)&%_!;"Q6: R_:(1&0\<8P<G?G*CDY%
M>F@ # HQ0!X38)<67A?X=WLURNG:=:K=K+<7%KYT=O,S8C+KD8X#@,>A/O6E
MJ^G6%QX"UZ>UUB'6(-2U>R:<VUOY,(;S85;: 2#D8)(/6O9** ."\:VVC:5-
MHUU'JUEH%[9><UD9[8-;2 JJNC 8&<!0,$-Z9YKH_".HSZMX3TV_N;!;&:>$
M,UNJE57D\@'D ]1GL:VB >HHH \1M=#T^3X/>%0^G0EI]8MC,3&-S[K@HVX]
M3E3CZ<5U5]IP7Q]XBM+"V6/[3X811'$H4.^^55Z=\8'TKT2B@#QRW\0Z=JFB
M?#G2K.226]LKZS%W&(F_T=DA=&5SC"MNZ \G!/2M+3M2M-)\:IIVC7]KJ]MJ
M.J3275A);D7-A(P8O)N_N9!'S#.& !->HX%&!G..: .!^'-SI\%WX@TC,4>J
M1:M>2O!LVN(6ERK=/ND,N*ENM-M+[XSQR7=I'.(=!S'YJ;@K&<@D9XS@D?B:
M[G%% 'C%VL=OKOC'3]=U^RTDZC=,56\L/--Q;-&JIY;EAD#D;1G!!]:U()]*
M\+^,XY/$ET'LWT&UMM/OKN([9-F[S5Y'#ME6*]37J> >HH(!ZT >2:I<0V'C
MJWU'^TK71-(N-&ACTZ:\T_,2KN8M$ Q41M@H<'J,#M4]CIUOIX\ PV-_]OM/
M[6NI(YUA,2X:*8X5>R@D@>W3BO5" 1R,T4 >00V4X\6?\*]\E_[/CU8ZSNV_
M)]C_ -:(_IYYQ]!5&XCA6[\8Z1K_ (ALM*?4-0G8Q7>G^9)/ P B:-RPW87
M  .TK7MM&!GI0!SVNQ&W^'>I0F9YC'I,J&5QAGQ$1N(]3UKSG3KS1-3TKX?Z
M9H$*C6+2[MKBXCC@*201JA,[.<<!L]3][<",UZ[J5C'J>EW=A*S+'=0O"S+U
M 92"1[\T:;81Z7I=I81,S1VL"0*S?>(50H)]^* .#\*Z2KV7C>ZL[:-=6FU>
M^2&X*C>&QA,,>@!8_F?6N<\*0V%]8^%--G\2VEO>Z;/#*-,33?+NHYD'SHQW
M;@#\P9B,'.:]IHP,YQS0!Q'BK2?%#^$_$2)K"WIFL9EM[6&R$3@GL&#$D[<C
M&.2:S9-:\)ZIX(U.VT)(&NH-!N%VQ6Y#6Z>7@QLV/E.<?*3DXSCBO2:, =J
M/'+F2;3=>\,:A>:I;Z58'PY%!!=W=IYT239!=<E@$8KMY/4*15P7=MX9\,:4
M++4-/N[*^U::3^UKNR(MK$L&8E$R, MN53N ^8\XKU<@$8(S1@$8/2@#PN8?
M;/ ?CY?.6ZAFU:U8216[0)*&-OEE3)(!ZYSSU[UW?B^]MO# T.UM+72M.M9I
MW0ZA=6N^&RVQ\< KAFQM!) X[UW-!&1S0!X8(Q>_#WQ5&[+=03^)K<[DMS"D
MJL]L2P0YP#G/OG/>NNUK3FM_B"T.C0);7$OA>[BB\E0@WB2,1]..">/2O1:*
M /+?#VI:%>>!+/0]&2-/$L&E211PBW(FM;@0D.7./D);(R2,D]\UF^%(M/U&
M+PG9/XFM(KS39(Y$TV+3?*N8Y%0AXW.[(!RP8D8/6O9,"C SG'- '&?$R%)O
M#MCNB#D:M9=5S@&=,U7DTJRNOC+NN+*&58/#Z>4'C!5"9W!P.F<<?0GUKNZ*
M /*8=3T#1;WQI9^*4C&H7M[+)''-"6>[MFC41+'Q\^,%<#H:;X;T:9/$7@>V
MURU$MU:>'9B5F7<8G#Q 9S_$%.*]8P/2B@#Q2ZT:QM_A=X_DAL(4F75KSRV6
M,;E"3 IM/8#MCIS7IGC+2KC7? VL:9:\W-S9ND0)QN;;P/Q/'XUOT4 <1H'Q
M$T"?3M.L9)9H=6*QP2::;=_.CDX4@KC@ _Q=,<YKC?MNBVO@3Q-X>UB%7\3W
M-Q>!K5H2T]U,[L873C+#!3##@8]J]IQSFC SG'- 'B^K7E]I?BF:UN1;/=R>
M';6UN7N[>:Y&3YF]E\I&P,]0V-Q[\5K6VFZ3/K?PVM[:6'5-/M;"[$5P4!5V
M1(@'QV.0>#R#[BNNO?"32ZW=ZMIVMZAI=Q>(B70MUB=9=@(4XD1MI .,BM31
M-&M/#^CV^F6(?R(0<&1MS,6)9F)[DDDGZT >4:U8W T;QE;V412SA\26\]Q%
M' 9!Y.V%I#Y8^\,_,1W -;.DW.A2:OJ/B&Z\4V&JPPZ2\%W%:60CC,.X'Y\,
MP+#D!3S\QKTZ@ #H* /)OAI:W.B^(1;:Y;SQ7%Y8!M&\]]Y@M%8L;;..'7<A
M/J,?W:Z+Q\VGVU[I&HS:];:1J5GYS6;WD/F02A@H=&'')^7&"&ZXSS7;T$ ]
M10!@>'+J?7O!-G<7%D-.FN[4[H%4@1YR,@'! /4#T-<CX+\9:1X8\)V?A[79
M)+'6--0VTEF8'9Y2I(5HP =X88((]:]-HQSF@#@-)TRQU'XC>,[B[L8Y6:VL
MXU,T0)"-$VY>>F<#(]JP?"7FM%\*R^XE;*\4D]@(@!7KM% 'A6AVL5QX>@\/
M:SXGM=.U--0\R:S;3LW?V@3[@ZONRVXX.\#&#7H.A6T0^*?BZ3R$!%O8%6V#
MJ5FR0?YUVF!G..:* . \9ZK8Z)\1?"-_J5PMO:);WZM*X. 2(L#BLCQ)K$%W
MXRT+Q#;ZU;6NB-83PV^H3VIFACN/,7<#DJ$)48#'^Z1WKU:@C(P: /%M22UT
MCP[H]UI^IP:I%-XE:\646CK;AS$Y*+$@9F7=D@J#@G/:KUMJUMI_A7Q1J\(T
M_4=0N+Z&>[L_LLBPV88HBN\;J'8 *9"V!D@XQC->@Z]X<BUR2QN%O;JQO;"1
MI;:YMMI9"RE6!#JRD$''(I-$\-QZ/>7E_+?76H:C>A%GNKG8"53.U0J*JJ!D
M]!WYH \YT^Z^W>)O%-Q%J5KJ4<GAL@W-E:&")V#/P/F8.0#]X$]<=J[CP_9O
M??"O2[%6V//HL4()_A+0@?UKJ<8Z44 >:^%_'VB:#X,T_2=6DEM=9TVV2TET
MTPL9WDC7: B@?-NP""..>M9MEH,^EZ#\.K34K55NCJTDLT;*#Y?F)/)L/TW
M?45ZY@9SCFB@#BM)M85^*_B1Q @QI]D5;8."3-G%<1H<UOIFA_#?4]97;HUO
M;72R2R(3'#.V/+9_3@. 3T)KVRC&1@T >3>)+VQDUWPUK>F7=OI^@H;L?;GL
M"T"7#;<.5.T?, X#].O/-5=2TO3Y_!-ZUOJL6L6NI>(;1YS!;^5"&,D2N% )
MR".20>I->QXXQVHH B@MH+2'R;6&*&,=$C0*H_ 5XBMSI9^%%QX7FAW>,'D=
M&M/*/VEKLRDB7.,XZ-OSC'>O<Z,#.<<T <%IFEV]S\6-9GOK:*XN(-*LU21T
MS@EI-V,^NT58^)=K%?:9H5K<0K-!+KMDDL;#(93)@@CTQ7:T4 >;:U:Q6OC7
MQ*EK L4<OA3<ZQKM#,'E )QW X^E9%Y=66C:#X:U>+6;2SUJ#P[#&ME?0&2*
M\B**?+'0ARRX^4D\C(QBO8*, ]J .8UO^TM4^&5Z;*TDM-2N=*8QVJ\-%(T7
M^K'N"<?6N*:_T'6K7P5IOAF.,ZG97UM*\4,)62SA0?OA)Q\N1E2#]XD=:]<H
MP/2@#AO FFVG]M>+K][2,W;:Y*@F9,MM"(0 >PRS?F:=XJL;>^^(W@I+JW2>
M)/ML@61=RAA&A4X/<'D5V]% 'C.O6%Q_9GCNVL(66UCURTGGBBAW@Q;(6E.P
M?>'<CN :UM,%AJFJZAJUKXIL]5N8]&FMVALK+REV$@C>0Q&01P#@\GWKU"@
M#H* .3^&VFV=A\/= :WM8H9)=/ADD94 9F90S$GJ<DDUSL][HFE>/?%J>)X4
M9M0BMA8I+ 9#<PB+:T<8P<G?NRHY)(->G48H \*L4N;+PS\.KZ>Z33].M8;I
M9+FXM?.CMYF.$+KD8X#@,>A/O6Z-.T"3PUJ=[-XNA,-SJ\5TE]!9[+>"Z15(
M.WE64[06).">^:]8HP,8QQ0!Y-)K%UKNB:'/<0VS&+Q9;Q+=VD92*\5?^6R@
M\X.<=2,J<&L6\O()[SQ-I-]<VEEITVNF:XNYK6>26((R'B14,8SM&"6!4-@B
MO<ZXZ7X?Q/#?6,6NZI!I%_+)+<6$9BVL9"2ZARA<*Q)R W<]* *NF:=87WQ5
M\1W$UI!<!=-LDB=T# (WF[@.V" /RKAK1;FU\+?#Z^ENULM-LWO$EN9[8SQ6
M\A8K$SKD8& RACTS7N,,,=O!'#$@2.-0B*.@ & *?0!XOJVG)+X5U+4=+UR+
M5;6XUJTNM1>UL3Y"(FT.PC!(D'",V#SM.>]=3X06PU#Q=<ZQ;>)[/5KC["+>
M6.RM/*0+O#*S$,06'( ZX)KO^G2@ #H,4 <9<YA^,VGR2<)<:%/%"3W=9HV8
M#\"/RKCA?Z)8>&/%VB:["K>(+N[O#]F>$M-=ER?(:/C+#!0 CICM7J6HZ+;:
MEJ&F7TCR1W.G3-+"\9 R&4JR'(.5(//T%:6!G..: /--+T8R^/\ P]#K=LES
M=VGA8;S*N\"82(K'GC/+#/N:V_B@I/P[U%57_EI;8 '_ $WCKL** .+MK:+_
M (7)J,A@3/\ 8MNP;8/O>=+SGUJMXQGM=.\=>&]4UH :+##<IYTBYB@N&V;&
M?L,J& )Z<UWM&,]: /&=3M_[5\/?$74=#MGDTF[-L]KY49"SO& 9I$7'(.!R
M.I4]:Z >(],\2?$_PQ-I$YNK>&RO=\Z(PCRPB^7<1@L,<CMD9KT:@#'2@#AO
MA/IMI:^ [&YCM(H[F9YVEEV?.Y\UAR>O15'X"JVHZA!X0^)UWJ^K[X=)U73X
MH4O2A:.*6-F^1R!\N0V03P<5Z%1UH \W\7:GI/B^P\._95-[I_\ PD5M$[20
ML(Y1M<G&X?,O.,].HJMXAMH[77O'J6T*Q1S>%E=EC7 9P)U!X[X %>HT4 >/
M7DDVF^)/#VH7FJ6^E6+>'8H+>[N[3SHEFSETR6 1BNSD]0,5-/I5C;>%/#:V
M=['J=M+XHAF29;?RT4/,2RHO.$SGVKUL@$8(S10 BJJ*%50J@8  P *6BB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "L7Q?J]QH'A#5M6M4C
M>XL[9YHUE!*D@<9 (./QK:KF_B#:W%[\/=?MK6"2>XELI%CBB4LSG'0 <DT
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
M20!^M8_C>[U[4/\ A*=*E_MN-#;M'IMIIVGB2*[1HN6DE*-_$2" RD <9)%
M'9_VO=GXDII"S V#:.;O8%',GG!0V[KT/3.*W;Z\AT[3[F^N6VP6T332-Z*H
M))_(5Q^D6-Y'X^TRYDM9UA3PRL+2M&0HD\U3L)Z;L<XZUT^OZ:=9\.ZGI8<(
M;RTEMPQ_A+H5S^M ')6VK>/=3T)?$-E!HT5O+%]HM]+FCD:9XB-RAI0P <CM
MM(&>:SM>^)$5U:>%AIVHSZ6FL@W$\Z69N)(8PC':HVLI;>NT\'&,XQS5O2_&
M%]IGA6VTF;PUK3>(+6V6V%LEDYBDD5=H83?<V$C.<\"HM.\,7N@O\.-/,3S?
MV<;C[7+&I9(V:W?.3V&YL GKQ0 6?B^YU/QYJ&E1:])!#IL*(D1TXE;J38[2
M-(Q3* %1@ KG'&:Z2#Q=IMAX9TG4-6U2"5[Z)3'):P2'[02N28X@"^,<]..]
M4+*RNU\7>.9FMIA%<V]J(',9VRD0N"%/?!..*YK1X+WPXO@?6+_2[^6TM]#:
MQG2&U>22TE;RV#-& 6&0I4X''>@#NYO&?A^'3;34&U /!>,RVXBA>224J2&
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
M1?)-,05B3_5E59^BC@_D: -"'X@^&+C4+>QAU%Y)KF0Q6Y6UF*3,#@['V;6
M[D' ]:Z:O%_!=S)%%X-?Q ^IPVEJB1:;OTT11&:2/8H:42,6&"0ORKG()KVB
M@#F+3Q9866CR7^M:S9>5]OFM%GCB>-%968!#NSR I!/0XK1T3Q-I'B(W TN[
M\Y[8A9HWB>-TR,C*N <'L<8->>Q:-?MHFE0R:;<DKXSDN71H&XB\Z4B0C'W>
M0=W3D5UMI9W"?%75+O[/*MM+I%L@FV$(SB67(W="0"./0B@#I;JZ@LK2:ZNI
M5BMX4,DDCG 50,DG\*RM(\6Z)KEZ]E87;M=)'YIBE@DA8IG&Y0ZC<N>XR*F\
M37.IV?AG4KC1K87.I1V[-;Q$9W/CCCO]._2N$\/B_O\ XB:1J+3:]?6Z:=<1
MRW.HZ>+9(Y"8SL4"-".AZY''!.#0!U5K\0O"M]=VMM;:O'))=.(X2(G",YZ(
M7V[0Q_ND@^U:D?B#2I;+4;Q;Q/L^FR21W;E2/):,9<'(SP.??M7G-MHM]'\%
MM#LAIMPM[%?6TKP"!A(F+L,6*XR/ER2?2CQ?IMVGCAO#]K&QL/%_DO<LIQY?
MD$>?]-\6P?6@#U.UN8KRTANH&W0S(LD;$$94C(.#R.#WJ6D50JA5 "@8 ':E
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHK"\9:]-X:\)ZC
MJUO:O<SV\#O&@0LH8*2"^"#M&.3GI0!NU%<V\-Y:S6UQ&LD$R&.1&'#*1@@_
M45R[^/[&RT#3]3U2RU"U-[,+:.)K8[WD,9<;5!)(."!ZG%6Y_%JPVEM,N@Z[
M+)/&9#;QV7SQ $CY\D*#QP,DD=J &6/@71K&XM)0U_<)9,'M(+J]EFB@8# *
MHS$9 X!.<=JZ6N8N/'VAP:3I.I![F:WU5BEJ(8&=V<*3MVCG=E2N/7\Z(/'>
MD2:3JE_<1WEF=+94N[:Y@*S1LV-@VC.=V1C!YS0!T]%8<?B5&TJXOIM(U> P
MNJ?9WM"97+8 VA201SUSQSG%1:=XRTV]&I"XBNM-ETV(3745_%Y;)&02'X)!
M7Y6Y![4 =#17(_\ ">PSZ5=WEMHVLCR[4W-N9K)E6=>!E>>GS X.#C)QQ5"T
M\93:OX.T75+@WVD37-S9QNZVBE)FE*Y5 Q/[MB<;NH% '>T5R^I>.]-TZ]O+
M9++4[[["!]MELK8R1V_&[#'(R0.2%R0*?J'CG1[!M+5/M5X^JP-/9+9PF4SJ
M-IX [X<'G P#DC% '2T5P^N>-H[KX?:IJ>C^?!>K+_9ZQ3Q[)8+EW6,!E[$%
MPU:MWXAM?#LEGHH@U/5+U+42%+>/SI/*7"^8Y)&<GW))SQ0!T=%<G?:C/8_$
M'0L33?8M8M)K<P.2%26,>:C;3T8J9 ?H/2M#5K_[-XE\/VGV^:#[5).OV=(5
M9+C;&6PS'E<8R,=3P: -RBN,;XFZ&OF2?9]2-I!<M:W-X+4^3;R!]F';/3..
MF< C.,UK>,?$#>&/#%UJ<4 GN5*16\). \KL$0'VRPS[ T ;M%<QI>D^*[2[
MMKG4/%$5Y&>;JU-BB1@$?\LV7##!Q]XG(J"/XC:-(\4@M]1739IQ!%JC6Q%J
M[EMHP^<X+<!B,>] '745RNM^/M,T.>_C>SU&[33E5KV6TM]Z6^X;@&)(YP0>
M,X!YQ3KSQWI]G>V]@;#5)M0N+1;R.T@MM\AC)(Y&< C!SD@=.<F@#J**YP>-
M]&?PY:ZU&UQ)%=R_9X+=(29WFR08PG7<"K9[#!.<<U%_PG>F)I>I7L]KJ%NV
MF%/MMK+!B:%6Z.5!(*XR<@G@'TH VM2TBSU9K%KM&8V5TMW#M8C$B@@$^HPQ
MXJ]679>(+#4=8N--LW:>2VACFEE09C7?RB[O[Q'S8]"#WKG9M0UWQ+XLU32M
M'U0:38:1Y<<]RENDTL\SKNVC?E5501GC))H [:BN:FUR3POIUE;:W<R:IJES
M(\=NEC:XEN0.<[ <#"XW'('TS3!X^T9=$U+5+A;NU&F.L=[;3P[)H"Q 7*YZ
M'<"""010!U%%<I+\0-*M]-MK^ZL]4MH;JZ^RVXELV#S,4+J53[Q# 8'&<\8J
M>Q\;Z3=P:F]RMUIKZ6@ENX;^+RWCC()#X!.0<'IGIB@#I*K16%K#?W%]'"HN
MKA5267J65<[1[ 9/'N:PM-\<:?J&I6EC+9:G827JLUFU];&-;C R0IR><<X.
M#BDT_P =:9JFIW5E9VFI2BTEFAN;A;4F*)XRP*EAW.W( SU'3(H Z>BN:LO&
MEG=:I%ITVFZK97%Q$\ML+RU\O[0$&6"<GY@#G!P:P]*\>7&MZ!XEFN;2_P!+
M.GF\"7BV@(B2(D#AF(,H')7ID&@#T&L35O"NG:OJ,>HR27EM?)%Y/VBSNG@=
MH\YV-M(R,DGGI5*7QA9Z?#IMH(]0U;4+BS2Y\JTMPTICP!YCC(503[]>!1+X
M_P!!A\/V^M/)<?99KK[&5$#>;'-D@HR?># @C&">F,YH V=(T:QT*Q^QZ?"8
MXB[2,6=G=W8Y9F9B2S$]R:OUAZ'XJL]=O+NR2VO;*]M51Y+:]A\I]C9VN!DY
M!P?RYQ3+[Q9:6FLR:5%8ZC>W$*H]P;2W\Q8 ^=N[D=<$X&3@4 ;]%<YJOC.Q
MTO4+BR6SU"^EM(UEN_L5OY@MU(R-YR.2 3@9..<4M]XTTNUCTXVR76I2ZC#Y
M]K!81>8[Q8!+X. %Y')(Y.* .BHK%M?$]C=WVG62QW45Q?P2SQI-"8RHC*JP
M8'D'+#BJMYXYT73].U*_N7F2VTZ^6PN&\O.V0[.0.Z_..?KQ0!TE%<E_PDPO
M=4T!E.JZ<+J:X065Q9JK7.R(O\V>5 '(QU/!K-TCQW<:WI'B5[BRO],^P-=B
M.[6UXB2,<9#,091G)7IQ0!W]%<O_ ,)?:65GI=NJ:AJU_<V27(CM;<&5H\#]
MZXR%0$GIGKD#.*>_CG23ING7EK'=WCZB[QVUK;PYF9DSY@*L1MVX.<D8H Z6
MBJMK?)<Z<EZT4UNC(7:.XC*.F.NX=JY#PSXE6T\"0>(M9GN9)-5N6FA@4&1_
MWCD10Q+_ +H7@>Y]30!W-%<J_C_2H+"_N;RWO[-]/,7VJWN(-LL:2-M63 )!
M3.>03C!K5O?$.GZ?JT&G7$C+-+;2W98#Y(HH\;G<]A\P H U:*YG3?'&FZE?
M6=M]DU&U2_!-E<75L8X[G W?(<Y!*@D!@,CI5*3XFZ'&9W-OJ36MM=-:W5VM
MJ3#;.'V?.WIG!XS@$9QF@#LZ*SM8UNTT*WMY[WS!%/<QVP=%R$:1MJEO1<D#
M/O4$/B?2Y_$U]X?68B_LK=;F92,*$;W]LC/U% &Q17G%WX[C?Q3X;OK4:E+I
MVHZ;<R16<,)9YW#Q[#L''3<020 #U%=)#XXT:7P[+K3-<10PSFUDMY(2)UGW
M!?*V#DN20,#UH Z.BN<MO&FGS1ZE]HM;ZQN-/MC=S6MW"$D,."=ZX)##Y2.#
MUX.*@TSQ_I&J:A86L5OJ$,>H FSNI[8I#<$+N*JQ[X!ZC!QP30!U5%<OXOUS
M4+&?2-&T8Q)JFKW#1133)N6"-%+R2;?XB .!ZFI+2/5/#D=W?:]XE2^TN* R
M.\]HD3Q$<DY3 *XSQC.<<F@#I**YC3?'.GZAJ5I8R66IV$EZI:S>]MC&EQ@9
M(4Y/..<'!Q5:Y^(^EV\JB/3]6N;=[LV4=W!; Q23!BI126!/S C.,$C@F@#L
M**Y+4?B'I.GWNI6GV/5+J73&'VS[+:F185V!]Y.<;<'Z\'CBKM]XPTZT-BEM
M%=ZE/?0?:8(+&+>[0\?O#D@*O(Y)&2>* .@HKG(O&VCRVVF7(:=8=0N6LU=X
MBODSC(\N0'E&R"H]_J*TM'UNTUR*YFL?,:""X>W\UEPLC)PQ0]U!R,^H- &C
M17'6/BZUL=(:>>[OM4FFU2>RMXTME65W5V_=JJX&%"M\Q(X&373Z=>_VC8QW
M7V:YMM^<PW,>R12"1R/P^A'(H M45QEC\3=#OQ8RQ6^I+9WDRVZ7KVI$"RL<
M!"WKGC(R,\9JYJ?CG3M.O[NTCLM3OVL0#>265L9$M\C=ACD<XYP,G% '3T5P
M^L_$ 66M^'(-.T^YU'3]5BDF\ZV@+EU$991'R.>,L". :VO%>H_V?X=^U_;K
MC3_W\"^;%"LCC?*J[=K<<[L$]LDT ;U%<OJ?CS3=-U6]TQ;+4[V\LD62>*SM
M3)M1EW;LYQC'XGL#6Y8ZI9ZEI$&JVDOFV<\(FC=5.2I&>G7/MUH N45S=AXS
ML[W5[;3)M/U2PFNU=K5KVV,:S[1E@O.00.<, <5:U[Q-9Z!):02PW5U>7C,+
M>TLXO,EDVC+$#(  !&22.M &U17*P_$'1)M)U#4E6\6&PN8[6X62 HZR.4 7
M:<'@N ?H>M;$^LVL.NP:*QD%Y<6TEQ&0N5"H5!Y]<L* -*BN.TOQA9VWA+1+
MJ6ZOM6N=14BV"6JBXN2,DGRUPJ@#J<@#UYJMXA^(J6/@Z]U?2["YDN[6X6VF
MMKB AK=RRY$@!&!M88()!)% '=452L=2%YI@OFM;JU7#$Q7,>R10">HS[5S=
MC\2]$U#^SI8[?4DLM0=(H+Z6U*P&5ND9;US\N<8SQF@#L:YZ_P#!NEW^IW&H
M"74+2XN@HN39WLL GVC W!6 ) XSUQ4.I>.M,TV[O8C:ZA=16&/MUS:VYDBM
MN-QWG.20I!(4' ZTNJ^.M+TO4H-.6"^OKRXMENH(K& S&2,DC<,'H,9Y]NYQ
M0!NZ?I]II6GP6%C D%K @2*-.B@59KE$\3V6FR^);K4-4GDMM/N8XVB>W \D
MM&A$<>WYG+%AUYR<5:TGQA9:IJATR6SU#3KXPF>.&_@\HRQ@X+*<D'&1D9R,
M]* .AHKS/Q+\0X+W3+/^QUU2".XU.VA@O_L[)!<KYZAU1_0C=U R <9KHK*^
MN+3XEZEI$L\DMM>V$>H6ZNQ(B96\J15ST!_=M@=R?6@#=TS2K/1[9[>RB*))
M-).Y+%F=W8LS$GDDDTFLZ1::]I%SI=^C/:W*[)%5BI(SGJ/I5ZO.D\8:K_PL
M-0TJ?\(Q+>OHR#8,B[6,/OW=<%M\>.F10!Z*.!BBL_7-:L_#VC7.JW[.MK;@
M&0H,D L!T^IK)'CG3O[*74'LM3B6:X%O:0R6A66[8C<IC3J01DY.,8.<4 =-
M17.0^-M(;3-3OKO[18?V7C[;!=Q;98LC*\#.=W;!.:CTWQSI^HZS:Z0]CJ=C
M?W*/+%#>VIC)11G=G.,?KQR!0!T]%<]_PF6E?\(H/$G[_P"P&41#Y/GW>=Y/
M3/\ >_2FZKXSL=+U"XLDL]0OIK2-9;O[%;^8+=2,C><CD@$X&3CG% '1T5S=
MUXVTV*2SCLH+W5)+JU%ZBV$/F$0$X#G)'!/ '7@\50N?&]Q!\0(O#ZZ/?2VK
MV(G\U+8E]Y= &Y;_ %8#$$XR"* .SHKA_B9KEWI.F:9:V:ZBAU#4(;>2>Q3+
MK&7&Y5;L[#A?QJTOBVRTB.WTN&TUS4[R*V2>:)(3-/ C<KYQ)'S=>,DG% '1
MZIIEGK.F7&G:A )[2X79)&21D?4<@YYR*R].\(:;IVHPZ@9;^\NH%9()+Z\D
MG\D,,-L#$@$C@GKCO5:[^(&@VND:7JBR7%Q;:HYBM?(A+N[@,=FWJ&RI7'KQ
M6E/K]O:>&)M>N[:[MK>&W:XEAEBVS(J@D@KGKQZT :U<J/A[H !AVWIL3+YO
M]GF]E^S;MV[_ %6[&-W.WI[4_3_'>E:CJMI8K;ZA +Y6:RN+FV,<5UM&3L8\
M].1D#(Z9IMAX_P!(U*XNT@AOA;V9F6ZO'MRL$#1$[@SYQG"YXSP1TS0!U-1W
M%O%=VTMM<1K)#*ACD1APRD8(/X5S^F>-M/U/4+2T-IJ-F;Y&>RDN[<QI<@#<
M=ASUV\X8 XHL_&VGZAJ0MK2SU*:V,[6XOTM2;8R D$;^N,@C=C;GO0 EEX$T
M:QGM) U_/'9,'M+>YOI98H& PI5&8C('3.<=JZ6N#\->*UL?"!OM7GN;J>75
M;JUMXT4R2RL)Y D:#OA5^@ ]!6[9>+K&]M=0D^RZA#<Z?M^TV4EL3<+N&5PB
MYW;NQ!(X/I0!OT5SVF^+[+4+VZL9;/4+"\M[?[48+R'8SQ9QO7!((R,=<U6T
MGQ]INM:;+J-C8:O)9)$LB3"R8B8D@;$QDLP)P<<<'G )H ZJBN=L/&5C>27\
M$UI?V-U8V_VJ6WO(0CF+GYUP2",J1UZU4TWXB:/JEUIT<5OJ,4&I?+:7<]J4
MAE?;NV!C_%@'M@X.": .MK/?1K*37XM:=&:]BMVMHV+':B,P8X'3)('/H*RV
M\;:>=7FL+>SU*Z2"X%M/=V]J7@AE./E9ASD9&< @=\5#>>/])LKBZ#07\EG9
MS>1=W\5N6MX'R 0S9SQD9(! [T =510"",CD44 %%%% !1110 4444 %%%%
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
MD95LCMR: *DGCN&YBT,:-ITM_<:Q;-=P1-*D.V-0N[<S'[WS 8&>_89K2O\
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
M6\SCY=O4>M 'JU%>=MXZ\17?Q!U#POI?A^WN$T^2W:YNGN-H2)U5F.#U;YN
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
MLZ-MP%=2O.0 ./;WKOJ* /"?%O@JX\+^&_!^DVFH/)J-QXDCGEO_ "LXG?\
MCV^@P.#UQ74VWPQU#5;OQ!J'BS5H+F^U6R^P(;.(HD$8(((!ZG<JG'L>>>/3
M:* /+['X=>)+N?P_:^(]<L;G2-!E26VBM;=EDG:,8C\PDX& .W7GZU/-\/M;
MU3QQINN:K>Z0L>G7)GCGLK1H[JX7^%)6SC '''OZUZ310!Y38_##6M"N+NTT
MB?P[-I<]RTR/J.G&6X@#'E5.<,![_I6AJ?@'7X_&&K:MX=URVL+76HDBOHYK
M?S'0JNW='VSC/7U/7MZ-10!S?@+PU-X/\%V&A3W"7$MMYF98P0&W2,XZ_P"]
M6;XT\(:OK/B#0M?T'4;6TU#2O-51=1%T99%VGIW S^?M7;44 <IH?A.YTKQW
MXB\13744D>JI;JD:J04,:;23]37 W7P7UB:RO=-34M'-M+?&]2\DLV-VY+ [
M'DSP ,].I],U[)/<P6R![B:.)2< R,%!/XU*"" 0<@]Z ./M?!MQ;^-_$^O-
M=Q&+6+6*".(*=T92,*2?7I6!#\//$%A\/],\,6MUH5W% DR7*:A:-)&Q=RRN
MA!R&4,17I]% 'DS_  EU&RM?# L-1T^^FT:"6%HM6MVD@?S&+%@H/!&[ ^B\
M\40_""]A\(-IJ:S FJ6^M'5K*[C@VHK84!63L.,\=..M>LT4 >>ZWX*\2^*_
M VH:1KVMV3:A/-'+;O;6Y6&'80=O/S'.#D]LU/'X-UR]\5>&/$&M:C937.EP
MW,=RL$3*LOF*RKMSTP",Y]*[<3Q&=H!*AF50QC##< >AQZ<&F37MK;3V\$]Q
M%'+<L4A1V ,C %B%'<X!/X4 >4CX5>(X="N?"-MXALT\*SW!D.ZW)ND0L&,8
M.=O4=?\ ]5=;I7@IM*^(%QK\-Q&+)]+CT^*WP=R;"N"3TQA:["H+R\MM/LY;
MN\N([>VB7=)+*P55'J2>E '.?#WPI/X,\*1Z/<W,=Q(LTDGF1J0,,V0.:J^,
M/!VI:MK^D>)- U""SUC30\:BYC+Q2QN,%6QR.IZ>M=H.1D44 >67/PKU+4/#
M'B>._P!7MY=>\02PO/<+$5AB6)P511UQ@$9^GISZ;:0FVLH("0QBC5"1WP,5
M-10!QOC?P3<^([S2M8TC4AIVMZ4[-;3M'O1E;JK#TX_4\<U0TSP/KU_XML?$
M7C'6+6]FTU6%E:64)2*-FZN2>2>GY#TQ7H-% '@'AGPGXG\3:3XMTW3]9MK'
M2KS7+B*[BGMRS@ J2R,/48!!_N]>379:G\,+JUURSU7PY+I3M#I\>GR6NKVI
MFB9(P KC'(;  _"O3:* .!N/ FHWK^$I[B[TZ.;1KU[JX6TMO)CD#'(5%'3
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
M^FV\%OY(3 C$6_!![YW_ *5E0>!8H/"FA:$+]RNDW<%RLWEC,AC??@C/&>E
M&/J/BCQ8[>++C3O[)CM/#\K$+/$[O<*L*R%.& 7@GYN<Y P,9-O3_$WB)=<\
M.G4TT[^S_$"R&*"!'\RU(B,JY<G#Y4$'Y5P>E:__  B,?V/Q1;_;&QKS.S-Y
M?^IW0K%QSS]W/:GMX61IO#,GVMO^)%G:-G^NS"8N>>.N>] '#W'Q0OF@O-6M
M+K3S;6]T\4>DFUE:>>)'V%O-!VJYP2!M(Z FNBN=9\4ZGXNUG1=%DTNVAL(+
M>83W4+R,6D5B$VAAP2O7MZ'/%FS\(ZII$L\&C>(VM-+EN'N!:O9)*T1=MSA'
M)X4DDX*G&:U['0ELO$NKZR)R[:C';QF(K@)Y0<9SWSO_ $H Y2#QMJ^N:7X4
MATJ*TM=2UR*6666=&DCMUB WD*""Q+$ <_6JOAZZU:RUCQ[/?76E6^H0S6F^
MYEW+:@"%1O()R!MYVYZ\9[UK1?#YK/1] @T[6'MM1T3S!;WAMPX=9,[U:,GD
M'COQ@&HW^''VC3]<AO-<N;BZU::"X>Y>%04EBP5PO0KE1\OH,9[T 4]'\6ZK
MJVH:QHD&L:5?S1Z>MW;:A;VKHBDL59&3S#GH""&'6LK2[[5;?X.Z/?:LVGZH
MDTE@(([BV9BH:9%)<ESO<9R",8(Z&NTTOPK=VWB*?6]4U@ZA=3V0LV1;80QJ
M@;<-H!)'4]2>O7M5"U\ 7$/A./PY/KC3V=O/;R6C&U56B2*0.%8@_,3@#/'T
MH #K'B?7M6UJ+P_-IEI:Z3/]E'VR!Y6N9@@9@2'78HW 9Y/4U13QQK.MP^$?
M[%M[*"778+AIC=AG%NT07) 4C=@[ACC/'(K6NO!^H1ZKJ5WH?B&32XM38274
M/V59OWFT*7C)(V,0!G.1D9Q5BT\%V6GW7AQ[*9XH-#@FABB(W&02*H)9O7Y<
M].2: %\(:SJ6HMJ^GZO]G:^TN\^S/-;(4292BNK;225.&Y&3TK,^)K72V/AX
MV21/=?V]:^4LK$(6^;&XCG'TKH=)T)=*U36;U9S(=3N5N"A7'EXC5,9[_=S^
M-0^*O#?_  D]C9VXOYK%[6\CNXYH5!8,F<8SQU.>0>G2@#F;OQ'XMTJ[UG1Y
MO[-OM3ATLZI8RPV[QI(%?:\3(7)SZ$'N*U[3Q:^L>(="M-*$3V=WIS:E=NX)
M9(FPL2@@\$L3G.>$-6-$\+W-CKESK>K:LVIZE-;K:I((!"D4(.[:%!/)8Y))
M[#I6)\+_  X='MM8OG@N(5N[Z1+2*Y0J\5HCMY:X/(&6<CV(H Z'QMJEQHG@
MC6M2M#BYM[.1XFQG:V.#^!Y_"LO0/ 'AJ#1M,F?3()[Y%CN6U!A_I$DW#%S)
M]XY/.,X[=*ZN]L[?4+&XLKJ,2V]Q&T4J'HRL,$?D:Y72_!^M:6EM8Q>,+QM(
MMF7RK<VL?G>6IXC,W4KQCH#CC- &<_B7Q5J6FZQKVCMI<6FZ=-/'#:7$+O)=
M+"2')D#@)DJVT;3VS2:AXXO+R[LX]-O],TB";1DU83ZE&7\W?G$8 =<8 RQY
M/(XJ[/X"O FIV.G^(I[+1M3EDEN+1;9'=3)_K!'(3\@;)['&3BN<\0Z'';>,
MV\R'5++38--MK:RDL=+%^LA0OP0T<FPKD <#.<YH T;;Q9XKN[#P='$NFK?Z
M_#-+*\UNZ) %17!"[R3@$\9&[C[M.G\>ZGHF@^(/[5CLY]4TJ^BLHY(E:.&8
MRA#&[+DE<!\L 3]WBM/P_I.K:O%X;US7Y&AU'3OM/[HPA&E23*(7 .$;8%)
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
M?F.3DG/'2J;_  ]74AJ\NNZHUY=:E;1VS2V]NMN(UC8NC  MEPQ!R2>@&,4
M4=&\<W8UU+*]O['5+:6TEN&GL;.6#[,T8#%6WL0RD$X/!R.E8>M:EXHUKPQX
M=UJ_.F+INH:I83):Q1N);=&F4Q_.6(<D8SPN,\5Z#INCZU$[)K&OIJ5J8C$8
M5L5AWYXRQ!.3C/3 YZ5S\?PXO!8:?I<OB>YDTK3+F&>SMOLR!@(W#*DCYRX
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
M_;_VL?VG]K\OSO+3[OVWRL;<8^YQT]^M '>V^JV5UJE[IL,VZ[LEC:XCVD;
MX)7G&#D*>E%SJME9ZA8V$\VRYOF=;=-I.\HNYN0,# &>:\\U77)O#>N?$;5K
M9%>XM[33_*#_ '=[*ZJ3[ D$T^YTW6M.^(?@H:IKK:JKO=G]Y;)$T<GV=L[=
M@ VGT()&.IH ],HHKS[PEK>IS:I):^(-6O(-:,<KOI5Q:)'"0&X:"0+EU Q_
M$W7D"@#T&BO.8/%.L/\ #3PGJ[78-]?WEE%<R^6OSK)*%<8Q@9'H*9J-_P"*
M+[5/&GV+7_L-MHFQ[6-+6-R[?9UD*N6!^3.>G/S'G  H ])HKS?3]:\20W7A
M#5;[5DN+;Q P2:P2V5(X-\+2H4;[^1MP=Q.<]!69?:_XMC\-^(O$L6NHJ:1J
MMQ#!9?9(RDT23[=LC8W?=. 5(Z9.2: /6Z*XBQN]>T?QS8:7JFLC4;?4K&:<
MJ;=(A;RQLF=FT9V$/C#$GCK6)#XKOH=?T*2U\0W^KV>H7_V2;S-+$-HP*N0T
M,FP9(*_WVR,^E 'J)(4$DX Y)-5]/U"SU6PBOK"XCN+689CEC.589QP?PKC_
M  W<>(=:\1ZW<W&M>7INFZI-:Q6<=NF95"*?G<C.!N&,8/!R36*FN:Q+\*=#
MUJ+6I[;4IX_*BM[6U@/VRX=L1IAD(7ISC'&3VH ]3HKS;5]=UZQU71O#5QJ%
M]]J&FF[O[W3+!9Y97W! %7851<[B3M]!QFNE\%:AJ^H:+,=9AN%G@NI(8IKB
MW,#W$0P4D*<;20<''&0: .C9E7&Y@,G R>IJI_:ME_;0TCSO].-O]J\K:?\
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
M>7%G%<1O<VX1IHE;+1AL[21VS@X^E &%?^#;;4+33E?4]32^TYG:WU%)E^T
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
M5-2U6\MXVBMI+^56\A6QNVA549. "QR?>LR?X8Z3<13VK:EJRZ=)<&Z2P2X
MABD+[R5&W.-V3@D@9) S@UU46I0RZM<:<L<XF@C21G:)A&0V< -T)XY Z5<H
M P;KPCI=[/KDETLDRZU#'!=1LWR[45@NW R#\QYSU JE8> [2SU?3M4N-7U?
M4+O3MZVS7DZL$5D*%<!0#P>OWB0,DU8U7QSH>C:I-IUW)>&X@B6:;R+*:98D
M;."S(I '!_*MNQOK74[&&]LITGM9T#QRQG*LI[B@"<C((YY]*YS3O!\-GJ]O
MJ5UJVJ:G/:1O':B]E1A"'P&QM52Q( &6)-:/B'6[;PWH%YK%W'+);VB;W6(
ML1D#C) [^M3QZE#)J\VFB.<311+,SF)A&0Q( #]">.E '*P_#'2H5M(?[2U9
M[*RNDN[.S:X'E6[J^\!1MR1GCYB< G&.M;J^&;)9==D#SYUK'VGYA\N(A%\G
M''RCOGFMFB@##_X16P^RZ!;^9<;-#9&M3N&6VQ&,;^.>">F.:@F\%:9-X=U;
M1&EN?LNIW,MS.P==X:1][;3C &>F0:Z.B@#+N]!L[W7+/5IC(9[2":W1 1L9
M9-N[(QG/R#OZUA67PZT^R;3%_M75IK;2YQ-8VLLZF. C( P%!88)'S$D#H1S
M78T4 9NDZ):Z.VHM;-*QO[Q[R7S"#AV"@@8'3Y17/M\.-/6ST.WMM5U6U_L5
M)$M9(98]WS]2V4(SC(R .":Z#2=;MM8FU.*W256TZ\:SE\P !G"JQ*X)XPXZ
MX[U$_B"W77+S2UAFD>RLUN[B2-=P0,2%3 Y+$*QP!T'O0!2O?!T-Y]@G&K:I
M#J=E&T4>HQ2()G1CDJ^4*,,@<%>U:^EZ>VFV0MWOKN]?<6::[<,[$_0  >P
MJ"VUZVNI=.C2"\4W\!N(B]LZA% !PY(^1OF'!I=!UJ#7]+%[#')"1))#+#)C
M?%(C%64X[@@T ,\0^'[;Q'I\=I<37%NT,Z7$,]LP62*1#E64D$?F#UIMIX=M
M[768-6:ZNKB]BL/L)DF93O3>'W-@#YLCM@>U7+74H;R]O;2..=7LW5)&DB95
M8LNX;6/##![5<H YF7P+I4NES6/FW:;]1DU..X24++!<,Q;<A XQD@ @\'!S
M6EH^CRZ5YS3ZQJ.I/+M&Z\=#L S]T(J@=>>,GBM2B@"EJ^DV>NZ1=:7?Q>9:
MW,9CD7.#@]P>Q'4'VK"T_P "VMGK-AJUSJVK:C>V*ND#WDZL%1EVE<!0.G.>
MI.,DUT=Y>VNGVYN+RXC@A#*F^1MHW,0JC/N2!^-3T <OI_@B'2IHUT_6]7MM
M/CF\Y-.CF3R5.[<5!*;PF?X=V.:LR>$K1_$ESK*7E[&;R-8[RT1U\BX"J54L
M"N<@-V(Z"M^B@#D+#X>6-C-I3'5M6N8M)D#V-O/,ACA 4J%P$&X8;&6)(QP>
MN;C>"M,:VE@,MULDU8:N?G7/G!P^.GW<J..OO71T4 <W<^#H;[58[N\U?5+B
MVBNEO(["25#"LJG*D?+OP#R%W8'I72444 <A=?#O3KF6^1-2U6VTZ_E::[TZ
M"=5@E9OO_P .Y0W<*P!S6W_8%D-=L]63>DUG:/:11H0(Q&Q4GC'4;!CFM2L[
M7=:M?#VB76JWOF&WMEW,(UW,Q) "@=R20!]: -&N87P19(=<C2_U!;/65F^T
M6GF+Y2/*,.Z?+D,?<D<GBMO3+V74+!+B?3[FPD8D&WN=F]<'OL9ASUZU<H Q
MI?#5E,-##//_ ,29P]MAA\Q$9C^;CGACTQS6>/!$,%Y<RZ?K6KZ?;7,S3S6=
MK,@B+L<L1N0LN3R=K"NIHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
MC+%4R"1\H'4T <)(MYIG@70_&,&O:G<ZQ<R6<DJ27;-#<^<Z!XA%G8  YQM
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
MK$4\<4]YYTC6+@)(DC*3O"EV8;B3\H]*[>?P;H%QHUEI+Z>!:6./LH25U>'
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
MY/OP9/S'.[<6SN+9 .[.<CK5VRTNTT_3$TZ"-C:JI79+(TI()).6<DG.3U-
M'F.EW]Q!XI\*7=@OB&+3]6DD1Y=4U 3+=QF%G5O*WML.0",!>#C':L[5-<\0
MP:/-X:L-1NCK.DZE=7#RM*QEFM(5\] QSDAO,B3GKTKTC3_ ?AO2[RUN[73B
MLUHQ:V9[B5_(RI4A S$*N&/RCCIQP*T$\/:3'KUQKBV48U*Y@%O-/DDO&,?*
M1G'8=NPH X;_ (2:#4QXE\12ZEJ,6A116MC:+8R$.TC!78H.F\M*B;N",'D=
M1#I%UJ.F^)]:TSR]7LK5M":\2WU"_P#M3I('9=ZMO<KD=L]1FNVM_!WA^U\-
M2>'8=,B729"2UL68@DG=G).<YP0<\8&.E)I_@W0=,GGGMK)O/G@-O--+/)+)
M)&>JLSL2>@^G:@#S[S-4T3X16FOQ:QJEWJNJ6]E'+--<EA$LC(,H&^56 ;&[
MN>2:Z/PQIVOV'B?<;/4K;1I+5A-'J&IB[/GAEVLA+,PR-V1TZ5U?]A:9_8*Z
M&UG&^F+ +<6SY9?+ P!SR< #GK5;1_"ND:%<-<6$,ZRF/RMTUU+-M3(.U=['
M:,@=/2@#!UH3:Y\1K?P[/?7EKIT6EF^,=I<- UQ(9=F"ZD-M4#. 1RPS7&>(
M4N+OP%XLTVZU&_NH-&UB*"UN&N6WNC-"2DC _O-I<CYL\@'J*]3UKPSI'B!H
M'U*U,DMOGR9HY7BDCSU ="& /<9Q2+X5T-- .A+I\:Z:S!VA5F&Y@P?<6SN)
MW ').3WH ?.EIX?\,7/G7MVEI:6\CR7,LS33*H!8MN;))'.,YZ"N T2[N[3Q
MSX<%M#KUM8:K!<&0:KJ N/M 5 ZN$\QO+8?AP<8KU"XMX;NVEMKB)98)D,<D
M;C(92,$$>A%86F>!_#VD7UO>V=@RW-L"L$LEQ+*8E(*E5WL<+@_=Z4 ><?\
M$SC^'5SXN.OZN^I6FHR>0K7;>4L:W93RV3HX(S][)Z 8  K6UO7=4T&Z\4>'
M4O)WO]1DADT1Y)"67[2?+8*>PC<,P'8$5W9\,:,="ET0V2_V=*[2/!O;!9G\
MPG.<_>YZUG:GX9?5?B!HNMS1V_V32K:;RSD^8TTF ,C&-H4$CGJ: .BL[?[)
M906WFR2^3&L?F2L6=\#&6)Y)/<U-110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !5#7-7M] T.]U:[61K>SA::18@"Q &< $@9_&K]<K\2_\
MDFGB/_KPD_E0!K>'=?L_$VB0:K8B5892RF.90KQLK%65@"<$$&J/ACQIIGBR
MYU.'34N0-/E$;R2H LN=V&3!.5.T\G':N"U*^O/"NH:GX>T\,LOB>**;2V .
M([B3;%.<^PQ+^=6+?^R_"4OC^.6WFDTRPL["'R87*.ZB#:!N!!&>,G/J: /5
MZI:5JMEK>FQ:AI\WG6LI8(^TKG:Q4\$ ]0:\ST#3H;?XD'2'TK3-/L[_ $25
MKFQL;UITD'F(%:0;5 ;#,,C.03S61I\%OHOP,NK[1DCMM0FE,-Y-'(5=8OM9
M1LD9*X0D9 R!SVH ]PJIJ=Y)I^FSW4-E/>R1+N6WM\;Y.>@R0/UK@_#_ (=N
M]*\0K>6L.B:;8R6$JS6FG7LDWVD_*4DVLBC*\C=R3NKF;?0[&Q_9]N=9B21M
M3N](4374DC,Y7*X7KPH   '3'UH ]L!RH)&W/8UD7FNBT\4Z7HGV<L;^">;S
MM^-GE;.,8YSO]>,5P_C3^S=8U?5[0Z)8W=SINGI)<7FI7[0+ KABOE *WS<$
MEAMYP,TGAZYGO=7^&MS<RM+/+H-PSR.<ECL@R2>YH Z_Q%XUTKPOJVD:?J0G
M5M3=DCF1 8XL%1F0YX!+J,X/7G%:#ZW;)XEBT$I+]JELWO%? V;%=4(SG.<N
M.WK7)^,M)M-=\=>']+ODWVUUIVHQ2#O@B'D>XZCW%<MH^L:NOC&ZL+D-)X@T
M/PY>VS-MSY[+)$T,H]=Z[3]<T >ST5XN;+1[/P/X8\0:-.'\2W5Q9D72SEIK
MJ5W7SD?G+#!?(/3';%:<WAO3=>UWX@S:E%)<-;2)]G#2L%A;[*AWJ <!L@<]
M>* /5:Y"_P#B!:V&IZI:#1-9NH]**B\N;:&-XX\H'SC>&("GG"^M1^'K_P 4
M7?A+PW<V<&G723Z;;R7,UY=2)(7*#<0%1@?7)/6L&VT_7]4\8^.[+2M0L;*U
MGN88IY9K=I95S;(,IA@O3U!H ]*LKVWU&QM[VTE66VN(UEBD7HRL,@_D:SO$
M6NC0+2SG-N9_M-]!9X#[=OFN$W=#G&<X[URT-I:>&OB'X:TQ)O*LX= GMH#*
M^-Y1XN_0M@$UR.H7=G?>#=7N7OL6#^-%)NHY=H6/S(\NKCI@9((^M 'L]]="
MRT^YN]N_R(FDVYQG:"<9_"LO1_$,FK6FB7*:7<+%J=D+MI596CMR55@C'@DG
M=Q@=JX:2RTW1?&>HV'AW9'8S^'9Y[V"&0M'O# 1R'D_,06Y[CFDT22:.?X=&
M %I!X9G*IV9A%!C]: /5JS+O7+:S\0:;HTB2FXU".:2)E V*(PI;<<Y_B&,
MUQ/P[T_P[/H>A:]-/')X@N@S2W+W!$TTY#>8C#/S8^;Y2,#:#CBM;7?^2J^$
M/^O74/\ T&*@#LZYV\\1W2>+X?#^GZ8+IEMTNKN=[@1B&)G*#:-IWM\K'''3
MKS7EYT:SB^%MYXG42_VS:ZE+);71E8M#MO2NU.<!2,Y'?<:ZQ-!TW_A<FJW:
M6$3W4>DP749.?]<9)1N^IP!0!Z-WHKPTVVF'X3V_BF&<MXP>1'6\\T_:&NS*
M 8L9Z=5V8QCM776F@V.N?%;Q'-J4;S_88["2WB,C"-)"KG?M!Y8;1@]LGUH
M]$HKPR\T2T/P[U[Q$&G76+769S:W8F;?;@7F,1\X4'+9'?//:NK&G:=X/^(D
M2V$<T-G/HES/>(LC.TS1.A#G)R7PS?-U.: /2*S8-;M+VWU*2P\RZDT^62"6
M)%(8RHH8H-V 3R.>G/6O*=)-O%XK\%:CIVDV&E0:JTI'DZ@TUQ<PM S?OE*@
M'D*<[F(-7O#>B:+IUAX]EM;6"&]M[N]@B*GYTB\E" !GIWH ]3LKA[JPM[F6
MWDMGEC5VAEQOC)&2K8R,CI4]>2:;#::SJ'@K2->(DTIO#,=Q!;S.1'<7($8.
MX='*H<@'/4FL^_41^$O%.FZ=<S#1K;7[.&QDCE)\K,D)D2-NP5R<>AH ]KHK
M@-,TBQ\-?%2*RTF(VUI=Z++-<1!V*O(DT85SDG+8=@3U.:[BSO;74;2.[LKF
M&YMI!E)H7#HW..".#R* .:N/'=K_ ,(FFN65E/.9KS[#;VTC+&TDWG&$ GD
M;@3GGCM71V$MW-8Q27ULEM<D?O(4E\Q5.>S8&?R%>,'2K'4?AIH#7ELDQ7Q,
M8@6[(]\P<?B!7=_$'_B2?#UK?3V>RLTEM[>62%BI@MS(JN0>H^4D9[9H [6B
MO.(]-TGP_P#$CPY;>&%C@CO+>Y.H06TA9'A5 8Y'&2,[\ -U.3R:YTZI;1?
MZQM9+R-;QM32$1&3]X76^W%<=<A1GZ4 >TUD^(/$5CX<LXI[P32R3RB&WM[=
M-\L\AZ*B]SP?05R5CH-AK/Q6\37.HQO.; V,EM&TC!(Y#'G?M!QN^4<GW]34
M_C.>+3?'W@O5;]UBTV*2ZMWF<X2*62,",L>V<,,^] %N]\>-8Z#JVHW/AW5+
M2;3[?[1Y%XJHLRYQ\LB%USZCJ/2NP1MRAO49KA_B7JEA<_#SQ':07MO+<K8-
M(T4<@9@N0,D#H*IKH5CX9^(7A7^REDB;4(+N.]=I6=KG;&KJTA)^9@V3GWH
M[G2[V74+!;F:QN+)RS*8+C;O #$ \$C!QD>QIFMZM!H6A7^K7"L\-G \[*G5
M@HS@>YKQZ.:[G\'^#[ B"2QO=7OTN4N[AH89666<QQR.H)P2.F,$J!5_6O#$
MECX!\;1WT6F)9"W%S9Z?97+S):2JC!F&Y5V[N" !CK0!Z;HVHW][I'VW5-.2
MPE(WB&.X\[Y-H(.=J\\D8]NM/T'6;?Q#H-EJ]HDJ6]W$)464 , ?7!(_6J^D
MZ99:3X7CM;"W2"#R-^Q.F2N2:Y7P3J?D?!G3Q83Q/J46DNT,(8%C($8@;>O4
M4 >AT5X[X1T.]N;;POKEE_8MM*SQ2W6H)J,LES>JR_O(Y%* ,Q))P2=I''2L
MF&SL?%.J26D]I9R:B^OR/)J5U?1"0VZ3D>5Y1?S!E%VA-NW!!S0![Q6/_;H_
MX3(>'OLYS_9_V[S]_P#TTV;=N/QSFO,_'SZ?J$/BRZM-&LA<Z3&(Y-2O-0>*
M:*41!D\A K8Q\N.5#-GKR:ZC2Y7G^)]C-(VZ23PNC,?4F8$T ;VN^*K71;VV
MT]+2\U#4[E6>*RLD#2;!P78L0JKGC)(YZ9I-"\5VNMW]SILEG>:=J=LBR2V=
MZ@5]AX#J5)5ESQD'K6$MS!IGQFO#J$J0_;](A6RDE.T-LD;>BD]_F5L5#<QV
M'B7XL&&(17=I::+);Z@R'<F9)%*1,1WPK-B@"S#\0;A_"5SXF?1"M@61+ "Z
M!DN2TOE+N&W$>20>K<'VKH].U/4I[J*UU#1I+25K<S22QS++ K!]H0/P2Q&&
M^Z!BO'H?#6C'X%:3>'3X?M,MS:EY.<L3=*A_\=)%=1KZR:#XGU*+0XO):T\(
M7#VL4?(5Q+D$#US0!Z?17F=C8:#H_@AM9\.R1-KTNBRRPRI<%I;I_*W%F7/S
MG=@\@X/'%9_A/0+MF\,:S8#1+3<5>YO(=1EEGOT:,[U<% '8D[N2=I7B@#UR
MBO._A[H-A-?:SKL\;S:A%K5_%#+)(Q\E/-8%4&< '))]2?85E^/+JQ?Q^]IJ
MEA#J=LND+Y%M<WL5ND4KR./,7S'4,2% ++DK@>M 'K%&:\B_X16VC/PY\/7L
MBS0-!=&[^RRD1W#")6.2/O*6'/K^-6/%5IHMQ>ZCI%KX?T^8Z-ID8>XU"_>%
M+:,JVP1#:W( Y;Y>PS0!ZK5+5=6LM%TY[_4)O*MD9%9]I;!=@B\ $\E@*\OM
M;9?$LGPSAU:2:XCN-'G>X4RL//(CA.'P?F&>2#U[UF:YI-A'X'\8:>T(-EI.
MO0BS1V)%NCM;EPN3POSOQVR: /<**\X\5>&K.--.DTVUTN^TS3+>=GT6YN/+
M1U9@3*AY&\$,,L,<GD&MV>_M=1^%4]]81R0VLVC/)"DA.Y%,)P"<GD#OF@#J
MJ*\9LK71[/2_ &KZ)<^9K=[>6T5Q,MP9))XV0^>K\\JH'3HN .*T=%TB+R?&
MOB.&*2XUNQU'45T]G<L(2$. B].2QSQSQZ"@#U6BO'_"6A7D\/A?6['^Q;5V
M:.6YOH]1EDN+Y&0^8D@* ,Q)S@D[2O'2M+PA8Z#J@NM;UV6,Z_'K,L;2RW!2
M2!UF*Q1+R,+M" +T;/?- ';>']=&NKJ3"W,/V+4)K+E]V_RR!NZ#&<]*V.M>
M*ZC<747AO4H8&1;>Z\:RV]WYLS0QF%F/RNZ@E5+!%)'8X[UM06)\(VWB34;Z
MWT^UT0Z:&ETK2+R1SO!8>8N53R]RG;E<= >U 'J%%>4>&H/[+^)VFP6VFZ;I
M4=YI4TDMK87S3^8 T91I 44!N6PPSGGFJGAFRT/0_A%_PE&HV=Q>7,]NT,S_
M &AE=T:<(L8;(V)D)GT&3W.0#V*BO)-"@;2O'>K:=#8Z=ID4F@//)9Z=>-,F
M\2 *[ HNU\,1P.1WJGI>BV>E^$OA]K]J)5U6XO+&*:Z:5F>2.1=K1G)^YC
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
MJ#UP2!Q["LS3/$-M-X3TO6M4N+6Q6\M89G,DH1%9T#8!8^]:3:A9+;Q7#7<
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
MM_J%I:M)P@GF5"_TR>:P/&7BT^'SI=G9SZ>M]J-R(D:]EVQQ)M9C(P!!(^7
MY')ZT ;\ND:;.EXDNGVLBWN/M0:%2)\  ;^/FX '/I4LME:S7$%Q+;0O- &$
M,C("T>X8;:>V1P<4V*Y\JRMY+V:W21PBLR-B-I&P,*3U!/3O3;75-.OEF:TO
M[6X6$XE,,RN(SZ-@\?C0!6T[PWH>CSRSZ;H]A9RS#$CV]NB%AZ$@=/:G7/AW
M1;S2XM+N=)L9;"''EVSVZF-,=-JXP/PJ>#5-/NI)([>_M9GC19'6.96*J1D,
M0#P".0:+'5-/U-7:POK:[6,[7-O,L@4^AP>* &P:/IEK!-!;Z=:10SJ%EC2%
M560!0H# #! 4 <]ABJ^F^&-!T<S'3=&T^S,RE9#!;(A=?0X'(]JE;6=/D-W#
M:WUK/=6R,TD"3*SI@?Q*#D50T#Q)%?\ @O3-?U2:ULA=6T<TC/($C1F&< L?
MZT ;5M;06=M%;6T,<,$2A(XHU"JBC@  < 5%_9MCY=W']BM]EX2;E?*&)R5V
MG?\ WLJ .>PI?[1LOL'V[[9;_8]N[[1YJ^7CUW9QBF0:MIUS8O?0:A:RV:9W
M7$<RM&N.N6!P* 'G3[(M:L;2 FT_X]CY8_<_+M^3^[\O'':J7_"+>'_MTM]_
M8>G?:Y6#R3?94WLP8,"3C.=P!SZ@&K#:SI:Q7$K:E9B.V;9.YG7$3>C'/RGV
M-21:GI\]C]NBOK:2T/\ RW253'UQ][..O% &7>^'3?\ C73-=GEC,.FVTJ6\
M.SYA+(0&<MZ;1C'N:V+JSMKZW:WN[>*X@8@F.5 RD@@@X/H0#]14=MJ5A>S3
M0VM[;3RP';*D4JLT9]& /'XTD>JZ=-?O81W]J]X@R]NLRF1?JN<B@"4V=L;U
M;TV\1NEC,2S;!O"$@E=W7&0#CVJI<:#H]U8RV-QI=E+:32&:2!X%*/(3DL1C
M!8GG/6I5U;3GU!M/34+5KU1EK83*9!]5SFKE &;%X=T2"RFLHM(L([6=0DL*
MVZ!) .@9<8('O5IK"S>]%Z]I UV(C")S&"XC)R5W=<9YQ6!<>,[:TN_$T-S"
ML4>A0Q2-(\H F,D9<*,C@\8[Y)I_A#7;O6/#:ZOJ=QI021!-_H<A*P*5#%9"
MQ^\N>>GTH O:?X7T#2;QKS3M$T^TN6R#-!;(C<]>0,U9U/1],UJV6WU33[6]
MA5@ZQW,2R*&]0".M<M?_ !%L9? E_P"(=$>&>6VR/L\SC<,2^7E@K$@'DCU&
M*ZRVU*PO)YH+6]MIYH#B6.*56:,^C 'C\: 'PV5I;W$T\-M#'-,%661$ 9PH
MPH)'7 ) ]*JS:!HUSI2:5/I5E)IZ8V6K0*8UQTPN,"I5U;3GU!M/34+5KU1D
MVPF4R ?[N<U3\1Z\/#UG:7#6YG^T7L%IM#[=OFN%W=#TSG'>@"YINE:=H]K]
METRQMK*WSN\JWB6-<^N .OO3&T/27U5M4;3+,Z@R>6UT85\PKC&"V,XQQ5"P
M\3QZGKFI6MK!G3M.79<:BT@$?G#EHU&.=HY9LX!XK2AU73KF[-I!J%K+<A Y
MA296<*>AV@YQR.: %.EZ>=,_LPV-L;#R_*^RF)?*V?W=N,8]JATW0-'T?_D&
M:5969V[,V\"H=N<XX'3/-27&KZ9:7D=G<ZC:0W4F-D,DZJ[9]%)R:L+<0//)
M LT;2Q &2,,"R ]"1VS@_E0!G6OA;P_8S--::'IT$K2B8O':HIWC.&R!U&3S
M[FDO?"WA_4=0%_>Z'IUS>#'[^:V1WXZ<D9XJ^+^S:WBN%NX#!,P6*02#:Y)P
M IS@DGIBHGUG2XYXX'U*S6:5S''&9U#.P."H&>2#QB@"[1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !7)?$U+J3X>:LMHLK-M3S5ASO,/F
M+YH&/]C=76T4 >8B?PYJ/CKPDW@YK"1X!,UV^GA=L=J8B LFWIE]F ><UH?"
M[2-/BT.XU);.'[=+J-[ON"@+X$[J &Z@8'0<=?6NZB@BAW>5$D>XY;:H&3ZF
MGJJH,*H ZX H \HUUC#\3M7.J:GH=A#-8P+9/K=IYL;Q#=YBQL9$4'<?F').
M1Z4V#0M/-W\-]*GNH-:L8Q>LDWE_NY5";DPI)RJ_*!DG[HKU:6"&=0LT22*#
MD!U!P?QI^Q<J=HRO0XZ4 >/:UIENOA_XIV%M9Q^1!(D\,"1C;&YMD9F4=CU.
M15CQ3=:9./!]WI-[HT/A^.YF\^X> 36<<YB'EF1590#DL,DC!(S7K(106(4
MMU..M,%O"L)A6*,1'J@4;?RH \<UG3[1?A_XNGMM=TW4HKV\LS(FE1>5!"_F
MQ*VW#O\ ,PVDX/6O7-.TNPTBU%KIUG!:0#_EG!&$&< 9..IP ,^U3K!$D0B6
M)%C'1 H _*I* /%M*L;;4?#'P[M+R!)[>36;O?&XRK8^T'!'<9 X[UHZGI=L
MLOQ1T^ULHA#_ &;!/';I&-HE,$OS*O0,=HY'<5ZL(T 4!% 4Y7CH?:E"J&+!
M0&/4XZT >1W=YX=ET[P/=+)8/X9BN#_:31!3 EQ]G'EF;' (8C.[H2,UO>$F
MT^Z^(FOWGATP-HK6=O'-):X\B2Z#.25(^4D(5!(]LUW:V\*Q&)88Q&V<H%&#
MGKQ3HXTBC$<:*B#HJC % 'D?CS5[.>]\5Z;)%X?L98;-4+W]L9;J_+Q97R@&
M4\?=!&[!'05=TZPM-7\8>#/[2MX[L)X8,X$R[AOS"-Q!X)^8]:].:&)Y%D>)
M&=00&*@D ^]*$0$$*H(& <=!Z4 <;\.(H[:T\16D"".WM]>NXX8E&%C7*G:H
M[#)/'O63X-\1Z/X2L]4T'Q!J%OIM]::A<RXNW$?GQ22%TD0G[P(;''/%>DJJ
MKG:H&3DX'4TR6WAG*F6&.0J<J74''TH \4U5(YO!6JZW>V\R:9JWBBWNHXVC
M8.]MOC3=M'S?,%) ZX(K5DDL+_Q??S> S:L(_#=Q'+)IP41><2/(7*\;P0WN
M!7HNOZ''K]G;6\LSQ""\@NP5 .3&X<#Z'&*THXHX01'&B G<0J@9/K0!XWX2
MM=/OH_"2Q^)?#T%U92(ZV=K8F.]+!")(I"9B><MN)7DC-%SHNF3?#[XBZA+8
MP/>C4M09;AD!=2CDIM;J,'GCU->QK!"DS3+%&)6^\X49/U-.\M-K+L7:V=PQ
MP<]<T <=X]L+W6OA;?6]I&T]VUO%,(P,F38R2%1ZDA2,>]9OB;Q]X>UOP/?V
M>DWT5]J6IVCVMOI\1W3F212N&CZKC/.< 8->BU&MO"DS3+#&LK?><* Q^IH
M\WL_#EE)\2=.L-5M8+TV'A>% )E#IO$K(6P>"<9Y]S6/?2^&XAX_M?$J6K:U
M-=R&VBG3=/+"8E\CR1]X@$'[O0YSBO8]J[MVT;L8SCG%-:&)I!(T:&11@,5&
M0/K0!XOND@NO T]Y?Z78Z?\ \(U&EM/JML9K<7!";A]] KE,8)/0$58N-$TY
M]!\.6/\ :5EK&G7?BOS#]CCV6ZADE+1(NYODW9XSCDBO7W@BEB\J2)'CZ;&4
M$?E3A'&%50BA4^Z,=/I0!B>(7M-!\%ZI)#I,5Q:V]I*YL(XPJ2#!)7 &,')S
MQW->>Z!<VU_\2=$,5SX?N8YM*N4FCT>W*QJA\LB.1MS!^^!A<=QR*]?J.."&
M$ 111H!DC:H'7K0!P7PK;2(=*O+"#[''JUO>W:W,*!1,B?:'V[@.<8(QGBN8
M^(&KV=VGC*R:/P_8300^65N[8R7MZWD@J\>&7 ' 5L-C;DX KV58HTD:18U#
MO]Y@.3]32-!"\@D:)&< KN*@G'IGTH \ZMM/L]7^)6CMJ-M%=F/PRDJB==X#
MF4#=@\9PQY]ZQ8+0V'@FXU>QBPWAGQ%=W$,2#I;+,RRQCT'ELQQ["O8@BAMP
M49 QG';TK.US2?[9T"^TI+A[07D31--$H+*&X;'N1G\Z ,'X?H;ZRU'Q-(#Y
MFN7;7$>X8(MU^2$?]\+N_P"!5B>'AHMAXR\:6+I8V^IM<^9;1%564Q&V0DH.
MNWALX]\UZ+9VD-A906=N@2""-8HU'\*J, ?D*>8HS+YIC3S,;=^.<>F: /']
M#T^TU*#X46][;QW$(T^Y?RY!N4E8HR,CH<$ \^E(WAW1_P#A&_BA+_9ML7@G
MNE@)C!\H"W60!/[OSL6XQS7L0C1=N$4;1A<#I]*/+3##8N&^\,=?K0!Y!?SS
M+XQTNYU/4](LH)= A%K<:S;&:%G))E"DR(%<_(3DDD8KN? FFVMGX.BM(-2M
MM4LWDF,<MO'MAV-(Q*(-S?*"2!R>!72200S1^7+$DB?W64$?E3P H    X %
M '@<D5_+:/I,/FF;P");I3S^]*S*T(]\P+(/QK:O6&J> -9\3X/_ !.M<M98
M2PP?L\=S%%%QVX0M_P "KV'RT!8A%RWWCCK]:/+38$V+L&,+C@8H \^MET6P
M^,FJK?)8P7-W96CV7FJJM+)NE#%,]6SC..:Y.71].C^#>NZJEE -1&ISS"ZV
M#S%=+PA2&ZC ';W]37MC11NZNT:LZ?=8C)7Z4OEQ["FQ=IZKCB@#S'Q)_P A
M?XD_]BS'_P"@7%*-(T[2;SX;SZ?90VTSRLCR1H SA[5V;<>K9(SSWKTTQH2Q
M**=PPV1U'H:"BG;\H^7[O'3Z4 5-/U:QU7[7]AG$WV2X>UGPI&R5<;EY'.,C
MD<5XU+<>$8M&^(5OJJ6?]L3ZA>K DR?OIB21$(L\MA\_=Z'K7L6C:/:Z%IRV
M5IO*[VD>20Y>5V)9G8]V))-7#!"SJQBC+*2RDJ,@GJ10!YK:ZG%X;\<:9<^)
MKR.R:;PO!"T]R^U7G20F1<GJWS XZG-<\!87'P\TS4[R"/[+#XL:662YBQY4
M+7;;MVX?*.F0?QKVR2*.7;YD:/M.Y=PS@^HH,4;1M&8U*-G<I'!SUR* .8\5
MRV4WPMUV337@>R;2;@PM;D&,KY;8VXXQ]*YL:1IVDZE\.)M/LH;:5Y'CDDC0
M!G5K5V;<>K9(!Y[\UZ8(T$?EA%V8QMQQCTQ1L4[<J/E^[QT^E 'B)G\.K\._
M$.GZP+5O%TMQ=J\#J#=R7+2-Y!C'WB,&/:1QBNB2/3M-^*&E2>(%L8KNXT&)
M!+<*@\V[$J@[2>K\C&.:]*,$1F$QB0R@8#E1N ^M*\4<C*7C5BARI89VGU%
M''^/=6@T^XT.WGMM*'VJX=4OM63=;VA5"<GD?,W0<COS7GC);W?PJ\=L397,
M4>L^9#);0;(1D0?-&I+;0=QZ$YR3T->YR11S(4EC61#U5AD&CRH]I78NUNHQ
MUH \Z\7VGA[2/''A&XU"UTVTTT17L<DDT2)$&VH4!)&.NXC/?.*PM12)O%_B
M^VUK6/#^G&Z=!'_;%GYC26QB 7RG,J# .[@ X;)->Q211S*%EC5U!SAAD9I)
M8(9BIEBCD*G*EE!P?:@#S.UT*QNO''A.RU!X]7BM?#CM'--'E9B'B42%3G.0
M2><]<]:]"MM3T^74[G2+>9?M5E'&\L"J1Y:/G9VQSM/3TJ[M7=NVC<!C..<5
M0T_1[73KS4+R+>]S?S"6>60Y8X 55'HJ@8 ^O<F@#C)ET6Q^-,K:@EC!+=Z5
M;_96G55,L_GR [">K\KTYZ5Q5]IU]=M>^"K/S$D\,SW>K6N,X(^62U7/?F5Q
M_P  KW5HHW='>-69#E21DK]/2E"*'+A1N(P3CDT >,W=Q-XE\">*O%UO%,8-
M3N+>()&#O^PPLBR@8YYS,3[9K<CG\/:A\0O"TGA!K"7[/%<&^?3@NQ+8QX19
M"O ^?;A3R,&O2T144*BA5'0 8%,B@B@#"*)(PQR=B@9/K0!P?CY-)MO%W@_4
M=8CLTLEN+B*>XNE78 8'V*S-QC=TSWI-"TK2]0^*/BF^FM+>X>WCL?LSN@81
M@QDY3/ /RKR/05WTD4<R;)45U_NL,BG!5#%@H!/4@=: /"]5UJVU-;">!- T
M^9/$,6-/AMR;^-EN0K/(X8;=W4Y7!W 9R:V;N7PY#K7CJ#Q4EJVI7$J_9([A
M-TDT!A41"$=2=V[[G(->L>1#YC2>5'O;&YMHR<=,FE:&-Y%D:-"Z_=8J,CZ&
M@#ROPI_Q^?#'_L W'_H$%8]MI&G6_P %+/5HK*%-1&IQ3"Z"#S0_VX(#NZ_=
MX^E>VB-%VX11M&%P.@]J/+39LV+MZ[<<>M 'A_B>XM;CQ'XTTF[;2K=;Z>&-
MKS4?,\VU00Q_,F(RI7J5^=<')-=]\0(V/PIU*/2LR1?94V_9OXH-R[]NWL8]
MW2I9_!-QY^JK8>(+NRLM5E::ZMU@B<[G4*VQV4E<@#KG':NFTZPM]*TRUTZT
M4K;6L*0Q*3DA5  Y^@H \RCN?"5W\3O"$OA<6+[(+I9I+%!L"^3\BL5XW?>X
M/(K!_MJVU6Y\*W-LN@6$AUZ+&FV=N?MEN/,9&\UPWRYSR"@R2.37N$<$,0 C
MBC0 DC:H&">M @A#LXBC#,068*,DCH30!Y)K5O-;>)=1\ Q(XM?$=]%?QLHX
M2!LM=C/;F+I_TUJUK5WIOA_QG<WME=:/JDMY?6L5SH\Z*;N*0;$5H#UP!AL$
M8&"017?'0(G\6KX@EG=Y8[,VD,) VQ@MN9A[G"CZ"M,P1&83&)/- P'VC<!Z
M9H XKXEF)+?0)=07=HD>K1-J.X901[6VF0?W ^S.>.E9E@FC:K\0=5FT%+.Y
MT<Z+Y5^]JJM;R7'F9C!Q\K,$W>N 17I;*&4JP!!&"#WIL44<,8CBC2-!T55
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
M=XC=3_.PVJP!;:#C..IP*L:QI&?A=X5T^.P)1;C3/-MQ#G WH7W+CZYS[YH
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
M.5QE<9&20,9'K6CJ7B71='2%M0U.VMUGC,L1=^)%!4$KZ_?7IUR,5R=OI?\
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
MI^EWD%A8O>R2I=,'D@\Q&(+D$\EF/<]:[/6K%]3T+4;"*3RY+JVDA5_[I92
M?UJ]10!Y88-9UOPGH?A)O#E]8W-I):+=W4H001) RDM&X8[B=F  /XN<5U7A
MK3KJS\4^+KJ>W:.*[O87@D(_UBB!%)'L""/SKJ:* .3\=:??W5OHVH6%H]Z^
ME:G'>R6J$!Y8PK*VW) +#=D GM5338;[7_'A\0-I=WIUC;:8]DGVQ0DL[O(&
M)V@DA5"]3C)/%=O10!Y-;:;J]Q\(;;PX^B7T.H:=-9QR+(B[9=MPK,R$$[E"
MKDGWKI];T6\U#QW%-%&Z6TFA75HUR!PDCO'M'UP"?PKLJ* /)_#.@%+70M)U
MC2/%)N].DAR#<[K)'BQMD4[\;.,@ 9YQBNN\(:7<6DOBC[;:F-;S69IH]X_U
ML12, ^X.#7544 >*VW@[Q"EC>M)82FX\-".+0R2";E8[EI<K_O1B-/PK>3P[
MJH\'^'S+9R'4I_$%OJNH(.L9:?>V?]U2!_P&O3** /.;FVU"#QK'-X>TW6K&
M:?4%.I"7:;"XAZ/+RQPY4#&W#9ZBL9/#<MD-:T?5M,\47D5W>W$L?]FW'^CW
M$4K%AN^<!6Y(.['3/->OT4 <3?0K-\4_#=I "%TO3+J>3)SA9#'&@)]]K?D:
MW_#>NIXCTG^T8K:2&%II(XMY!\Q4<J'&.QQD5<72[);R[O!;I]HNT6.>0\ET
M7.U?H-QX]S4\$$-K;QV]O$D4,2A(XT4!54#   Z"@#D;=+W2_B?JL[Z9=S6>
MJVMJD5U"H:.-HO,#"0Y!7[P/O6"_A[53\&+S2182_P!H/>22+!CYB#>EP?\
MOGGZ5ZA10!YEJFC7>G>.];U&>V\0S66IK \$FC3$;61-C)(H8'L"#TY-=QX:
MTZVTKPW865I:3VD$40"07#AI(\\X8@D9Y[$UJT4 >/VE_J3:-XXT2R\/7M[)
M?ZK?P6\\.PP[G^4^8204VY!R1R.E=3H7A^\TOQO:22Q,]O;>&[>Q^U8^5I$D
M.0#],&NLL-,L],%R+. 1"YG>YFPQ.Z1^6;D]_P JMT >3RZ!/IVK^([;4K#Q
M-=6VI7LES"VDS_N98Y% *.NX;6&"/FX(QS6K!;7?@[Q7->0:#J-]IEYIEK;0
MBU"RR6[0AAY;@L."&'S9QD?C7H=% 'GVK:%JNOZ_JTAM)+,:CX5^QAG8%8IV
M>0E"PZD;AG%4O#6D)+/H=OJ6D>*EO-/9'/VJYW6D$J(5W*=^&7J!M!Z]*].H
MH \=U&Q\4:N((]0L]=FU*'68I90&1;%(%N 5* 'Y_DVGN>I/2NY\/Z==6OC7
MQ=>S6[1PW<UL8)2.) L"J<?0Y%=310!X[+8^*-6FT?\ M.SUV74[?6H9[S<R
M+91Q+-P8P#\P"XYY/4DUUEEI%\DWCTO:.!?S9MB1_KA]F1>/^! BNVHH \PT
MNRU;PQ=^&-8FT:^O(5\.0Z9<PVJ!YK:5=K9*DC(/(..A IVN6&I7/BNQ\37&
MF:[#:3Z:;22#39P+BW<2EUWA6Y# \X)P0*]-HH P/"&G6VGZ*_V:SU"T%Q<2
M7#IJ#AIF=CRS?,<9QG&<^M<QK5MJ$7BXW7AS3=:M-4FNX1=2?*;"[B!4,\F6
M(!"9 ( ;(%>C44 <+:Z/?I:>/U>T<-J%Q*UJ"/\ 7 VR*,?\"!%9CQ>(;*T\
M-64UOK:Z7%HL4<D>D[!-]K 4%9"3E5 Z8(&<Y->FT4 >6>'O#NL6FC>!8;BP
MGCEL=4NY;I7(8Q(WG[2Q[YW+S[UU?@G3[O3[?7%NX'A,^M7<\0;^*-GRK#V(
MKJ** //VN=4\/>/O$FI?\([J-_8WT5JL,MFJL=\:-P5)!P=WWN@(YZUST7@[
M6-'TOPC=7-MJ,GV*.[6]@TJ?;/ 9W\P;<$;@I^4@'W&:]AHH YGP;I]K:6U_
M=6]EJUM)=W&^5M5DW2RD(JAOO$@8&.<'CITKG?'N@:U-KWF:';N\6NV8TK49
M$.! OF B8^N$:5?RKTBB@#@[FVNO"OCA]4M]&O+[2KC3(;)!8H'>V:)F(7:2
M#M(;J.XYK*C\.:R=*MKJ33Y(I[WQ;'JSVH(9K:$L!\V#C.%#''<UZC10!YE)
M#K.C1>,-&C\/WM_)J]U/<V=S#L\EEEC"X=B?E*D$8QDC&,UVWA2VFLO!VB6M
MS&T4\&GP1R1MU5EC4$'Z$5KT4 >.W5CXHU:335U*SUV;4K?6X)[G+(MC'"EP
M"#& ?F 3![GJ3776.DWL>J>.Y)+5PE_(AMF(_P!:!;*O'_ @17:44 >7:58:
MMX9F\):O-HU[>1P^'ETRZ@MD#2V\OR,"5)&0=I4XZ8KH? %IJ4">(;C4].DL
M)+W5Y+J.&1@QV-''@Y'!Z$''<'K7844 <;>)>Z?\4H=3&F7=S8WFF)9>=;J&
M$,@F9B7R1A<-G/L:R)-!U,_#OQU8BQE-U?7VH26T6.95=OD(^O:O2:* /,=4
MT2]L/%YU6>VUV:RN].@@W:/,5DBECW95U!!*D-D'G!S7:>$].MM+\.6]O:V=
MY:1%I)/)O7#3 L[,2Q!(R22>O>MJB@#C=*2]TSXD>(/.TR[>UU4V\L%Y&H,*
MB.':P<YRIRO QSD5GZ+8>(M%^"T-GIEJT&O0VS>7"RKN5C(2< \;MI)&>,XK
MT*B@#S+P_INH2^/1J?V37OL7]C36_GZNZ[S*9(SM"@_*, ]@#@XZ4MOH&J)\
M,?!NGFQE%Y9WUA)<0X^:-4E!<GZ#K7IE% 'G-Q;:A;^-8YO#VFZU8RSZ@IU(
M2[38W$/1Y>6.'*@8VX;/45A^(;'Q1K-MJ%I>6>NSW_\ ::-&L3(MBMLLZLA
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
M<'_OG!KU"B@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MKG_&VLWGA_P=JFJ6%JUQ<V]N[IC;B,A2=[!B,J,9('/H#705D^*=,FUKPGJ^
MEV[*L]Y9RP1E^@9D(&?;)H R%\:/;>']/N[_ $:_CU"^D6"VL%\MI;ARN[<N
M'*A<9.6(P!SVS?T+Q.FL7]YIMQI]UINIVBH\MK<["2C9VNK(Q5EX(X/!'-<[
M<:9XDNK/PUK":/'%JFARLK6$EVI$\31>6Q5QP#SD ^G.*T]!TS5;KQ;?>)M7
MLTL&DLX[&WM!,)6"*S.S.R\9);@#. * -O7-;M?#^EO?W8D=0RQI%$NZ261B
M%5%'<DD"LJV\9(9;^VU+2KW3KVSLVOOL\S1N981G+(R,5.",$$C!(H\>^'9_
M$OAU+:U6*2XMKJ&[CAE<HDQC;)0L.1D9&>QQ6/I_AMFM=6:+PBFD74VGRVT<
MTE\)G<L/N#!("Y .21TZ4 7M-^(5OJ%SI(?1M3M+'5B$LKVX1 DC[2VW 8L,
M@'!(P<<<<U'J7Q%CLOM,UOH.I7MC;WHL'NXFA5#/O";0'<'&XA=Q &:;+X;U
M-_#W@:S$2>=I%S:278WCY%C@9&P>_)'2N @E>UL=3\2W=LFH:)#K$]V;?^U3
M"7=9SM;[-L*E@0,*7&X@$C)H ]/USQ=/H:W,\GAS5)[&TC$MU=QF(+&NW<2H
M+AGVCK@8X/6G:GXPCM;V.RT[2[W5KDV@OG2U**$A)(5B79<DD'"C)X-<EXI\
M+^(-:N?$*-IKZC'?P[=-G?43#%:*8L%6BS][=DYP<Y&2!5#4M-U*Z\9M96;H
M)K'0K6WNE_M)K$@$N2H94<R ^N!M['DT =G!X^@N](TB[M=)OIKO5U9[.Q5H
MO,:-1DNS;]BJ 1U.>0,9K8T#7X=>M[EEMY[6YM)S;W5K< ;X9  <':2"""""
M"00:\\32(_$^D^&-?TGP^DUGI\,]B^E&[V?(&"!HI> V#'U.-P/K7<^$M+CT
MVQN"N@IH[SS;VA%QYS/A0 S,. >,8!/ '- "ZY>QVWB+PY;O<WT3W5Q*B1P%
M1'(1$S$2YY(P,C'?%8L_Q,M(8KVZ&B:J^G:?=R6M[>JB".%E?83@MN<="=H.
M >>>*UM?TB\O_$_A>^MT5H-/NII+@E@"JM Z# [\D5S\_A/5G^'/BO1EA3[;
MJ-Y>RVZ>8,,LDA9,GH,CUH ]#!!&1R#7%:)XLU?4/'FN:-/HETMG:21+'-NB
MQ""A;<^'R0Q (P"0#SBNRB4I"BGJ% -<K8Z?J^F?$/6+Q=/6?3-66W8W2SJI
M@,<;*04/)R<8QZT <SX(\=R6?A'1_P"TM.U66UDN#:R:K)M,8E>9@H.6WE<D
M+NQ@'C-=5J7C5+.]U""ST;4-2CTP W\]MY86$[=VT;F!=@I!(4'&1WXK#C\(
MZNOPFL- ,*?VA#=12NGF# 5;H2'GI]WFJ]YX-GM/$FM7+^&4URUU*X^TQ2+?
M>0T3% K(ZD@$97((SUZ4 >C65Y!J-A;WMK()+>XC66)Q_$K#(/Y&N1M/%FKS
M?$?4M!;1+IK&"*$K*K1#R]S.#(WSY*G:, #<,'(%=7IEJEEI5I:QVT=JD,*1
MK!&VY8@ !M!P,@=,USAT_5[#XD7&J6]@MUIVHV<%O),)U0V[1LY)*GE@0_;T
MH =H_CA-<GNOL6B:H]K:M/'+<[$V^9&2-BC=EB<<8&.0#SG$VG^+7N-=M](U
M'1+_ $NXNXGFM3<M$PF5,;A\CMM8!@<&J6BZ#K6G> ]5TV"1+359IKV2UDW
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
MW5Y[R6VBNPFP.=RO&S8Y!XZJ<?E0!>\3^,M:TJVT"6V\/7J27VHK;SPR-"6
M^8; ?,QN;&5;.,#DCI7:6LTEQ:0S2V\EO(Z!FAD*EHR1]TE21D>Q(KSQO#?B
M9?"&D"1#>7^G:RM_':37>]Q;AFVQ&9N&8*W4^F,UZ':R336D,EQ!]GF= TD.
M\-L8CE<C@X]: .>?QFC>++GP]9Z1J%W<VDD2W4T2H(H4D4$.69AQ\W0<_*>.
M*K2?$&UC$EX-*OWT2*Y^S2:J/+\H/OV$A=V\H&X+!<?A5W1=(O++QCXGU&=%
M%M?O;&W8,"6"1!6R.W-<5I?@.32X6TB\\(0:M$MPYCOSJ&Q'B9RP+H3D, <8
M"D'% &@MY>:O\8;JTNM.U;[+IT$!M_*O%CAC):0F9U60;P^T  @G Y K9T#Q
MXOB/3GU*QT#5S8" R1S&-/WS@@&-%W9)R>O"\'GBKEAI%Y;^/]9U:1%%G=65
MK#$VX9+(9"PQU'WA6-I_AWQ#8?!V+0;.5;37([7RU99<8;?D@..A*Y /8G-
M&M8>*C?:G<Z/?Z5?Z3?K:&[1)FB??%G:65D9AD$C@^HK*T_QO:V'A_PPD5OK
M&JSZO;.]J&"-/(4"D^8<A0<-UZ  Y-4_#WA;4;?QBVK?V(=,LVTF6TV3:@;F
M5I3)&P+$D\$ ]">G.,U-H'A35K#_ (0+[1"B_P!CV5Q#>8D!V,Z*% ]>0>E
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
MH2"5/IQQ3Z9"[R01O)&8I&4%HR02IQR,C@XI] !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%<YX\URY\.>"=3U2S"FZC14A+#(#NZHI/T+ _
MA0!T=%<II?@>'39K2\.M:U-J$9#3SR7\C+<'N&C)*!3Z #'&#69+\0M1_LB?
MQ';^'UF\-02,&N?M>)WC5BK2K%MP5!!."P) S0!WU%<A>>+]1?Q6^@Z-HBWS
M):PWC7+W7E1B-V8'^$G/RC [Y/3'-.X\=:RQUR73?#*W-KHMQ)%<RO>B,R!%
M#'RUV'+8.<' Z8)SP =W64WAG06U/^TFT33C?[M_VDVJ>9N]=V,Y]ZQ9?&D^
MH7EC9>&M-CU"XNK!-19KFX\B.&%_N9(5B6// ';K52;XBM#X<_M#^Q)GOXM5
M72KC3UF!9)R0,*V,,#E2.F<]J .ZK-U+P]HNLR1R:II%A>O&,(US;I(5'H"P
M-9DVK>)XM-MY#H.GI=N7\X2ZGMAA (V_/Y9+%L] N!@\],\OJ_CG7+[0M U#
M1K"*&2?65L;N)[L??60H8@VP@HQ!^<8(&.#F@#TJ**."%(88TCB0!51% "@=
M  .E/KCFUB*U\:*VJ6C6UU%H#W=Q(EXTD4:+*-RA, ,1UWX!P,8JM%X\U2.T
MTW5]0\/+:Z%J,L4<5P+S?-$)2!&\D>T  DKT8D9H [JBN'OO&^L+J&OVVE^&
MUNX]$<>?-)>B(2+Y2R80;"2_)X/' YYP.HL]8@O?#L&M0I(UO/:+=HH7+E2F
MX#'K@T :%%<CH/C*XU+P_-XAO[*SMM'6T:[6:WO?/=5 W%778NU@.H!.",54
MTSQ_<7%]I*ZAIMK;6FKOY=J\-^)I8V*EE65 HVY /0M@\&@#N:*Y+2O%>K:Y
M=?:=-T&.70_M36PNVO LKA7*-*L97!0$'^+) Z=J;+XY\OP;KWB#^SL_V5<7
M,'D>=_K?)<IG=MXSC/0X]Z .OHKD=2\6ZI'XJ'A_2=!6]G^Q1WK3270BC1&=
ME()VGGY1C'7)Z8KFO$7B&_TWPUXQO- MGANK35EAFGEO"V,K$2Z*RD#.X+LZ
M=3GM0!ZG17'W.HS_ /"3>%(]7TT6^H7#7>T6]^SQ1;8\_,-JB3(]0-IZ5G1?
M$TR00:M_9]J-!FN5MTF^W#[2%9]BRF';]PL1QNS@YQ0!Z#17*V?BJ^U/Q3?Z
M78Z;:M;:?<+;W+RWNR<956WK%L.4^;J6&<'%;NJ7-[:V+2:?9)>7.0%B><1+
MUY+,0< => 3[4 7:*XB+Q[<1:;XF>^TR!;[0;87+QVUYYL4Z,C,NU]H(^X0<
MKQ[U-I_C+4I=;TFTU/018VNL([64HNA(X94W[9$"@*2H)&"W3% '8DXZT5Y%
MXZ\6:GKWPZUVYM-"!T)BUO'>_:AYK;) ID\K;]S<"/O9[XKTOQ#JW]@^&]2U
M?R?/^Q6TEQY6[;OVJ3C.#C..N* -*BN";QWKD=_IMK)X4(;5XF?3@+Y2Q*@,
M1-\N(QM.[@MTQ@FM32?%&HZII>J;=%4:QIMU]EELA=#RV;"D,)"H^7:P;[N>
M",$T =317"GQYJ-O#KL-UHMN^I:59K?"&TOO-CGB)8'#[ 0PVMP5YX]:VO\
MA*H;C6]#T^PA^TIJEJ]ZTP?'DP!5VOC!SN9U Z=_2@#H**YKQ)XGN]&UC2-*
ML-).H76IB;RP9Q$J&,*<L2#\N&.3UXX!S6>GC\V^A:I<ZEI30ZGIUZM@]C!,
M)/.F?;Y81R!PV]>2!CGTH [6BN1M_%6LPZS%H^KZ';VM[>V\LU@8;XRQ3/&
M6C9M@*'!!S@C&?2H/AMK7B#6]#:?6;>#8)[A4N%N-[N5F==I0(H 4# .3G&<
M#- ':T5QE[KEOI7B7Q3<K9RR7&G:/'>.3=-LE $I"!,$(?D^\,YSTXY;IWC;
M4I]1T5-1T 6-AK0(LYOM8DD5@A<"1 H"[E!Q@GWQV .TW+NVY&[&<9YH(#*5
M8 @C!![UY'X>U)M.U7QCXL\0Z+9J]A=RJUY'<^=-%MCC"P1@H,J0W7(Y/3O7
M6V_BW6+75=+M?$&@Q:?!JCF*VFAO/.,<NTL(Y!L7!(!Y!89&/>@#KP JA5
M P .U+7$6/C?5-0;6+B+P\J:9I4UW!-<R7F#(\.[&Q=O(.T9)Z%N^*J1_$36
M?*T:YD\)N+;6E"V(2]4R&0IO4."H"J1D[LD@#)&>* /0J*Y[PUXBNM7O-5T[
M4M/2QU+3)42:.*?SHV5UW(RMM4\C/!'&*3Q%K6MZ47DT_2+.YMHHO,>6ZU 0
M;SSE$&QLG ZG YH Z*BN+N/'DTL?AK^R-&>]EU^UDN($><1"+:J-\YP>,.<D
M9Z< YJ*/X@3Q6GF:AI MY;;5TTO4%6YWI;[P-DH;:-R$NG7!&[VH [FBL:SU
M[[=XJU/1H;;,6G0Q--<[_P#EK)DB,+CLH!)S_$.*S[_Q/J<GB"\T;P_H\-_/
M81QR7<ES=^0B%P2J+A&+,0,] !D<\T =31D9QGGTKS36/'&LWVE^&-0T&Q6,
M7FJBTNH)[@(PD7>K0-\C<$J?G'/ XYX?>WVMP?%6,V6CPW.H2^'8_-B:[V0P
MGSW)S)MR1G@87GVH ](HKB/^%B1MX9T_4%T[;J5[>/8)8RW 14F0L'W28P$7
M8QW8].,FF-\0WM=(\0S7FGV_V_18$N'BM;SS8IT?.TK)M!'*L""O&.^: .ZH
MK)T'4-4U*U>XU+2ETX.0T$?GB1RA&1O  "MZ@$_6N:N/'>LL-<FT[PR+FTT6
MYEAN97O0AD" ,?+78<MM.<' Z $]@#NZ*XR\\>"6[L;/1+:UN9KJP34"][=_
M9HXX7^X,[6)8\\ <8R35>3XC.^BZ/>6.BR75WJ-])IYM!<*#%,@?(WX(*[D^
M]_=.?:@#NZ*XRY\7:S%K-IH<>C6/]KR6?VN:*;4?+0C>5V1-Y9+M\N3P  1F
MK6H>)]3;7YM%T'2(;Z[M8$GO'N;KR(X=^=B A6+,0I/0 #O0!U-%</+\1&_L
M#2[^VT6::\O-3.E26)F57AG429!;&" T?7C@Y[8K5\.^([W4]6U/2-5TV.PU
M&P6*1EAN/.CDCD#;65MJGJK @CM0!T=!( R3@5S&J>)=07Q"^A:%I45_>0VZ
MW-R]Q<^1%"K$A%R%8ECM/&.@ZUQ_C'Q+>>)/!-HMOI2+YFLQ:?J5I/=;2DBS
M*#%D*0RL>"W'!!P<XH ]6!# $$$'H12D@=3BL%X[K1O!;KIFE6=K=06Y9+**
M;;#$W4A6V=!DG[O/M7GVH:SK>H_"#1]2U:S62=KG398VAG#R77[U#DKM4(Q/
M;)'/6@#U^BN/MO&EU:ZEJ%CXCTI-->UT]M35X;GSU:!3A\G:N&!QQR#G@U6T
MSQ_<7%]I"W^FVMM::N_EVKPWXFEC8J642QA1MR >A;!X- '<T9YQ6'XG\0MX
M?L[3R+,WM]?7*6EI;"38'D8$_,V#M4!22<'I7'66NW-C\0?$.J>(+ :>;'08
MGF6*;SD=%DE;<C8!(/3! .01[T >FT5Q.E^.[FXU72K;4M-M+:'5LBU:WOQ.
M\;A"X65=HVDJ#T+#(Q[U2;XD:DNE7&MGPV!HUG>/:W4YO1YF%E,9>--OS <$
MY*]P,XS0!Z'17*QWZIXWU^&UL)YKZWTZWE ^UD+-DR;4"-\J'*_>[Y]J32?%
M=_-XH70=7TVTM;B:V>YA>TO?M"X1E#(^44JPW ]P: .K!!&0<BBN.^%?_),M
M$_ZY/_Z,:NQH **** "BBB@ HHHH **** "BBB@ HHHH HZGHNE:U&D>J:;9
MWR(<HMS L@4^VX'%6+2SM;"U2VL[:&WMXQA(H4"*OT X%344 %%%% !4%I9V
MMA;+;V=O%;P*21'$@10222<#U))_&IZ* "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH *ANK2VOK9[:[MXKBWD&'BE0.K#W!X-344 4-,T32=%1T
MTO3+.Q5SEQ;0+'N^NT#-7Z** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ K*\2:%;^)O#M]HUTS)%=1[-Z]4;.58>X(!_"M6B@#
ME-*@\=1RVMOJ=WH;6L) FNH4E,TZC_8.%0GN<GO@5A+X)\2P^&9_!T%YI@T&
M5GC6[._[2EN[%BFS&TM@E0V[IVKTBB@#GM/\/2V/C&]U97B%G-I]O:11@G>I
MC9R<\8QAAW]:XK2K'Q/J$GC>ST:?3$M+O6+B"1[H.)("8XPSKM!#\$8!Q@CJ
M<UZM2!57. !DY.!U- '#KX0U7P_J=C?>&9+*81:9%ID]O?LZ!UB^Y(&0,0W)
M!&,&F)X%O_[*@6:\MI-1EU^+6;UP&6/*NI*1CDX"JH&>N,G&:[RB@#C_ !;X
M7OM8US3-2MX-,OX;2*6-K#5"WD[FVXE&%;YA@CD=#U%94/@'5K/P?;Z?!<:=
M_:-IK7]JPA5:.W;$I<)@ E!@XXSCWKT6B@#D9_"UYJVO/J&J/;)%<Z%)IES%
M;LQ(=W#$J2!E<9Y//M69%X2\3WNE:5X>U>ZTLZ/I\D#/<6_F>?=)"044H1M3
M)5<D,>G%>@T4 <Q:^&KJ"X\6R--"1K,@>#!/R#R%C^;CU4GC/%7]"TR[T;P;
MINE"2!KVSL([<.03&9$C"Y[$KD>QQ6Q10!Y]:^ [V]U/5[G4X=+TV'4M-DL9
MX-*9RL[.?]<^Y5&X#('!/)R:L>&O"VJ:3<6$5WH_A<1VBA6O[:%A<2X7 8+L
M 1CP2=Q[UW-% '%^']!\3^'&72;2?2GT-+MYHYI?,^T+$\A=H]H&TG+$!MWX
M5D:IX'\43:+XB\/V%[I2:9JES/<I/,)#,GFG>8RH&W&[^+)..V:]+HH Y^VT
M&X@\;SZXTL1MY-,ALP@)W[TD=B>F,88=ZQ;_ ,#WM[H/B_3Q=6Z2:S>_:K9^
M2$PL0 ?C^]'SC/!KNJ* .5?1-9U/6O#>JZG]@BFTXW/VF*WD=E82)L7864$^
M^<?C6)H7@74- 6WTZ/2O#%Y8V\V8[^XA/VKRMV<%0F"X!P&W#H#BO1:* .'U
MGPMK&M>)K&\DAT:WCLKU)X]1@,@NS$ISY1&,88?*?F(P3\M:OC70+OQ'HD5I
M:20;XKJ*X>"Y+"&Y5#DQ28R=I^AZ#BNCHH \X@\ :E]B\7(8]&L6US3TM8+>
MQ5EB@95D7YCM&?O@[@!WXXYZ*\\.75QJ?A2Y66$)H[NTX).7W0-&-O'J0><<
M5TM% 'F%YX$\4MX0O_"%E>Z2FD2/(UO<2B0S[&D,@C90-HP3C<">.U=SXHTJ
M;7/"FK:5;NB37EI+ C29VAF4@$XR<<UK44 <U<>'+J76_"MZLL(CTA)EF4DY
M??$$&WCU]<5CZIX&U*]L?$T,-W;*VJ:C#>11N6V.B+&#%+@9PVP@XSP?PKO:
M* .)\,>$+O2_$U_JUU9Z-9V]U91VPLM-0A$*LQ))*J&R&ZX'ICC)R_A1HQMS
MJ^H&<W%M%</IFF2$=+2&1R,'N-S$?\ %>E4BJJ+M4  =@* ,+5-#N+[Q=H&K
MQR1+!IRW*RHQ.YO,55&WC'&TYS6%J/@2\OQXB=+V&&XO=2M]1L9,%A$\*1@;
MQQP2AZ=C7=T4 <C9:'KVH^*+#6_$3:=%_9L4J6MO8.[AGD #.S.!_",!0.YY
MJ;P=HFK^'8;K3;MK*73EN)IK66)G\TB21GPZD8&-Q'!.:ZBB@#D-5\)WE_J7
MBBYCG@5-7T=;"$,3E' E&6X^[^\'3)X/%37/AB[F3PB%FA']BS+)/DGYP(&C
M^7CU8'G'%=310!Q4O@:2]T+Q;I=W=(BZW?274,D628@4C"[@<<AH\X';O2QZ
M#XEUG5='F\22Z6EMI4WVE5L6D9KB8(55FW ; -Q.!GGO7:44 <KIGAB[LO#7
MB#39)H6EU*ZO9XF4G:HF9BH;CJ,C./UJ+_A$[S^SO!=OY\&[0GB:X.3A]L#1
MG9QZD'G'%=?10!@Z5H=Q8>+/$&K221-#J7V;RD4G<OEQE3NXQU/&*P?$/@S4
M=3\47>I1P:-?P75HENG]J(SFQ(W9:)<$-NR"1E3D#FN\HH XG1O!M]IS^#&E
MN+=O[#L9K:XVEOG9T104XZ94]<4S4O"\46A^.6U:XB6QU1GN@ZY)A58%&X\=
M0R;N/05W-(RAE*L 0>"#WH X_P"&=A=V_@V#4-38OJ>K,;^Z<C!+.!M'MA @
MQ[4MUH7B'3/%.IZQX>?3)H]42+[1!?O(GER1KM5U* Y!7&5..G6NPZ44 <%+
MX%U"U\*:3:6%Y;3ZK8:H-5DDN R13REG+@[<E1^\..#T%;5GHFH?\)FOB"[>
MV&[2([*6*%F.)1(78C('R\X!//M71T4 >=3_  \O)-#MX_,T^:^L]8N-1A2Y
M0O!*DKN?+<8R/E?J <$=ZM7?A+4M2\'Z]I3:=X?TNYU" 10_8 VW//,C;%)]
ML+QSUS7=T4 -C4I$BGJ !7E6E6'B?43XVLM'N-,CL[S6+F"1[H.)("40,Z[0
M0_!X!Q@CJ<UZO2!57. !DY.!U- 'G]Y\/Y++4M/O=)M-)U%+?38M-DM=60[2
ML?W)%8*V&Y((Q@UI/X7O9QX:D,6EV;Z9?O=3PV:,D6TI(H"#')^=<DXSR?:N
MOHH XWQOX<U;Q-!)806>B36KQ8BN;LR">TD.<R)M4Y(X(P5Y')(IC>'/$.C:
M]/JN@W%A>->VD$%XFHNZ$R1 JLH9 W4$Y4C\:[6B@#A;?P+=V^GZ'&;R&6[M
MM;;6+^4J565W$F\(.<<R #/85N66AW%MXVU76VDB-O>6EO B G<&C,A)/&,?
M.,<^M;U% '):CH6NV7BRXU_P\^GRF]MH[>[MKYW09C+;'5E5NS$$$?C5$>!+
MT>'(+1KR"34)=;CU>]EVE8V<2AW5!R<8 49].<5W=% $5S"+FUF@)($J,A([
M9&*X.V\'^('\#:?X=O9=,#:=<VA@FA>0B2*&16)8%>&(7H,C/>O0:* .4UKP
MBVM^([J[GF1;&YT2;2Y%7/F R.#N'&,  ]^M4?#7A;5-)GL(KO2/"_EVBA6O
M[>%A<2X7 8+L 1CP2=Q[UW-% '.^+M!O=9@TZXTR:"+4=,O%N[?[0#Y;D!E9
M&QR 58\CVK#/@O6-:U#7;KQ!=6*IJNE#3Q%9!C]GPSG@L!O^]G/'/&,#GOJ*
M .*\-^&M4TR[LA>Z-X7C2V7:U[9Q,)Y,*0& V (2<9^9N]0R^"+^3X;ZKX;%
MQ;?:KRYGF20EM@#SF09XSG!QTZUW=% '&:UX/U#4]0\37%O?I:_VKID-G!(A
M;?&Z&0DGV.\#@YZU3\/>"K_3O%5AJ\MAH.G06ME+:M;Z8K9<L4(<L57/W3P1
MQZG/'?T4 <EX;T+7?#OASP_I,-QI[):LXOV8.=\9+$>6>.<D=:ZVBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M59P=1(26V?:%89,;[D.,\8P2: -JY\<?:)M+MO#^ER:K=:A9#4%0S+ L=N<
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
M;.6PZ^4Q9E!P"&P<#I4T,OB.'XD^,6T&VT^Y#+9JZ7<S1;&\D[7!56R!SE<
M],&@#9'C^"]TW1)=&TZ:_O=81Y+>U9Q%Y:I_K#(QR%"GY>^3TJ.7XA)9Z%KE
MWJ&DS6U_HC1B[LO-#\/C8R.!AE(.>@/!&*H6?@?5_#=MX;NM'EM;V_TJ">"Y
MBN',27"S,'<JP#;2'&1D<BDO_!6MZOH?BF:[:RBUC7/(588Y&:&".(C:N\J"
MQ^\2<=30 >(O%_BNULM&N+?P\]B;O588/+ENHF>2)L81A@["V2#_ '=O7FMA
M=6V^,XTNK>[@O1H;74D N]T"@2@%=H&"^?X_3BK7C/1K_6--L6TSR&O+#4(+
MZ..=RB2^6V2I8 XR"><&JQT+5+OQ2NM7*6L/F:&]C)$DI?9,T@;@[1E<#KQ]
M* *&F_$6XO8=$OKCPY<VFDZO)'!#=/.C,)7'R@H.=A((#=^#CD4NK_$&ZL8]
M2N[/0&N]-TZ\%E/<M=K$?-W*IVI@DJ&<#/Z4J>$-27P5X1T@O;_:=(NK*:X.
M\[2L1^;:<<GTZ5Y_+<06UUXAUZ:32+I;?5YYAIMY?S0SS.CX0&!6,9?@!,H2
M1M)H ]VB9WA1I$V.5!9,YVGN,]Z?4=O*9[:*5HVC+H&*/U7(S@^XJ2@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBL7Q=K<GAOPGJ6LQ0K,]
MI"9!&QP&Y% &U17'6_B77K/Q)I5AKNFV4%MJXD6V-M.SO!(B[]DF0 <J#RO&
M1^-0?\)S=?\ "M?^$I^QP^?]H\GR=QVX^U>1G/7IS]: .XHKD'\1:_=^-[_0
M=+T^Q-M8"WEN+JYE9?DD!)554'+<'';CGK63-XV\3/IVN:M9Z-I[:?HMW<Q3
M"6X82W"0L=Q0 $*0HSSU.>/4 ]%HKCI/%6J:QK!TWPO;63^39PWEQ<W[NJ*)
M03&@51DD@$D]![UG3_$6Y'A^SN3:6EE>R:E)IEV]Y*?LUG*F[<6<#)!*@+T^
M\,F@#T*BN*UWQI<Z%::+;7,FCQ:GJADQ/+=%+.-$&2^X@$Y!3"^K=>,UG+\2
MY!X=U:Z$6GW%WIUY#:R7%K<&2SVR[<3%P"0BACN')!4C- 'HU127$$4T4,DT
M:2S9$2,P#/@9.!WP.>*HZ#=WE[IBW%[+I\S.Q,<VGR%XI$[$$]#UXR>G6L&W
M?^T?BY>[^4TG2HDB4]GG=F9A[[8E% '5F[M@Y0W$0<.(RI<9#D9"_4CG%35Q
M^D>!Y=/U+3KVZU4WC6LMW<RAH=OG3S-Q(?F."B90=>.F*^>]/NK.7PX%LI=8
M3QG<:H8K&Y2X>.$C>OREF8)TS[Y(H ^M**\S\2?$6^TCQ%%X;M)M"@OH+);B
M\N]7NC!"7./D3')8]?H:J'XN7UWX?\+W^EZ+%/=ZS=2V;VSS;0LJ\#:_3!)!
MR>U 'J]%>70?%/4-'7Q/:^*]+MX=1T2&.<+92$QSK(0% +<CED&??IQ4MEX]
M\46&M>'X/%&CZ=!8Z^P2V>SF=I('(!59 W!)R!Q_3% 'IE-=TC0O(RJHZLQP
M!7E^C>.O&GB>353I6A::ME83W%J]Q/<,NZ10=@4#G^[D_P"UQTKD=/U[6K_]
MG_4M0\36MOJ^GC;Y+3W4OG3M]I /F$$$!3C&#VH ^@**\TO?&OB"#Q/:>%?#
M>B6,\KZ1%>1M<3LB0C.#N[D    <Y/6JL'Q8O[OP9I=_'IEI#JU]J9TMEN)B
MMM#(.2S-UQC''UY..0#U6BN'\ >+-;\3WFM0ZG;:8D6FW'V436,CNLL@Y)&>
M-N,>_M69KLLB_M >%8A(XC;3;@E QP>'[4 >AK86:71NEM(%N#UF$8#G\<9J
MQ7B[_%SQ5_PCMSXD3P[IYT:PO#;7;FX82/\ .%&Q>V-RY)SR>E;U]\1-4D\?
M3>'=-BT>W2!(77^U)WBDO!( V(<#&0#CG//Z 'I D1G9 ZEEQN4'D9]:9+<P
M0R11RSQQR2G$:LX!<^@'>O+6\3Z;X;\:_$74SI*+-IUM:R23),^ZY+(-JD$E
M5Y(&0/SK"U#5_$^L>-?AU=>(=*LK..>Z:>U:UF+95E4[7!Z,!@^G/M0![I17
MB]U\;IT6ZU:WCT1M(MKOR/L<E[C4)DW!3*J=,<YQ['ZUT4_CGQ)>?$*_\,Z%
MH]E<0V8MYI+J>4KMA=59N.[?,,?0YH ]&JNM_9M((UNX#(9&B"B09+@9*X]0
M.2*X#PQ\0-6\2^+KRP2+1K:TM;N6WDLYKAUO@J9_>!<;2,XX'3GFMG2? L.G
MZG97]Q=_:9;:6XNW_=[/,NYS\\IY. %^55[ ]2: .IM[F"ZB$MO-'-&25WQL
M&&0<$9'H01^%2UQWA%_LGBSQCHZ?ZB"]BO(Q_=\^,,P_[[5C^-:?B;5-1TR*
M%[.;1K:)MWFW&J7)C13QA0 .2>>XQCO0!O57M["SM9'DM[2"%W^^T<84M]2!
MS7"_\+$OYO"&D:I9:9;W%]?:H=,,"W'[HN#(NY7Q]TE <XZ'O4FJ^-M1TB_L
MM#O9_#]GJ\ELUW<W%U=-';(F\JBINPS,V#QQC!Z\4 =]16!X/\2KXIT,WVR%
M)8IY+:802^9&71L%D?\ B4\$'T-9UQXA\0:EK>JV'ANRT]XM*98IYKZ5U\Z4
MJ'V(%'& 1ECW/2@#K'GBCECB>5%DDSL0L 6P,G [X%$T\5O$TL\J11KU=V"@
M?B:\OU#Q'=^(=2^'^M:/8(;NY:] M[B7:L3B(H^Y@"2%(;H,G'O2>+?$%_J/
M@CQ=H^KVUO#J6EM:^8ULY:*6.21&1EW<CH00?2@#U6BN$U'Q#:Z#XB\7ZA_9
M:O-I^EVUP\J.V^<?O<(<\*!MZ@=SG.*FTSQ%XDD\7PZ+?V^CLDFGM?E[260D
M+G:%Y&/O$<]",^F* .UIDL,4ZA98TD4$, Z@@$<@_6N&M/&NHQ^*]-T;4'T&
M9M0:6,1Z?>&26U=4+@2 CD$*1G YJEX6\1:_9VOBS4_$$EI+IVF7MT9/*DD:
M1"BJVR,,,;,9QWR: /2:9--%;Q-+-(D<:C+.[!0![DUY[HWQ'EN]7T>WNYM"
MECU9BB0Z=?>=/:OL+J)!W'!!(Q@UB>-?$FO>(?AMK^HVNFV(T!_,MXV:=A<,
MJ2;#+C&W&Y3\N<XYSVH ]@HJ"Y^TBRE^QB(W/EGRA,2$W8XW8YQGTKS?PMXM
MUS3/AE_;NM+#?_,8K18Y6,T\K3M&%<L, 9*@$9X% 'I]-DD2*-I)'5$4$LS'
M  ]2:Y*U\0Z]8>)=-TCQ%9Z>JZHLGV:>PD<A)$7<4<.!U7.&'ITJG\73??\
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
MF1[9XUW;9 1R",X.!R.E41X[\07,6E:A:66DKI^J:D;""*660SIAG7<V!C^
MD@=,CKS0!Z117FNK?$][:ZUE[.;0DM](F>%[:]OO+NKIHQE_+7MSE5SG<1VK
MT.RNX[^PM[R'/E7$2RID<[6 (_G0!/17F6C>*;BP\(^%(="T2U4ZK<W%O';-
M.RI%M,K;MQR<97)ZG&<=JZGPQKVHZCJ.L:1K%M;1:AIDD0=[5V:*5)%W*1NY
M!X((/I0!TE%<'XNO_$UOX\\,VFCRV:V]RMS^ZGED5966/)\P*.@&"OOFK:^(
M_$%[XUO]#T[3[#[-IQMWN;JXF8921<E44 Y;[V,X''/6@#L:*X+4/&VI:1K]
ME:WQT)H;J_CL_LEO>%KN(2-M5R" #SC(QQGJ:6]\6^)9-1\1P:1I6G/!H;C?
M)<SLIF'E+)L4*#AN3R>.G7G !WE,6&-)'D6-%DDQO8* 6QTR>]<->^/+F:?0
M(M.33[0:O8"^CGU25DC8G;B%2O5_FS].QK3\2:WK&E+"T4OA^S0P[F?4KQDW
MR=T08' X^8GOTH ZFBN%B\=7NKZ?X;71;"#^TM;MWN=MU(?*MD0#>6*C+?,P
M QC.<\53\2ZEXT@U/PI$BZ;;3W%[)%+&EQ(8YF$<A&<+G85 ;'4-CZT >C45
MPEQX@M-"\2^(KZ_L(EGL-&M[FYGA=BTO,GR 'C&5X. >>:D3Q1XCTVZT:77]
M-T^*QU:X2V06LSM+;2."4#[@ V<8)&,'UH [>J[6%F]T+IK2!K@=)C&"X_'&
M:X*[\<>)!9^(=2L](T]M.T*[FBF,MPPDG2/EM@ (4A><GJ>,5?U/QC??\)+;
M:1IBZ9 9[)+N)]3F:/[46)'EQ[0>0 ,]3\PXH [:BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "N2^*$;R_#+Q D:,[M:D!5&2>176U%<W-
MO9V[W%U/'!!&,O)*X55'J2>!0!REGX8UJY\0:7J.O:O;7<6DK)]D2WMC$TCN
MNSS)<L1D*3PH R<^U9$_P\UQ]"G\.1:[:1Z(+LW,*_9"9B#-YOENV[&T-GD#
M)XZ"O1P00"#D&B@#%T[0GL?%6MZR9U=-22V18PN"GE*P.3WSN_2N!T?P[XBU
MG3O%.G6^K6]II>H:S?13K+:%ID0R$,8FW ?,O'S XZBO6*;)(D,3RR,%1%+,
MQZ #J: .1F\)ZGI>MMJ?A>^L[;SK2*TN+:]@:1&$61&X*LI# $C'0BEM?"NJ
MZ/X?%CIM]87-S//+<:@VHVI:.Z>0[F.U6&WGH.>./>NIL[NWO[*"\M)5FMYT
M$D4B'(=2,@C\*62ZMX9X8)9XDFG)$4;. TA R=H[X'/% '"P?#JXT_2=$^P:
MA;#4]*EN)(S-;$VSK.27B\L-E4'&W!XVUNQV'B5-(E47FC)?-*&"I9.(/+Q@
MHPW[B3UW9'TKHJ* .<\'^&I/#=G?+-+;M->W;73QVL1B@B)"C:BDG ^7)/<D
MU4^SRZ;\53=>6YM=7TP1%PI(6:!R0">V4D./]TUUU1SSPVL+37$L<42#+/(P
M51]2: )*\PC^$9_X5I=^%9M2C:Y>]:]M[M8B/)?((XSGH".O>O2;6[MKV 3V
MEQ%/$>DD3AU/XBIJ /.-4^'NL2Z];>(M/U33CJK6*6E^E]9>;#.R@?O%&<J>
M/\\YPO'FA:RDG@&P6^C&I+J4A-[:602.)B05/ECC X')YQSUKV2B@#S*#X4W
M&I6WB6;Q/K"WFIZY$D+36\.Q(%C(*;5SSRJGM]WW)J;3?A[KUQK&AW7B?Q!!
M?VNA?-906]MY9=P %>0YZC Z?XY]'HH Y7P5X1?PKIVK6DUVMR+_ %&:\!1"
MNU9 HV]>HQUKD[7X5:U!\/=5\&2:_;2:?,5-DWV4AHOWHD8OSSG&*]6IKND4
M;22.J(HRS,< #U)H Y*R\&2VGC^'Q*;U&CCT==-\CRR"2&#;\YZ<=*\Q\7^#
M;CPOH&B:7<73RV4NMSWMS?+8FX@MU90 )(<'>>3CZ&O=;2_L]0C,EE=P7* X
M+0R!P#Z9%6* /-?A+>ZA(FK6'V>!M#M9$^P7T.G&Q%P2#O\ W?L<<_Y'0:AX
M1EO?B1H_BH7:)'86LD#6Y0DN6##(.>/O?I7544 >9_\ "K+C_A6.K^$O[4B\
MV_O3=+<>4=J#S$?!&>?N?K3_ !=\.=8\6/'8W.K:<NDHT3(YL,W< 4#*QR9Z
M$@G)]>]>DT4 <!>_#1-2U3QC/=7_ /H_B&W@A553YH#&H 8DGYN0#VK.L/AM
MXD;5/#=YK7B>"\309 +>".UV QA<9)SDL<+^7O7J%% 'E]A\,]:T&>YM-%U7
M21I4]PTZ?;=,$T\ 8\JK9P1]:ZC2_"<FG_$'7?$QNT>/4H(8E@"8,>Q0,DYY
MSBNCM[JWNT9[:>*94<QL8W#!6!P5..X/45+0!YT_P^UC4O&NFZYK&JZ?(FFS
MM-#):V/E7$P_A61\XP/;W]:]%HHH Y'P=;RSZUXHUV6-XUO[\0P!E(W10((P
MW/8L'(]JD\1^&+[4?$6GZWI]Q8^?:P26_D:A;F:(!RIWJ P(<;<>X..*ZJB@
M#AK'P%<6FCZ392:E'+)8ZVVJO*(=HD!:0[0H/RGY_IQ6AKOAF^N?$<'B#2+F
MSCO5M39S0WT!EBECW;EZ$%6!)YYSFNIHH I:3!>VVGI'J$MK)<Y)8VL)BC&3
MP I8G@=\\USEQX:UZPUS5+_P[JMC;Q:JRR7$5Y;-+Y4H4)YD95AU &0W&1^%
M=A42W5NUT]JL\1N$4.T(<;U4\ D=0#@\^U '%2> +JRL_#4>AZJMO-H0F99+
MB'S!.\@^;< 1PQ+9P<C/'2F7'@&_U'1?$*ZCJ<#ZMK;P&6:*$K#$D1&Q%4DD
M\ \D]6KN+BZM[1$>YGBA5W$:F1PH9B<!1GN3T%2T >>>.O#]U%IOB[5X#+<'
M4=/M[58($)=-CMN8XSN7#Y*@<A2.]9'A6%(]8;1]$GL;S3]1M9EO[RQTDV;V
MI"X0[\X))) 7J,9KUJB@#S[1O .J6%YX<:YOM+%MH3,(TM+(QO.#$T>YV+'Y
MN0>..OMC0@\&W:R^)+">\MY="UMYIGC$3"XC>5%5@'W;=HP2/ES78D@ DG %
M5;74]/O7*6E];7#@9*Q2JY _ T <_H&B>(M,DL[>\OM'GLK5-GF16+)/, N%
MR=^U3T)(!SCMFL&]^'FN2^&]1\+V>NVD&AW$DLD(:T+3H'<OY9;=MVAB><9Q
MQQ7I%%  !@ 5P5MX!O\ _A$;SPQ=:I!]B67S=.N(8")H7\XRJ7RQ5L-@8 &0
M#7>T4 <G9>'-:N_$-AJ_B/4;*=M-206D%C;M&N]UVM(Y9F).W( ' R:T?%FA
M/XD\.3Z7'.L#2R0OYC+N V2J_3WVX_&MNHI+JWBN(;>2>))Y]WE1LX#2;1D[
M1U.!UQ0!CW'A]Y_&*:X+A0BZ9)8>5MYRTBONSZ?+C'O7/P^ +W3],\.-I]_:
M?VIHUJUH6N;<O#<1MC(*@@CE000?SS7>T4 9VBVVH6UDRZG+9/<-(6Q9P&*-
M5P,#!8DG@\^_2L2_\-ZU;^)KS6O#VI65N^H0QQ7<-[;M*N8\A)$VLIR <8/!
MKK*89HEG6 RH)64LL98;B!U('IR/SH X^?PGK%KKD^KZ5?Z=+<7L$,5\FH6A
M99)(UVB5=C#:2.J].E:#^';N?6O#NIW-W TNEQ7"S+% 465I54949.T#'3)K
MHZ* .:U#0-2/C6U\0Z;>VL8^RBRNH;B%GW1"3?E"&&&Y(YR.:YN?X;ZG);7>
MG1ZEIRV,VH_VAYS69-TY\X2['?=C QC.,X '%>B075O<F403Q2F%S'((W#;'
M'53CH>1P?6F&_M!J2Z<;A/MC0F<0Y^8Q@A2V/3) _&@#E=7\$S:FOB\+>I'_
M &_;PPIE"?)*(5R>><YK4OO#[W>O^'M2%PJKI/G;D*\R;X]G![8ZUO44 8OB
MO0G\1^'Y--CG6!FG@EWLNX?NY4D(Q[[<?C57Q-X:N-5U'3-6TZYMX-1T[S%0
M74)EAECD #(P!!'W5((/!%=)10!YUXWT[6/^%?3P7D]I]LEU&T,;:?:E%B'G
MQ@'#,VXCDY./I6I;^$=2U'6FU+Q/J%K>>792V-O#:0-$H23'F.VYF.Y@ ,#@
M5V-% ' P^!]<ETO3O#^IZU:3Z!821,HCM66XN$B(,<;MN*@ JN2!DX[5TFD:
M$^F:]KVHM.LBZI/%*J!<&/9$J8)[_=S6U10!R.E>'->T1M9AL=4L!:W=S->6
MIEM69XY9'#E7PX#)]X<8/(.>*F\+>&+K1]5U;5;V6R%SJ7E!X+" Q0KL#?-@
MDDL=W)]A7444 <CXZ\%MXOBT\0WOV.2VD=97V;O,MY%VRQ_\"&.?:DM/!'V7
MXAS^)!=@V;(SQ603 CG9$C>3/ND8&/<UU]% '$77@2XF\/ZO81:A&ES=ZP=5
MMY6B)6-O,61589Y'RX.".M:D.@ZA-XDTK7-0N[9KBTLI[:9+>)E1VD9""N22
M  F.>M;TEU;PSPP2SQ)-.2(HV<!I"!D[1U.!SQ4M &+X>T)]$EUEWG67^T-2
MDO5PN-@947:?7[O7WJIJN@:E+XNL/$&EWMK%)%;-9W$5S"SAXF=7RNUAA@5[
M\<UTM5[Z^M=,L9KV]G2"VA7=)*YPJCU- '.Q^$94T3Q9I_VM"VNSW,J/L.(O
M-B6, C/.-N:J7'@V_MK[3M3TF\L?MMOIT>G7$=[;F2*9$Y5AA@58'=ZY!KM0
M<C(Z44 4M*@O+;3HX[^6VDN<DNUK"8H^3D *6)X''7GK7.:_X?\ %.M0ZAI8
MUO3DT>_#1N7L6-Q%$PPR*0^T\9 8C/UKL** .+N?">LV/B2'5?#NH:? B:9%
MIWE7]L\ORQLS @JZ\\@?A5C6/"^J:LFD:FNIVUIXCTPN4N8;<F"0.,.C1EL[
M2 /XL@C(KK** ,;1+7Q!%)--KNI6=PSA5C@L[8Q1QXSDY9F9B>.X QTK*\;>
M"CXMETR2.\%J;:1DG^3=YUN^/,C]L[5YKKJ* .0T_P $_8?B!>^(S>![657>
M"SV8\F:18UD?/N(A^9IDO@B:3P7XBT'[:@?5KFZG67RSB/SG+ $9YQFNRHH
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
M'6[I9K(:?I=_=6D5FL!,MT4!VY?=A,$J.ASSTXK3T7PMJ>B_9+6/Q-=S:7:
M+#:R6\6[8!A4:3&2!QTP>.M7M+\/+I-IJT%O>3*VHW<]V90 &B:3^[D$<=LB
M@#%\">(+S7%D-_K%M->+$K7.F?8FMYK.0]5(9B2HY&2.<9S76WDC0V-Q*DD,
M3I&S+).?W:D#JW^R._M6%I'A:>SU]M<U/5Y=2OQ:_8XW,"0JD18,>%')) Y_
M("M?6-+@UO1KW2[HN+>\@>"0H<,%8$'!]>: .'T'QA>3>,=.TIM<L]:M=0@F
M?S;>Q:W$+QA2-K%B'4@GN>@YJ+2O%OB)?!^H^,=5GLFT^UCN1%8PP$/*T<C*
MK-)N^7)7& #QSFMW3?!=S:ZSI6IW^O7-_)ID,D%O&T$<:!&4*<A1RW YSV'
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
MAF4I(KC@\'E167/X.O=2TR>RUGQ)>7Q,D4UK,MO#"]K+&VY778O)SCKGI[T
M8ECXVU2V;6D=SK,-GI4FH07(T^2T_>)UA8-P<\$$<XSUI/#?B;6M4\5:5:)X
MBTS5+.XL&O;M;.U'[@_* A8.=H)8XSS\AX]-+7]!\0-X-UZWDU237+FXL7AA
MM6@C@4DC!/RX);'^T![5D>'+;5(M=L+?3GU^3394D&JC5[*.!0-A"E&"*Q?=
MCH6&,\T .B\:WUOXDTB#_A(--U:&^OOL<]O:63HD.58@I-N(;!4 @]<]JVO
M7_'SXN_[&"X_]%Q5!8?#M[--&MI-?NY[#1KA9[*V,,:@;00 [ 98@,1GCOP:
MZ/1-#BT235'CF>3^T+Y[U]P V,RJ-H]OE_6@#G_B6[R:3H^E^8\=MJNKVUC=
M%&*DPL267(Z;MH7\:S?B%H&D^'_#$&M:-IUK8:CIEU;M:R6L2QL<RJA0[0,J
M58@@UV?B'0+/Q+H\FG7IE1&99$EA;;)%(IRKH>S BL2/P5>7=Y9R^(/$=WJ]
MO92K/!;-!'"AD7[K2;!ER.HZ#/:@#$T>QUZ3XG>,3!K5K$1':@[K#?\ *R2>
M6/\ 6#[O?^][5B^&)K_3/A;X;FN9+&^AN=5M8X8I;,?N0UR0S9+'+9.0V!CW
MKT^QT**Q\1:MK"S.TFI+ KQD#">4K 8^NZLF'P-;0^%=(T$7DQBTV[BNDE*C
M<Y27S "/0GB@"I;:GXE\1:QK#:1?6%E8Z7>&R2*XM3*URZJK.68,-@^; P">
M_M6-JWCO4I-6UV+3[^&S72I3!#;OIDUR;N14#-N=.$!)VC'/<]A71S>#+B/5
M[^[TKQ!>Z9;ZC*)KRVACC;=)@*61F!*$@#.,^O%/F\)7<&KWU_HFO7&F+J#B
M6Z@%O',C2!0N]=P^5B ,]0<=* ,B?Q%XEUG7M'TS2&MM,%]HPU&=KNW,CVYW
M*-H7*Y.6 P<8Y/M7?H&"*'(+8Y(& 36/'X?1/$MOKCW<LL\6GFQ(<#YP75RY
MP!SE>PQS6S0!Q U/Q-XCU;7$T._L=/M=)N/LB">U,S7,P16;<=PVK\P QD]3
M[5FKXTU[7[?P<-&%G93:[!<M<//&9! T6W)49&[G=@$\Y&:W;SP9<_VIJ-YH
M_B"[TI-3(:\ABBCD#.%"[T+#*,0!DC/0&K5MX-T^QNO#TEF[PPZ'!+!!%UWB
M154ECZ_+GW)- &Y:)/'9P)=3+-<+&HEE1-@=L<D+DX!/.,G%3444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M45PH^(-W&EQ?W.@[-%@U)]/DO([P.Z$3>4',94?+NQT8D9[UT[^(]$CU9=*?
M5[%=18A1:FX42$GH-N<Y]J -.BLC4/%/A_2;LVNHZYIUG< !C%<72(P!Z<$U
M+=^(=%L+V&SO-6L;>ZGP8H9;A5=\], G)SVH TJ*C%Q"UPUN)HS.JAVB##<%
M/ )'7'!Y]JQ/$>LZSI$4L^GZ)%>VUO 9YI9;T0\#)*J-K$M@9YVCD<]< &_1
M5/2M1BU?1[+4X%=8;RWCG17&&"NH8 ^_-06OB/0[[4)-/M-8L)[R+.^WBN$9
MUQURH.>._I0!IT5R'A3QB/%.M:JEK>:5)86DKPQ1P3;YW"E0)3@XV,2V..PY
MJU=>(]1FUJ\TW0M(BOFL-@NIKB[\A%=EW"-<(Q9MI!/  R.: .EHI!DJ"1@]
MQ2T %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 >=^%_!@O$O9]8DU+REUNZN8M/E;9 V)V:-]N
MT%AT89)!X.*R?$KZWJ=U=V1LKZ-X=:MY(+:UTLF)X5FC/GM/@@DC).T@CH1@
M$UZU10!XS>W#?VKXC-Z)XO#Z:XEU=74-@9BIA$1XF#\#*#/R$K\PSZ7-4TF?
M^U_%5EJD^M):ZO,'B-AI8NDN(3$JA?,$;%&4@C!*@<$=<UW5QX)\/W5W-<2V
M4A\^7SIH1<RB"5\YW-$&V,21SE>:Z"@#(LUM(M>D@73KC[9'91!]1D@&)4RP
M">9W8$$D=MV>]<_X\32-0B?3]5TWQ!.?(8PMIT4[QR%OX3Y?R$Y4<2#'/N:[
M>B@#G-*MM<F^'<%KJ#+#K;Z<8W*X4)*4('3@$'&<<9Z5Q^G0/?V'@O1[/0K^
MQOM'N(9+R2:S:*.!4C*R 2$;7WDX^4G.<FO4Z* .7\%64UDFO>?;/ 9=9NI(
M]Z%=Z%AM8>H/8UQ6N:)';ZGXMCN=&U>ZU*_E^T:1<V:3%-[0JHPZG9&RNO);
M'&.HXKUVB@"MIT=S%I=I'>N)+I8469Q_$X4;C^>:LT44 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
<% !1110 4444 %%%% !1110 4444 %%%% '_V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>17
<FILENAME>a2024insidertradingpolic004.jpg
<TEXT>
begin 644 a2024insidertradingpolic004.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBFR2)%&TDC!40%F)[ 4 .HJKIVIV.KV:WFG7<-U;.2%EA<,K8X."*M4 %%
M0W=Y;6%J]U>7$5O;QX+RRN$5><<D\#DTZ>9+>"2>3=LC4LVU2QP/0#D_A0!)
M15;3]0M=5T^WO[&836MP@DBD (#*>AYYJS0 45%<W,%E:RW5U,D-O"ADDDD;
M"HH&22>P K%;QOX6569M?TX*JAF)G4  ]"?8T ;]%%% !15+5=6LM$TZ2_U&
M8PVL>-\FQF"Y..=H.![U/]LMOMWV+[1%]K\OS?(WC?LSC=MZXSQF@":BBB@
MHJKJ.I6.DV;7FHW4-K;(0&EF8*HSP,DU%8:WI>J2R16&HVMS+$ 9(XI0S(#T
M)'4"@"_103@$^E9EKXATF\L$OHKZ(6SSFV5Y<QYEW;-F&P=V[C'K0!IT444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !0>E%-D
M3S(W3<R[@1E3@CZ&@#R?P]J&I:;\*O!;:9=BWDN-0BM9-T2NK))*X.0>?R(^
MM;T>J>)X_P#A+]+LYUU/4--,+6+RQHC,)$#%2  I(PV,XSQFMF+P1HT.C:=I
M,:W*V>G7"W-LHN'RD@)8'.<D DG!XJ:;PEI<]SJ5RQNA-J+1/.R7+J=T1!C*
MX/RD8'3\<T <=JOB&XE\#^(+VUU>[EN+-H0UGJ5A$DULQ8921=@5@P((..W!
M-;\^HZCK'BG7=(MK]["WTNTA;,4:,TLDH<Y.]3\H"@8&"23S5^Y\&:1>:?J%
MG<K<RKJ+(UW*T[>9+LQM!8'@# X&!^9J2[\)Z7>ZF-1E%RMR8!;S-%<.@GC&
M<+(%(#8R>OJ1TXH X;PWKE_:^%O >BV*W ^VZ:\\TELL;2A8U7"KYGR\EQDG
M/ X'.1IW>K^++;3-!6ZD-E>W&MFP<R11.)[<B0I(RKD*V%4X4CG/MC?'@C1D
MTK3=/C6ZC73,_8IH[EUEA!&" X.<$<8/'Y59N/"NFW-OI\,GVHK87(NH6-RY
M;S>?F9B<L>3USUH FMM)FET.?3-;O/[5$XD25WB6+?&Q.%(7 X4XR,9ZUS-O
M8VNH?$OQ387<"2VL^D6<4D1Z,I,P(KNJR[?0+&V\076MQ^?]MNHUBE)E8J57
M[HV]!C)_,T <[!-X@U/QAX@TVVUW[+:Z?+:O$#:QR$JZ;G0G ^4X(SUY'/'-
M2;Q+?0ZUHCV^L/?6][JCV4ZI9!+785D(\N0KDLI0 D.02&X'0=?9Z'9V&L:A
MJD'G?:K_ &?:"TI96V#"X4\# XXK+A\!Z';_ &41I=A+.Y^U6J&ZD*P/DGY%
M)P!\QX]Z .,\6ZCJ/B'X>^+[]K][>WM+N6SBM$C0JR12*A+DJ6W,<G@@#CCK
MGKS<W+?$V?3Q/B!]%$RD1)OC?S2O#;<D=\'(SVI]]X!T'4!J2317(AU%_,N8
M([J18GDXR^P'&[@<XZC/7FM%?#UDNL_VOON3>_9/L?F&9O\ 5YSTZ9SSGKF@
M#A]$\1>(WTGP;J]YJJW"ZK>FSN;;[,BJ05E(<$#(8&,=#CGIW+KOQ#K]W>7-
MO:ZE/;ZBFNBR73X;>-L6FX RY9&/W#OW$[1TQ750^"M'M].TJPB6Y6WTJ?[1
M:+]H<['YY)SD_>;@^IKDCX6\0I;7WV1]9L]7GO9IXYH-046*EY2P;RRY.W:>
M5VY)S]: -SXJ@CX7:V"2Q$*<GO\ .M0:I;ZC::S=>-KRSAMX])T>X2.W2;?)
M.>'.\@ !1LX'/))XKJ=<T2R\1:1-I>HK(]I-CS%CD*%@#G&1SU JY]FC:T^R
MRCSHC'Y;"7YMZXP=V>N>] '$VVM:S8W7A&:[U#[;%KH,=Q#Y2*L3F$RJT14
M[1M((8MP1SFL2RN[BQ\(P2V\BKN\7/"ZO$CAE>^93]X'!YX(P0:[K3_">E:9
M/:2PI.YLHVCLUFG:1;92,$(">..,\D#CI4 \$:.-,73O]+^SK>_;P/M+[O/W
M;]V<Y^]\V.F: *,%[K/B/5?$$%AJITQ-,NDM(%6!) [!$=VD# D@[\ *5Z9Y
MK.N=<URVO/$.AG4W.JFZMQI+F&/B&;H<;?F"E9=Q/9.,&NGG\)Z7/K$VIXNH
MI[C9]H6"YDC2?:,*752 V!Q[C@Y%4;#2KG5/%J>(=4TE;&6RMWM;93,LCON;
M)<E> ,#"]_G?..* .FB1HXD1Y&D95 +L "Q]3@ ?E3Z** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M *K7^H6FF6C75].D%NK*ID<X +,%&?J2!^-6:SM?TB'7_#^H:3/Q'=P/%N_N
MDCAOJ#@_A0!9N[^UL!";J=(O/F6"+<?OR-]U1[FK%>:>&]4F\9:SX>2Z&9-#
MM'GU!#SB]RT"@^A&R=OQ%5?#%]XMUR+2M=B34"UQ>YNO,NX?LH@\PJR+%G<"
MHZ'&[*\]: /5:JW^HVFF6ZSWLPAB:1(@Q!.6=@JCCU) KA-(MO$&K:=XEO[;
M7[K^T$O;^ST^&5@((0LC*F1@Y(/0GH,#'K7DUNYM/#MQ;13ZO:ZI:ZI8174-
M_.LSQB2:,';(N0R,I/?UX'2@#TVBO-+VZU#4[/QAK#:_>Z?-HMQ-%:00R*L4
M8BC5E9U(^?>3DY[$ 8J6!]6\3^(IH)M8U#3(1H=G=F"T<(5GD,N3D@D8QT[X
M&>E 'HU9^K:[I>A0QRZG>Q6RR-MCWGESC)  Y/'I6'X4O;_7/#GA75KG5#%+
M):^9<P*BXNV,>.>XP?F^7^5;>KKJ+6ZC2'L$O^=IO$9EV]\!2#UVT 6-/U"S
MU6PBOM/N8KFUF&8Y8FW*PZ=?KQ6?=>+- L=672[G5K6*]+*OE,_(9ON@GH">
MP/)K"^&D\,/A>:UEVQW5MJ5S;W+&0%);CS"S&,X'RDMP,9'3MFN;N3 WPH\>
M?:=IN3J&H"3/7S?,_=?CCR\?A0!ZU145KY@M(?._UNQ=_P#O8YJ6@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@"E9:1I^FW%W/96<,$MY+YUP\:X,K_WCZFJ:>$M CU4ZFFDV
MRWAD\[S N/WG]_'3=[XS6S10!0.B:8UA=6+6,)M;IWDGB*Y61G.YB?<GFJ]M
MX7T.TLFLX-,@2!YDG=<9+2(058D\D@J,9]!6O10!C7WA+P_J>I?VA>Z1:SW1
MV[I'3._;]W<.C8[9SBM%;"U2^EOE@074T:Q22XY9%)*@^P+-^=6** ,Z'0=*
MM_[.\JPA3^S59;/"_P"H#+M(7TR.*35_#^DZ\L2ZI80W/DDF)G'S)GK@CD9P
M,^N*TJ* ,Q/#NC1V-G91Z;;):V4RSVT2Q@+%(I)# >N23GWJ*?PIH%UJXU:?
M2;62^#*_G,G)9?NL1T)'8GD5L44 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !103@9-(CK(@=&#*PR&!R"*
M %HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BF)+'(7".K%&VN%.=IQG!]#@C\Z
M?0 444A=0P4L QZ#/)H 6BBB@ HI%974,K!E/0@Y!I: "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BD+J'"%AN(R!GDTM !1110 444A=0X0L Q&0,\F
M@!:*** "BBB@ HHHH **175U#(P93T(.0:6@ HI'=8T9W8*BC+,QP /4T*RN
MH92&4C((.010 M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 5S?C[7+KP[X'U/4[+:+N-%CA+#(5W=4#
M?@6S^%=)67XBT.V\2^'KW1KLLL-W'L++U0]0P]P0#^% &1I?@.QTR:TO!J6K
MR:C$0TUT]_*WVD]PZ$E-I] !CMBLJ3Q_JIT6X\3VVA02^&H'?,INR+F2)6*M
M*L>S;C@D MD@5JZ59^.(I;6WU+4M&DM(&'FW$,$GGW"CL5)VH3W(S["L0>!_
M$47AR?PA!J.G+X>E9T%P4?[4D#L6,8'W2>2N[/3M0!HZSXTU&&ZU6/1--M+N
M'2;)+RZDN;HP[U=695C 1L_*I.3@=J9_PFFLS7&AV-GH=M-?:KI[7HS>%8H0
M"F-S%-Q&''1<YP,=QQ?B.UTW_A/-;^WW^C6$=O#;16\&M022"=%CSB,+(F4R
M<;?G^8'CM7<^'[/4=;U#P_XLO+:.P8:3)!+9$$,K.Z,, C@83H>1D4 0_P#"
MQ#!X9EO;O3DBU2/4SI)M/M $9N,_\]2.$V_-DC@9XIUEXUU*ZEU735T_3[K6
M+.S%Y;QV-]YL-RA)&T/M!5@1C!'<=C4%[\/[B[TS48OM5K]J?73K-H98S)$#
M@ )(O&01N!QZUH6ND>(H--U$06WAW3;^:'R[:2RB?",3RS,0,XZA<=1R: *U
MEXK?QW:WUGX>01V[6 $M],#^XN)!_JMF/F95R6YX.T=Z=>ZF?!I\/^$]%MK0
MM);LD$FH71ACQ$%&W<%8L[;LX ]34WA?P8_A#5I!IEUOTFYMU^TPS,3(;I<
MS ]/G'WAZ@&K7BW2-4UJU^Q6UIHEW92QE9(M31SL?LZE<]/3 /O0!T%LTSVL
M3W$2Q3L@,D:ON"-CD X&<'O@5YAXGDTZ7XI7-MK,6M7-JFDP/%#IINCL<RR
ML1 >,@#D^E>AZ!IDFC>'M/TR6Z>ZDM+=(6G?K(5&,U@:EH7B*+QK/K^B2Z64
MGL([1X[WS,@H[MD;?]Z@!;O7)M*ET;P]X;TW[3=W-LUPBW]Q)&((%V_-(S!G
M+$L%P1G/7I5)?B#=KH.KW]UHHM[G3=3ATY[<W ;)<Q MN Z#S21QR .F>+FH
MZ#XAEU;2O$-E/IBZQ;VTEI=0RB3R)8W*M\I'S AE!Z<US6C^'=0U_0_&^DW-
M]"-2?7%E%RL1$8E1()%^7.=N5 ZYQ[T =O>Z[Y7BN'0&MMR3Z=-=F42$$;&1
M=N,=]_7/:N$M_$&N)I_P_P#^$=L;>&QOU;_1KB_<[SY4C;'<HQVC 8-R21C
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
MO]FW"7(?R9XSM/!4;E(9<CCG-:ZZ!JUSK_A[5]1N[1Y]/ANTN! C(K&;9M"
MYX4)C)//6@"H/';GX=Q^*O[/7<\XA^S^;P,W/DYW8_X%T]J?J'BG5Y]:U73M
M#T6&^ATM4%Y)+=>4SNZ[MD0VD%@I!^8@9./>L.7P%XE/AU_#,.IZ8NCQWGVB
M&0QN9W3S_.\M_P"$8.?F&<X'3FMJ?PWX@LO$6KWFA7VGQVFL>6\_VJ-V>WD5
M A>,#ALJ!PQ'(H Y[P1=6\6D?#6"6U>2>:SN?*F$[*(L1Y;*#A\CCGIU%7A\
M1=7_ +&DUYO#T*Z+;7C6US(;S]Z0)C%OC3;@@<9R0<YQP,F]HG@F\TM/!JR7
M4#_V#!/%-MS^\,B;05X[>]-?P/>-\-[[PR+J#[3<7$LRR\[ &N#* >,]#CZT
M /\ $'C35+"YUY=*TJTN8-!MUGO'N;LQ,^Y#)MC 1LX4=21SQ75:5=3WVDVE
MW<Q1Q331+(R1.75<C/!(!/X@5X[XC2QD\=>);K4;_1;62*2$06FLV\DC7"K$
MN-@5TW1ENBX?G)QSBO7?#]]=:GX>T^^O;,V5U<6Z22VYZQL1DKSS^= &-XI\
M0ZSH2SW-KI^F26=O$92UWJ'DR3X&2L:A",\=R,FJUWXUO9KW0[31=(2[DUC3
MVOHFGN/*6$#8?GPI.,/V!.<#'.12U_P-J6I>(-8O;?\ L>XBU2W2!9=0A:26
MR"H5/E#H0<[NHYYYK3TKPG=:?J?AJZDN(672=';3Y0N<NY$7S+[?NSU]10!3
M@\?W L+>XOM*6!H]9_LC4=L^Y;=SPLBG:-R$LG7&-U;^GZ\VH^)]7TN*W'V?
M35B5[G?]Z5P6* 8_A7:2<_Q5SNJ>&8;'P7XV35;F,6VH3W&H+(@.81L4J?\
M>#(#Q[5H_#K3;JQ\'6UQJ)+:GJ3-?WC$8)DE^;&.V%VKCVH A^)6J:UI'AE+
MG1O*60W=NDDCRE"H:9%P!M.0V=IZ8!)YZ4FJ^*M?T[4-%TB/0K6?5M3AG<JE
MX?)A,97DN4!*[6S]W.<#!SFM7QCH4_B/PS<:=:SQPW)DBFA>4$IOCD60!L<X
M)7'XU670]5N_$>A:WJ$EFDUC;7,4\=N6*EI"FW:2,X 3G.* *WB'Q)K^B6;W
M?]EZ5Y,%N)I1<:D8WE8+ETB&PYQR 3C/I3+OQI?2ZAHMCHFD)=R:MIS7T3SW
M'E+$HV??PI.,/V!.<#'.10U_P+J6I:]K5Y!_8\\6JVZ0K+J$+22V05"I$0Z8
M/WNHP3GFM72O"EU8:OX>O'N(633-&.G2*N<NY\KYA[?NS^8H SY/B'/#X9>]
MGTV&#4(M5_LF>.6YQ;PRYQO:7;Q'@@YVYY ]ZW9=2U^/0HK@:=IC7K/AR;\B
MV2/DB3?LR1TXV]^O>LV'PWK&G66LQV?]E73:CJLMXT%ZKF-H751L.!PV5!Z$
M5C+\.=1AT*PMXY=,F>VU.6_.FS(_V+:X($2CD@+G<O'7/% %^'XBLNAZA/<:
M=%)J=I?QZ<EM:7(DCN9I-OE[)"!A3O&<CC!JMXSUWQEIO@35KMM/L;*[@\LK
M<VU\7783R5!C!W X&" "&R#QBF1?#K4#IFK*UWI]M?W&I0:G9FU@*PP2Q*F%
M*=URI'OG/M6OJF@>(O$OA/6-*UFZTR":[B5+<6:.R1L#G<S-R<G'  P!WS0
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
M<]L5U-% ')Q>!H8O!FE>'!?2&/3YX)EFV#+F.028(SQG&*=J?A*]UC4X'O\
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
MG9K#.C,DN0R[%#+E 1E?4<UH&_U_5_$>AZ1:ZTUA;W.@B]N9(H(VD+[D&4W
MA2=WH1C/&<$;</@33XUU<SWVHW<VK6?V.[GN)@S,F'&5PH"G#GH,<#CKG0M?
M#=C9ZM::E$TWGVMA_9\89AM\K<K9(Q][*CG]* .+36_%-QX/F6&>YNKK3]:E
ML+V[LK=&N'MHV8&1(R-I?[H( /<@5V7A6_M]1T"*>WU:;5$#NAN)XA'+D,?E
M=0JX9>A^4=*K_P#"(6\5K<0V6IZG8O/?RW[2VTRAO,DSN&"I4KST(-7]"T.T
M\/Z>UI:--)OE>>6:=]TDLCG+.Q]2?0"@#BM.U?7V7Q3XAO-8=[#0[N^CATZ.
M! )DB5B [XW<<8QC[O.<U6T#7?$\]UH-YYFM7JWSI_:$,^FK%:Q1NI.^)PH8
M!3MZEMPKO-.\/V.FVVHV\:O+#J%S+<W"2D,"TGWAT^[[50TCP=%HLMN+;6M9
M:RMN(+&2Y!B1<8"_=W%1V!8]!0!B:#J^I#Q>]GX@U2_L[Z2XG%O826T8M+B$
M9V>5(%R6"[6.6SUXQ6#_ &UXL7X?W7C-O$)+V,\Q2Q^S1"*6*.=D*N=N[<0.
M"I&..,Y-=U;^#K:/6+;4;G5-4OC:.\EK!=SAXX68%21A0Q."0-Q.,US'AGX;
M(^@I#K<^I1*]Y-<7&F"Z!MYCY[,A91G@KL. 0#@9&<T :/VG6?%/BO6K"SUN
MXT>STE8(T%M#&SRRR1B0LYD5OE (&!C//-8T'BGQ'K&E^$HH-0BL[V^U"ZL;
MR=(%=7$*R NJGH3LW#MGKD<5UVI^#+74-7FU2VU+4]+N[B-8KE["<)YZK]W<
M"IY ) 88..]30>$-)M4T..VCDABT5W>U1'X)9&5BV<EL[B<YSGF@#ETU+Q7;
M6WC#1K*]?5-2TLV[V5Q+%&)6250S @ (S* VWCDXS4%YXDEA\!ZC<Z?KE]=W
MEO?6D4B:E:1QW%MOFB5D=-BCD$X.._!XKL9_"UK+=ZM=Q7E]:W.I^099K>8(
MR&(879QQ[@Y!JE_P@6F/IM_:W5W?W4M_/#/<W<TJF61HF5D'"A0!M P .":
M,"/3-5U/XF>+H]/UR72HU@LB[P0([NWEOMY<$!1SD8R>.1W3P_XLU75YO TE
MS)&'OOM\=X$C7$K0@J&!(RN2N>,=:Z#4? ME?ZU>:O#J>K:?>WB)'-)97(3<
MBC 7!4C\>H/0BK=KX0TFQ?0S:QR0IHJ2):QJWRX==K;L\D]\YZF@#AO#^I75
MAX=\,QVT@1;OQ/=03 HK;D,ER2.1QRHY&#3M T?7OMOCLZ=XDO!>QWCI$'@@
M*R3?9XRC-\G;@8&!@=,UV<'@O2[>UTZW1[G9I^H/J,.7&3*YD)!XY7]XW'TY
MJ:T\,6UCXDN]:MKR]C:\(>XM!(/(D<*%WE<9S@#OCCI0!S^C^+KOQ/JOAB+3
MY?)BDL'U#5$" X_Y9+%R./WF_I@_NZB^(UA=W>N>$#;ZM<V8;51&HBCC;8WE
M2GS!N4\X!&#Q@],\U>\!^&'T2[\1:E<69M)M3U&22.$N&V0!CLZ$@9+.^!TW
M5T6IZ+:ZM<Z;/<-('T^Y^U0[& !?8R_-QR,,: .4A?7?$OB#6[*V\0W.F6VC
MO':QF"")GGE,:NTDF]3Q\P&U<=#61!XH\1^(--\%QVNH1Z?=:K-=V]Y-'"K@
M^2'!9 P."=A([9(SD#%==J7@JTO]6N=2MM2U33+B[14N_L$X07 484L"IP0.
M-PP<=ZLP^$M)M7T,VL3P)H@<6D:-\OSH4.[.2>"3G/7F@!FNV-V/ U]9G5+C
M[2EFP:\V1^8^%R21MV_, 0>._&*\[FL=0@^$'A+;JLD\T]UI36QN(DV6V2FU
M0$"EE!QU))QUKV":&.X@DAE4-'(I1U/<$8(KF;3P'86NBVNDMJ&I7%I:7,%Q
M;+/,K&+RF!1 =H^3@<'GWH Q7UO6/">M:Y9W^IRZQ!;:&^KQ&>)(W5T9@R?(
M -IP#TR*I^'];\3S7NA71DUJ^2^9?[0BN=-2*VB1D)WQ.%! 5L#DMD'UKNI_
M#UA=:W+JLZO)++8FPDC8@QM$6W$$8ZY/KTJAI'@^/19K<6^MZR]G;<064MR&
MB1<8"_=W, .@9CT% &#HNN:C!XDG@\1:GJ%K?F2X,.G/;1BUN(5W%##(%RQ"
M@$Y;/7(K%T7Q3XIU.STG6X#K-Q+>7$;36/\ 9RBS6W=\$))MW953G<6.2.E=
MQ;>#;:'5[;4;G5-4OVM&=[6&\G#I"S J2,*"QP2!N)QFH].\$6VDS1BPU?5[
M>PBE\V/3DN!Y"G=NVCY=VW/\.[';I0 OQ"U74-%\%7M_I4RQ7L<D"QNZAE&Z
M9%((/8@D?C7/:_J.N^'[C1-!?6=1O;C4Y)YI[VVLHWGCCC1,QQ(%V@%FSDAB
M!GKQ7;Z[HMKXATB73+QI!!(T;L8V ;*.KCD@]U%0:]X<M-?^R22S7-K=V<AD
MMKNUDV2Q$C#8)!!!'!!!!H X:[\1^*=/\%ZW-ONTFM;ZUCT^]U&T6.2:*26-
M6#H  <;F4D 9&#P:T9M3UKPEXJM;74-8EUBSOK"ZN"DD$<;12P!6.S8!\K!L
M8.2,#FI_%OA*[N_ =[I%O=7^K7%S<VSL;N==Y59HRP! 55 52<#'YUK:5X,L
M=-U-M1FO-0U*Z\@VT;ZA,)?)B)R47@=<#).2<=: .0DU;Q-I_@G3O'$VO/<&
M<VT\^F>1&+?R9G4;$(7>&4./F+')'2M>UD\0:UX_\06::])9:7I4]MY<$-O&
MS2;X49E9F4_+U]\MUX JY:_#K2K5K:+[=JDVFVDPFM],FN-UO$P.5P,;B%/(
M!8@>E;UCHMK8:OJFI0M(9]2>-YPS J"B!!M&.. /6@#SSP?8^(++P_XON=,U
M6>]ODU#4([:VGCB5'G#\2$A0=Q(Z9"\]!73>!]4%\EY!+K&IW=["(S<6FIVR
M03VS$'LJ+E6['D<<&K4'@RUM;G59;74]5MX]2=Y9((;@*D<KD%I$XR&)7U(Y
M/'-6=$\,V^BWEW?&\O;^^NE1);F\D5GV)G:H"JH &XG@=^: ,&6;7]6^(^I:
M5;:X]AIEC:VMP4B@C9W9B^5RP.%.WGOP,8YSS<WBOQ+JB:QJ6ER:S]HM+R:"
MQL;;3EDM9%B;;MD<J6+-@Y(8;<CTKTRWT6UMM?OM91I/M5Y#%#*"PVA8]VW
MQU^<YY]*R)/!%L+Z[N+'5]7TZ.\E,]Q;6=PJ1O(?O,,J64GOM(H Y3Q5XJU!
M=:U>S_MVZT:6TT^*6PMK6V29KF=U8E7RC9((4!1M.#FM*^OKZ"PT:POO$>L0
M:M)9">>VT^PCGN';C+/B-E5%)V_=7..IJIK&@ZFOC+6M0;2M<N([Q81:2Z-J
M:VJ_(F#YH,B$MNS\Q##&*V+#P9>7=CI5]K&KWT'B"&R%I=W5C,JF9,[MC$J<
MX/\ $ #G)S0!S\'BCQ)J_A+P;);:BEI?ZIJ$UG<W#6RG*H)E+;",!OW8;' W
M>W%:\YUVZ\60>%8/$=U;I9Z8+V>^6"$SW#M(R(""I4 !3G YK9LO!&DZ?8Z-
M9P-<^5I%U)=6VZ3<2[[\AB1DC]XWOTY-2ZUX3M=9U2#4UO;_ $^_AB,'VBQE
M",\1.2C9!!&>1QD'H: /-K%+B/0[1+N5)KE?'I$LJ)M#OYQR0.P)[5HWWB?Q
M#JE_XADTV?687TV[DM+&VLM.6:"1XP,^<Q4D[F., K@8-=?:> M'LM.M[&!K
MH06^IC4TW2[F\X'/)(R1GUY]Z=<^"[:34[N^L=6U73&O6$EU%93JL<KX W89
M3M8@ $KC.* .=UC7=9MM5M;K6;W4= TF2S@D2:UMHY8H[AL^8EP65BH!*@=!
MUYS5G5=8U*Q\;NNJZK?Z7I#20+I\L%M&]K/D#>DSE6*L6R!RHQ@@YK:UCP9;
MZV9([K5M7%E,BI/9+<CRIE4 8.5+#..=I&:74O!EKJUXSW>IZH]DTL<KZ=YX
M^SLR$%>-NX#*@[0P&>U "^-]:O-#\.&;3S&M[<7,-I!)(NY8VED";R.^,DX^
ME8[/KF@^+=)T:?Q!=:C;:U!<H))X85EMI8T#!TVH 5.3\K X.*ZS6M&LO$&D
M3Z9J$9>VF W;6*LI!!# CD$$ @^U9ND^$+73=474[C4-1U.]CB,,,U_,',*'
M&X*%50"<#)QDXZT 8'PGL;JWT&\FGU2XNHVU"[00R)&%5A.X+@JH.6ZG)QZ
M55UOQ/KNGS>)]$@N@=6>YM1HSNBC"7&%'&,$(RR')STYKN=$T6UT&Q>SM&D,
M;SRSDR,"=TCEVZ <98XJGJ'A+3-2\4Z;XBN!+]NT]&2(*^$8$'&X8YQN8CTS
M0!S6A^*[_P 37VB1PS>7"NC/>:H@0?-,Q\I4/&5PZ2GC'W:YWPM/KVA>!/!F
MK+K;26MQ<6MF^G?9T$0AE;9PV-^\9!SNQVQBO1M"\(:7X=N=6N+$3!]4F,T^
M]\A22QVIQPN78X]S3$\&Z9'X=TK0P]Q]DTR:&: EQO+1,&7<<<C(YX% &##-
MX@\57OB&XLO$$NDPZ9>26-I!#!$ZL\:J2\I=22"6Z K@"NA\):Z_B#P7IFM7
M*I!)<VPEE[*K8^8C/;()^E5-0\"6-[?WUU#J6JV"ZA@WL%E<!([@XVY(*D@D
M  E2":WX--L[;2DTR&W1+*.$0+".@CQC;^5 'F]AXGOH_$OA\VVO:IJMCJ=R
MT$SW6FK!;./+=E:%@BG@KZMD=^]:>BZOJ2^,I+/Q!JE_9W<ES,MK8O;1BSN8
M1G9Y4H7)8+ACELYR,8K1L/A[IUA/I;_VEJUQ'I4F^Q@GN 8X1M*[0 HR,'J<
MD8'.,YM1>#;9=7M]0NM4U6^%K*TUM;W4X>.%V!&X84,2 Q W$XS0!B>$=7U*
M37C9>(M4O[?6'\TG3)[:-+:10W#6\@7+ +C/S$\G(K(M=>\177@3PGJ3W-_'
M93Q2MJEYIEK').A'^K(3:0$^]N*J3P*[/3_!UM9:M;:E<:IJFHS6B.EJ+Z<.
M( XPQ&%!)(&,L2<5'%X)@L]&T[2].UG6+""QB:)&MIU!=2<_,"I!/H0 10!R
M>I6]SK'C7P3=6'BNZ>*YL+LQ7<,,/.U8MS %",OD9!'&. .:U)]7U*T\=20:
MUJNH:99O=11Z:([:-K.Z0JN4>0J660MN&"R]L9K7G\!Z6UEHUM9W%]IYTA72
MUFM)@) K@!P2P.=V 3QG-27G@VVU#4EN;S5-4GMEN%NA823@P"13E3C;NP"
M=N['M0 WQ[J5UI7A@75G((YOMMI'N**WRM.BL,$$=":QIY/$>M^,/$^FV?B*
M33;/3DMV@$-M&[;WBW<EE/RY&2.ISU KKM;T6UU_3OL-XT@B\Z*;,; '=&ZN
MO4'C*C-):Z':6>KZIJ<;2F?4A$)PS#:/+4JNT8XX/O0!1\):K=>)/ NEZE._
MDW=Y9JSR1*/E<C!8 Y'7G!R*\ZTS3[RW^$OC6>;5[FYB(U2/R)(XPH8.^9,J
MH.3@Y&<<\ 5ZKH>CVWA_0[/2+,R-;6D8BC,A!8@>I %8Z^!-/2VUNT6]U$6.
MKK,)K7SE\N)I>7:,;<@DD]20,GB@#"TV?7M#UKPE#=ZVU]:ZQ&\4ULUNB)"5
M@,BF,@;L#;@[B<YS6)IWB[Q1JVFV^OV/]M33S7(*:<FG*;,P>9M*^9MW;@N3
MNW=1C&*]+G\/6=Q=Z-<NTN_2&9K?##!W1F,[N.?E)].:S+7P1;6%R38:OJ]G
M9&8S_8(+A1 &+;B!\NY5)R2H8#DT <YXA\3:OIUO\0YK6Y"/I?V4VA\I/W>Z
M)"V>/FR2>N:[;0K#4["T<:KJ[ZC<RMO+&)(UC..50*/NYZ9R?>J6H>"]+U*+
M7XYWN0NN",76QP,;%"C9QQPHZYKHJ /.?-\3ZWJ7BU;;Q(^GP:5=%+1(K:)L
MGR4?#EE.4R>@P>3ST K6WB#Q#XJO?"T%EJG]E1ZGHKWEV8H$=@ZM&,Q[@<'+
M$<Y&">,X-6[?P#+J.O>*;F^O-4T^'4+P "SN@BW4'DH,,.<<[QD8;KSBNLM_
M#.FVFJ:??VR/$UA9-8V\2'Y%B)4XQUR-@[T <'>^(M>O]8URVL[W6HO[*D%K
M;"PTY)DFE$:LSS$J>I;[J[<#ZUHMJ?B;6?$6@Z7]N?13>:(U[?1I C21R!XP
M0F\':<MCD'C/&<$;][X-M[C5[G4K/5-4TN>["_:A8S*JS%1@,0RMAL8&1@\5
MDZOX/N=3\<Z7<K<:A;VEGI,D*7\%R!*LWF)@$G.[*ALY!!^N* *-GXCOH]"U
M:RU;Q!+;W.GZN=.COX+-9)[I2JLBK&%(\PAL<*>F<5GCQ;K=KX;\<HE_?23:
M/!'-97-_:+%<+O0G#IM ."IP=O(-==_P@&DC1(M-CGOHY(KS^T%OEFS<&YYS
M*6(()()'(QCM2+X TPV&MVT]YJ-RVM1)'>3S3!I&V@@$';A3@] ,<# % %*]
M?4='\/Q2:OXNNDNKZX3:;6P223<5),,"!&/OE@Q 4^N1R6K:GJFK_#WQWI]S
MJ=^5TO\ U<UU:I%/+$T(;RY%V@#DGD $C%>F:WX;M-<M[-))[JVFLI1-;7-L
MX62)PI7(R"#D$@@@CFJ=KX&TN"PUJTEFO;M=97%Z]S-N=_DV9!P,<>G [ #B
M@#*FFU/19_!MDVJS7HO+YDFDGAB#%/L[L%&U0!@@<CGWK+&I>)=8\,:SXMM-
M?>R%G)=-::>MO$T)C@9AB4LI<EMAR0PQGBNMMO"%K"FDB?4-1O'TNX,]O+<R
MJS$E#'M;"C( 8^G/>J-U\.]+N9;Q5O\ 5(-/OI3-=:=#<[;>9FY;(QN ;N%8
M T 9?]K:YXE\4Z=8V6K2:38W>@Q:E*(H4>179R,*7! ZC.0>G !.:W? FJW^
MJ^'7.IS+<7EI>7%G).$">;Y4C(&VC@$@#.*TX]!LH?$"ZS&'2X6R%BJ*0(Q&
M'W# QUS[]*=HVBVNA6T]O:-(4GN9;IO,8$[Y'+-C@<9/% 'GGB3Q5>:=<7.H
MZ9X@U.]^RZA'!);IIJ_854RJC1-+LSN ;[P?KQ@9Q6O._B+7/&WB+2K3Q#)I
MEEI\-L\0AMHW??(C'JP/RY7)&,GC!'>Y<?#?2KA;B ZAJJ6$]U]K-BEP!"LI
M<.6 VYQN&=I)&3D#ICH+71+6SUO4M6B:0W&H+$LP9AM C#!<#''WCF@#@K#Q
M/KGB>Q\&V,5^=.N-5M)KJ]NX(D+XBVKM0,"HW,V3P< 5I> 8+RV\3>,X;^\%
MY<)?0!KCRPA<?9TP2HX!QC..,YX'2M$_#_2UTC2+&VNK^TDTC<+.\@E F0-]
MX$E2I![@CL*T/#_A:Q\-R7TEG+=2R7TBRSO<R^8S.%"[LGGG&3[GC XH Y>#
M3KUOC;?2C6KI8UTJ"4Q".+#(99!Y6=F=H()SG=SUK+T_4KK5K+X=WM[()+B3
M5[H,P15SM6X4<* .@%>C)HMK'XCFUP-)]KFM4M&!8;-BLS# QURQ[UG6?@O2
M[&UT:WB>Y*:1<27-ON<$EGWYW<<C]XWIVH Y"X\2:]_8LYLKZ.&[?Q<VF1RM
M K*L1E*@%0!G'KU/K5R76==\,ZEXDT^?5#JWV71/[5M9;N..,HX+J4)0*"I*
M@^W3-='_ ,(7I?D^5ON=O]K?VQ]\?Z_?OQT^[GMU]ZJ^+_"KZI8ZU>Z<HDU:
M\THZ<D<S#RBFYFZ8X;YCR3CI0!SOA75=5U7Q5IBVWB?4=3L/L+7&HI)9Q1I%
M/\H5,^6",Y;Y<Y&WK7IU><^'])UN#Q#I;VEMXAT_3X%<7ZZOJ:W*3#9A5C42
M/SNP=WRC /TKM]'TI-&TY;*.ZN[E5=W\R[E,DAW,6QN]!G ]J +]%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!D^
M)YY;7PU?302-'*D>5=3@@Y%>2?\ "2ZW_P!!6[_[^FO5_%W_ "*FH_\ 7+^H
MKQ15+L%4$L3@ =S7IX*,7!W74X,5)J2LS4_X276_^@K=_P#?TT?\)+K?_05N
M_P#OZ:+W2;?3TDBFU&(WL8^>W2-B >Z[NF1^7O6576HP>J7X',Y36[-7_A)=
M;_Z"MW_W]-'_  DNM_\ 05N_^_IJR?#1\QK3[=$=36,R&TV-V&XKNZ;L=JP:
M453ELAMS6[-7_A)=;_Z"MW_W]-'_  DNM_\ 05N_^_IK*HJO9P[$\\NYJ_\
M"2ZW_P!!6[_[^FC_ (276_\ H*W?_?TUE5:T^PFU*\2U@V[VR2S'"J ,DD]@
M!0X02NTAJ4GHF6_^$EUO_H*W?_?TT?\ "2ZW_P!!6[_[^FI?[#@N(IO[/U.&
M[GA0NT0C9"RCJ5)'S8JC%I[2Z5<7X<!8)$C*XY.[//Z5*5-]/P'>?<L_\)+K
M?_05N_\ OZ:/^$EUO_H*W?\ W]-5O[/;^QCJ.\;/M'D;,<YV[LU++I$D5WIU
MOYJEKV..13CA=YP :+4^R"\^Y)_PDNM_]!6[_P"_IH_X276_^@K=_P#?TTFH
MZ99V'G1IJB3W$3E#$L+KR#@\D8JS#H5C-8S7:ZU%Y4)02'[/)\I;.!TYZ&E^
M[M>WX#]^]K_B5_\ A)=;_P"@K=_]_31_PDNM_P#05N_^_IK-F1(YW2.42H"0
MK@$;AZX/-;$&@12VME)+J<$$MZ"88Y$;!^8KRP! Y%-JFM6OP$G-[,A_X276
M_P#H*W?_ ']-'_"2ZW_T%;O_ +^FDL]$>>]O;:YG6U-DC/,S*6QM8*1@=>M0
M3V5N+J""TODN?-(4L(V0*2<=Z+4[VM^ 7G:]RQ_PDNM_]!6[_P"_IH_X276_
M^@K=_P#?TU8NO#BQ?;4MM1AN)[(,9X0C(P"G!(R,'!K..GL-&74=XV&X,&S'
M.0H;/ZT+V;V7X ^==2S_ ,)+K?\ T%;O_OZ:/^$EUO\ Z"MW_P!_33UT2&&W
M@DU'4HK-YT$D<1C9VVGHS8Z U$^AW$6MV^F/)'NG9!'*IRC*W1AZCFE^[[?@
M/W^X[_A)=;_Z"MW_ -_31_PDNM_]!6[_ ._IJ9O#Z2F=+#48+NX@#%X C(Y
MZ[<C#8]*K6.E)<6,E]=7:6MJD@B#E"Y9R,X 'L*/W=KV_ /?[_B/_P"$EUO_
M *"MW_W]-'_"2ZW_ -!6[_[^FL^YB2&X>..9)T!^61 0&'X\U%5\D.Q//+N:
MO_"2ZW_T%;O_ +^FC_A)=;_Z"MW_ -_34\'A^*6WL6EU.&":]7,,;QM@_,5&
M6 ('(JG!I$TMW?6SLL<MG%))(#SG9U%1^[[?@5^\[DO_  DNM_\ 05N_^_IH
M_P"$EUO_ *"MW_W]-5K+3VO8+R57"BUA\T@C[PW 8_6B33V32(=0+@K+,T03
M'(*@'/ZU7+3O:R%>>]RS_P )+K?_ $%;O_OZ:/\ A)=;_P"@K=_]_33--TJ.
M^M+NZFO$MH;8H&9D9LEB0.!]*J7<,$$^RWNA<QXSY@0KSZ8/-"C!NUOP"\[7
MN7O^$EUO_H*W?_?TT?\ "2ZW_P!!6[_[^FH=)TI]5NUA6>&!2RJ7E;'+'  '
M4D^U1IITTNK?V=#AYC,8E[ G.,_2BU.]K(+SM>Y:_P"$EUO_ *"MW_W]-'_"
M2ZW_ -!6[_[^FG7.B1)9W%Q9ZA%=_92!.J(R[03C(S]X9XS3[;089;*RGFU.
M&W>]W"%'C8]&*\D#CD5/[NU[?@/]YM?\2+_A)=;_ .@K=_\ ?TT?\)+K?_05
MN_\ OZ:;:Z-)+JMS8W$R6[6RR-*Y!8*$SGIUZ57OK:UMV06M\MV"#N*QLFW_
M +Z%.U-NUOP%>=KW+7_"2ZW_ -!6[_[^FC_A)=;_ .@K=_\ ?TUE5J7NB26.
MEQ7KW$+EY3$T<;;MC!<X)'&>>U-QIK1I"4IO9B_\)+K?_05N_P#OZ:/^$EUO
M_H*W?_?TUF1JK2HKOL4L 6(SM'KBMQM!L%L4O3K<7D/(8U;[/)RP )&,>XI2
M5..Z_ :<WL_Q*W_"2ZW_ -!6[_[^FC_A)=;_ .@K=_\ ?TT6>D0SZ8;^YU".
MUB\_R%W1LV6V@]O8U5U+3I=+O6MI61R &5T.5=2,@C\*$J;=K?@#<TKW+7_"
M2ZW_ -!6[_[^FC_A)=;_ .@K=_\ ?TT:GH4^F6%I=22(XG'S*O6)BH8*WN0P
M-+::/!-I:W]UJ,=K&TQA4-&SY( /\(]Z/W=KV_ ?OWM<3_A)=;_Z"MW_ -_3
M1_PDNM_]!6[_ ._IJ#4-+FTZ6)7>.6*9=\,T1RCKTX_J*MQ^'I'\2R:,;F-6
MC+!IF!VX52Q/Z4?N[7LA>_>Q'_PDNM_]!6[_ ._IH_X276_^@K=_]_335T2X
M&H7ME*RQRVD4DCYY!"#/'U[4VPTIKRWENYKB.ULXF"M-("<L>BJ!R31:GO9!
M>?<D_P"$EUO_ *"MW_W]-'_"2ZW_ -!6[_[^FJ]]9VUND<EKJ$5TC$@@(R,I
M'J#_ #%)I6GMJFI16:R+&9-QWL,@84G^E/EIVO;\ O.]KEG_ (276_\ H*W?
M_?TT?\)+K?\ T%;O_OZ:2[TA8M/-_:7L5W;K((Y"JLK(Q&1D$=#CK5>_T]K
M6NYP_P!HMUG&!T#9X_2DE3?3\ ;FNI9_X276_P#H*W?_ ']-'_"2ZW_T%;O_
M +^FDT319=;N)(HYDA"*#ODZ%B0%7ZDFJUC827NJ06&1')+((\L/NG..:+4]
M59:!>>FNY:_X276_^@K=_P#?TT?\)+K?_05N_P#OZ:<?#]POB!=):5 S\I*.
M59=NX,/8BH;#2UNK2:\N+I+6UB94+E"Y9CG  'L#1^[M>P>_M<D_X276_P#H
M*W?_ ']-'_"2ZW_T%;O_ +^FJ%U#'!<O'%.D\8QMD0$!AC/0\U#5*$.PN>7<
MU?\ A)=;_P"@K=_]_31_PDNM_P#05N_^_IK*HH]G#L+GEW-7_A)=;_Z"MW_W
M]-'_  DNM_\ 05N_^_IK*HH]G#L'/+N:O_"2ZW_T%;O_ +^FC_A)=;_Z"MW_
M -_36511[.'8.>7<U?\ A)=;_P"@K=_]_31_PDNM_P#05N_^_IK*HH]G#L'/
M+N:O_"2ZW_T%;O\ [^FC_A)=;_Z"MW_W]-95%'LX=@YY=S5_X276_P#H*W?_
M ']-'_"2ZW_T%;O_ +^FLJBCV<.P<\NYJ_\ "2ZW_P!!6[_[^FC_ (276_\
MH*W?_?TUE44>SAV#GEW-7_A)=;_Z"MW_ -_31_PDNM_]!6[_ ._IK*HH]G#L
M'/+N:O\ PDNM_P#05N_^_IH_X276_P#H*W?_ ']-95%'LX=@YY=S5_X276_^
M@K=_]_31_P )+K?_ $%;O_OZ:RJ*/9P[!SR[FK_PDNM_]!6[_P"_IH_X276_
M^@K=_P#?TUE44>SAV#GEW-7_ (276_\ H*W?_?TT?\)+K?\ T%;O_OZ:RJ*/
M9P[!SR[FK_PDNM_]!6[_ ._IH_X276_^@K=_]_36511[.'8.>7<U?^$EUO\
MZ"MW_P!_31_PDNM_]!6[_P"_IK*HH]G#L'/+N:O_  DNM_\ 05N_^_IH_P"$
MEUO_ *"MW_W]-95%'LX=@YY=S5_X276_^@K=_P#?TT?\)+K?_05N_P#OZ:RJ
M*/9P[!SR[FK_ ,)+K?\ T%;O_OZ:/^$EUO\ Z"MW_P!_36511[.'8.>7<U?^
M$EUO_H*W?_?TT?\ "2ZW_P!!6[_[^FLJBCV<.P<\NYJ_\)+K?_05N_\ OZ:/
M^$EUO_H*W?\ W]-95%'LX=@YY=S5_P"$EUO_ *"MW_W]-'_"2ZW_ -!6[_[^
MFLJBCV<.P<\NYJ_\)+K?_05N_P#OZ:/^$EUO_H*W?_?TUE44>SAV#GEW-7_A
M)=;_ .@K=_\ ?TT?\)+K?_05N_\ OZ:RJ*/9P[!SR[FK_P )+K?_ $%;O_OZ
M:/\ A)=;_P"@K=_]_36511[.'8.>7<U?^$EUO_H*W?\ W]-'_"2ZW_T%;O\
M[^FLJBCV<.P<\NYJ_P#"2ZW_ -!6[_[^FC_A)=;_ .@K=_\ ?TUE44>SAV#G
MEW-7_A)=;_Z"MW_W]-'_  DNM_\ 05N_^_IK*HH]G#L'/+N:O_"2ZW_T%;O_
M +^FC_A)=;_Z"MW_ -_36511[.'8.>7<U?\ A)=;_P"@K=_]_31_PDNM_P#0
M5N_^_IK*HH]G#L'/+N:O_"2ZW_T%;O\ [^FO9M+D>72+*21BSO C,Q/))49-
M>"5[SH__ "!+#_KVC_\ 017#CHI15D=>$DVW<NT445YQW!1110 4444 %%%%
M !1110 4444 8OB[_D5-1_ZY?U%>/Z5)'#K%C+*0(TN(V<GT##->P>+O^14U
M'_KE_45XG7J8)7IM'!BW::9VE];O+/KJZAI<$%O"DDD5RL.TE]WR8?\ BW9Z
M5RB6\T$<%[)"WV=I,*^.&(ZBHWN9Y8EBDFD>-/NJS$@?04PNY0(78H#D+G@&
MNJ$'%6.>4E)G;"TGA\?3:F\;_85+W)N,?(8RA(P>G.0*X>I3<SF 0&:0PCD1
M[CM_*HJ(0<=_ZL*<E+8****T("MSPN0][>6NX++=64L$.3C+D# S[XQ^-8=%
M3*/,K%1=G<Z?PWIE_8:L]_=V<\-O9Q2O*TD97/R$8&>I)-5M*ADO?#6JVMNA
MDN!)#,(E&691N!('?&16;%JNH0SQS1WLXDC^X3(3C\ZADNYGNWNM^R9F+%HQ
MLP3Z8Z5FX2;;?E^!?-%*R\_Q-FZ@EL?!\5O=1M#-->F5(W&&*!,;L>F35FZ_
MY#7AG_KVM?\ T,US4LTD[EY9'D<]6=B32&20E278E  I)Z =,4_9O\Q<YT'B
M5;MKJ\+Z*MO$MPQ^TK ZEAN(&6)QSFH-/_Y%/6O^NMO_ #>LJ2[N94*27$KJ
M>JLY(J,.X1D#$*V,@'@XH4'R\H.:YKC:ZJ:^M+'1]!FFL/M,Z0N\9:4JH(D;
M&5 YY]Q7*TYG=E569B%&%!/3Z54X<UKBC+EN=)X=N9[N]UNY:%;J>6SD<QE2
M0[%U.,#G\JSY%N!K-F\^FBQS(@$:Q,@;#=?F)K,BFEA;=%(\;8QE6(-+)<32
MLK232.R]"S$D4N2TFT/GTL=G?7$=Y<^)+.TMH[:]5I',D>29XU?YU.2<'OQC
M.*PV_P"1'C_["3?^BUK'$T@D,@D<.<Y;<<G/7FDWOY?E[FV9SMSQGUJ8TN70
M;J7.C\0Z?>:E?07UC;2W%M<P1>6T*%@I"A2IQT((/%6I"(_%GAVS+*TUHMO#
M-@YP^_)7/MG%<M%=7$"LL,\L:MU".0#^51*S*P96(8'((/(-'LW:S>P<ZO<Z
MO2;"[L/$TFJ7=O+;V=M))(\LJ%01S@#/4G.,#UK/T:;4XK67R=--_I\TFV2$
MQ%U+#T(Y5L'K6/+<33X\V:23'3>Q.*6&YGM\^1-)%NX.QBN?RI^S;W%SKH;E
MW:S:7XL,.B!_/492/ARA9,LO/!QDBN>JU97\MC+)-#CS7C9 YZINX)'OC(_&
MJM5%-;DR:>QVEM?6=K#X;2ZM(G#1';<-G="?,8!@,[3@\\BJ.EP7$?B+5K&Y
M?=>S6]Q""QQYDA''Y_UKFV=V"AF8A1A03T'M0TCO)YCNS/\ WB<G\ZCV6^NY
M?M-O(W]/L[G3M'UF:]MY;='@$">:A4LY=3@9Z\ FE%G=7G@VS%K;33E;R4L(
MHRV/E7KBL*:YGN,>?-)+MX&]RV/SHBNKB%=L4\L:YSA7(%/D>_6XN9;'1: D
M\6B:Y&MA]JF5X ;>2-FYW/G*C!XK"U!9EO&,]E]C9@#Y(1D '3@-SVJ)+F>-
MV:.>16?EBKD$_6FR2R3-NED=VZ98Y-.,6I-]Q.2<4C1\.VT\^O6#0PR2+'<Q
M,Y120HW#DXZ5IZ<K6/CZ,W2/"'N)-ID4KG=N //;)ZUSD4\T!)AE>,GKL8C/
MY4DLTLS!I9'D8# +L2:)0<F_-6'&221T%C976E:7K;WT$D"M"+=1(I&]RX.!
MGK@ FM"UDNHM#\/R6NC)J#+YIW-$[[#YIZ$' _$5R,MS/.%$TTD@7A0[$X^F
M:$NKB./RTGE5/[H<@?E4NFWO_6EAJHEM_6IOW8N;+Q7J7]EHUZ0&\P,GF\,!
MO!]<%L5'KEN@T>PNI[*.ROI7<-%&FS?&,88KVYR/>L**62%P\4CQN.C*<&B2
M629R\LC2.>K,<DTU3::?83FK,LW9TTQI]B2Z63/S><ZD8]L 5KR:?>IX)16L
M[A2M^\C Q$87RU^8\=/>N<J<WMVR%&NIBI&"#(<$4Y1>EA*2UN05MS?\B5:?
M]?TO_H"5B4[>Y0)N;8#D+GC/K525["3M<Z33[J"T\(+)<V45W'_:1RDC,,?N
MQTP1S]<T^]TYK_QG$DLOF6DRI<+(0 !;A<]N!A01]17,;W\OR]S;,YVYXSZT
M[SY>/WK\+L'S'A?3Z5'LW=M/N7SZ)-'7-+9:U!K-O!>2SSW!-W#&\&P*R9X!
MW'/RY'X5G1V=U>>#+=;6VFG87\A(B0L1\B^E8".\;AXV96'0J<&GQW,\*%(I
MY$4\D*Y I*DULP]HGNC;UA39Z3H^FS$"[A,DDJ9R8P[#"GT/&<>]:<G_ "47
M4?\ <N/_ $4U<822<D\T_P Z7S#)YC^8<Y;<<G/7FCV6EK]_Q#VFOW?@=EI4
MBZKI-U?%A]LM-/FMY\]738=C?48*G\*S+>"34_"<4%G&9I[2Z:26W7EF1@,-
M@<D<8XKGUD=-VQV7<,'!QD>E$<CQ.'C=D<=&4X(H]E;9A[2^YO:U9Q1:)979
MTL:?<2S2*R?/\R@+@X<GU-1>$,#Q/:DC(VR9&>O[MJR)9Y9WWS2O(W]YV)/Z
MTU'>-@R,RL.ZG!JN1\CBV+F7,I(TKO5H7TXV%C9_9;=Y!))NE,C.0,#)P.!D
M\8J_KNGWMQ;Z5-!:7$L2Z=%ETC+*,;L\@5SE3"\N5C\M;B8)C&T.<8^E#A9I
MQ%SWO<Z&V6UT_P .VHN+R6UN+N870,<.\[$)"9Y&.=QJT\$0\?:;>VW-M?2Q
MW,9QCJ?F'UW \5R#.[[=S,VT8&3G ]*432C9B1QY?W,,?E^GI4^R>KOO<KVB
MTT.V\-2+JMW CL/M>FNY0GJ\!!!'_ 6/Y&L#19=3@MYC;Z>;ZQE8)-"T1=21
MR.G(//!K'21XWWH[*WJIP:?#<3VY)@FDB)X)1BN?RH]EOYA[38T/$5E;V&K-
M#;*T:F-':%FW&)B,E">^*RJ4DL2222>2325I%-))F;=W<****H04444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 5[SH__($L/^O:/_T$5X-7O.C_ /($L/\ KVC_ /017!C_
M (8G9@]V7:***\P[PHHHH **** "BBB@ HHHH **** *VH6,6IV$UG.6$4J[
M6*'!_"N9_P"%;Z)_SUO/^_B__$UU]%:0JS@K1=B)4XRUDCD/^%;Z)_SUO/\
MOXO_ ,31_P *WT3_ )ZWG_?Q?_B:Z^BJ^L5?YB?8T^QR'_"M]$_YZWG_ '\7
M_P")H_X5OHG_ #UO/^_B_P#Q-=?11]8J_P P>QI]CD/^%;Z)_P ];S_OXO\
M\31_PK?1/^>MY_W\7_XFNOHH^L5?Y@]C3['(?\*WT3_GK>?]_%_^)H_X5OHG
M_/6\_P"_B_\ Q-=?11]8J_S![&GV.0_X5OHG_/6\_P"_B_\ Q-'_  K?1/\
MGK>?]_%_^)KKZ*/K%7^8/8T^QR'_  K?1/\ GK>?]_%_^)H_X5OHG_/6\_[^
M+_\ $UU]%'UBK_,'L:?8Y#_A6^B?\];S_OXO_P 31_PK?1/^>MY_W\7_ .)K
MKZ*/K%7^8/8T^QR'_"M]$_YZWG_?Q?\ XFC_ (5OHG_/6\_[^+_\377T4?6*
MO\P>QI]CD/\ A6^B?\];S_OXO_Q-'_"M]$_YZWG_ '\7_P")KKZ*/K%7^8/8
MT^QR'_"M]$_YZWG_ '\7_P")H_X5OHG_ #UO/^_B_P#Q-=?11]8J_P P>QI]
MCD/^%;Z)_P ];S_OXO\ \31_PK?1/^>MY_W\7_XFNOHH^L5?Y@]C3['(?\*W
MT3_GK>?]_%_^)H_X5OHG_/6\_P"_B_\ Q-=?11]8J_S![&GV.0_X5OHG_/6\
M_P"_B_\ Q-'_  K?1/\ GK>?]_%_^)KKZ*/K%7^8/8T^QR'_  K?1/\ GK>?
M]_%_^)H_X5OHG_/6\_[^+_\ $UU]%'UBK_,'L:?8Y#_A6^B?\];S_OXO_P 3
M1_PK?1/^>MY_W\7_ .)KKZ*/K%7^8/8T^QR'_"M]$_YZWG_?Q?\ XFC_ (5O
MHG_/6\_[^+_\377T4?6*O\P>QI]CD/\ A6^B?\];S_OXO_Q-'_"M]$_YZWG_
M '\7_P")KKZ*/K%7^8/8T^QR'_"M]$_YZWG_ '\7_P")H_X5OHG_ #UO/^_B
M_P#Q-=?11]8J_P P>QI]CD/^%;Z)_P ];S_OXO\ \31_PK?1/^>MY_W\7_XF
MNOHH^L5?Y@]C3['(?\*WT3_GK>?]_%_^)H_X5OHG_/6\_P"_B_\ Q-=?11]8
MJ_S![&GV.0_X5OHG_/6\_P"_B_\ Q-'_  K?1/\ GK>?]_%_^)KKZ*/K%7^8
M/8T^QR'_  K?1/\ GK>?]_%_^)H_X5OHG_/6\_[^+_\ $UU]%'UBK_,'L:?8
MY#_A6^B?\];S_OXO_P 31_PK?1/^>MY_W\7_ .)KKZ*/K%7^8/8T^QR'_"M]
M$_YZWG_?Q?\ XFC_ (5OHG_/6\_[^+_\377T4?6*O\P>QI]CD/\ A6^B?\];
MS_OXO_Q-'_"M]$_YZWG_ '\7_P")KKZ*/K%7^8/8T^QR'_"M]$_YZWG_ '\7
M_P")H_X5OHG_ #UO/^_B_P#Q-=?11]8J_P P>QI]CD/^%;Z)_P ];S_OXO\
M\31_PK?1/^>MY_W\7_XFNOHH^L5?Y@]C3['(?\*WT3_GK>?]_%_^)H_X5OHG
M_/6\_P"_B_\ Q-=?11]8J_S![&GV.0_X5OHG_/6\_P"_B_\ Q-'_  K?1/\
MGK>?]_%_^)KKZ*/K%7^8/8T^QR'_  K?1/\ GK>?]_%_^)H_X5OHG_/6\_[^
M+_\ $UU]%'UBK_,'L:?8Y#_A6^B?\];S_OXO_P 31_PK?1/^>MY_W\7_ .)K
MKZ*/K%7^8/8T^QR'_"M]$_YZWG_?Q?\ XFC_ (5OHG_/6\_[^+_\377T4?6*
MO\P>QI]CD/\ A6^B?\];S_OXO_Q-'_"M]$_YZWG_ '\7_P")KKZ*/K%7^8/8
MT^QR'_"M]$_YZWG_ '\7_P")H_X5OHG_ #UO/^_B_P#Q-=?11]8J_P P>QI]
MCD/^%;Z)_P ];S_OXO\ \31_PK?1/^>MY_W\7_XFNOHH^L5?Y@]C3['(?\*W
MT3_GK>?]_%_^)H_X5OHG_/6\_P"_B_\ Q-=?11]8J_S![&GV.0_X5OHG_/6\
M_P"_B_\ Q-'_  K?1/\ GK>?]_%_^)KKZ*/K%7^8/8T^QR'_  K?1/\ GK>?
M]_%_^)H_X5OHG_/6\_[^+_\ $UU]%'UBK_,'L:?8Y#_A6^B?\];S_OXO_P 3
M1_PK?1/^>MY_W\7_ .)KKZ*/K%7^8/8T^QR'_"M]$_YZWG_?Q?\ XFC_ (5O
MHG_/6\_[^+_\377T4?6*O\P>QI]CD/\ A6^B?\];S_OXO_Q-'_"M]$_YZWG_
M '\7_P")KKZ*/K%7^8/8T^QR'_"M]$_YZWG_ '\7_P")H_X5OHG_ #UO/^_B
M_P#Q-=?11]8J_P P>QI]CD/^%;Z)_P ];S_OXO\ \31_PK?1/^>MY_W\7_XF
MNOHH^L5?Y@]C3['(?\*WT3_GK>?]_%_^)H_X5OHG_/6\_P"_B_\ Q-=?11]8
MJ_S![&GV.0_X5OHG_/6\_P"_B_\ Q-'_  K?1/\ GK>?]_%_^)KKZ*/K%7^8
M/8T^QR'_  K?1/\ GK>?]_%_^)H_X5OHG_/6\_[^+_\ $UU]%'UBK_,'L:?8
MY#_A6^B?\];S_OXO_P 31_PK?1/^>MY_W\7_ .)KKZ*/K%7^8/8T^QR'_"M]
M$_YZWG_?Q?\ XFC_ (5OHG_/6\_[^+_\377T4?6*O\P>QI]CD/\ A6^B?\];
MS_OXO_Q-'_"M]$_YZWG_ '\7_P")KKZ*/K%7^8/8T^QR'_"M]$_YZWG_ '\7
M_P")H_X5OHG_ #UO/^_B_P#Q-=?11]8J_P P>QI]CD/^%;Z)_P ];S_OXO\
M\31_PK?1/^>MY_W\7_XFNOHH^L5?Y@]C3['(?\*WT3_GK>?]_%_^)H_X5OHG
M_/6\_P"_B_\ Q-=?11]8J_S![&GV.0_X5OHG_/6\_P"_B_\ Q-'_  K?1/\
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
M22>I)H W:*X'2Y?$'C9]0U*V\03:/IL5W+;64-I;Q.T@C8J9)&D5LY8'Y1C
M%8>L^-=<A^'VL6\ZW#:S8ZD-+FO;! HP7CQ* 3\A9'P,9PQ[4 >M45Y+J&H7
M1\1>'/#R6_B^&Q:">>0?:<7,C;D"[I/,W%4W'(SW'6NIMO%MCIFGZK=7-YJ%
M\4UF6QAA,"^89<C$,07[P'.">>N: .QHKFW\9VEOI+WU[INJ6<@N%MDLY[<>
M=-*WW5C"DJV?4-@8.<8-,3QQ8+8ZO/=V6H64^DV_VFYL[B-1+Y6"0R[6*L#M
M8<-U&#B@#IZ*Q_#_ (BA\1V\ES;6-_;VPVF&:ZA$:W"GHR<DD<=P.H]:JZKX
MPMM.U5]+MM-U+5+V*(33Q6$2OY*-G:6+,HR<' !)..E '145REU\0M$M]%TK
M54%W<P:I*8+9(("TAE 8["O!#94KCU]N:Z+3[QK^PANFM+BT:1<F"Y4+(GLP
M!(S]": +-%>8^"_B#'!X7TQ=6@U>?S+I[:75)(MT*R-,P16<G<>JC(! X&:Z
M*7Q-9:1JGBBXO;^]D@TY;8O;F%=D1=?E$6/F8L2,[N^,<4 =916=I&J2:I#(
M\NEW^G.C8\N\1 6XSD%&8$?C5#6?%UKI&JQ:7'8:AJ-\\)N&@L(0[1Q9QO;+
M  $Y  R3C@4 =!17GGA/QE%#X.DU2_FO;Q[K5[FWLX@A>:7,K[(U5L8PHZ'
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
MRYP,=R3CWH Z*BN+U#Q\%\,^(+RTTJ_CU/2(29;*YB7?&2A9';:^"G&25;.
M:W/"^M3:]H5O?3V%S92NB[DG0+O)4$LH#'Y3GC//% &Q17&:+XSO=2\<:SH<
MVC7L=O:21I%/Y2@)E"Q,AWGAB/EP.A&:Q/ _Q!CC\+:,FJP:O-YTYM9-4EBW
M0B5I6"JSD[CV&0" >,T >G45S6J>-+33M0N[.'3=2U%[)%DO&LH59;<$;ANW
M,,G'.%R<=JMZ?XITS5-633K5Y&>6QCU""0KA)H7. 5.<Y!QD$#&10!M45FZ'
MK=KXATW[?9+*+8RR1(\B@>9L<J67D_*2#@UE:AXVMM+O"EYI&KQ60N%MFU!K
M=1 KLP4'EM^TL0-VW'/6@#IZ*YJZ\:V5OXFD\/PZ?J5W?Q>4THMH RQH_1V8
ML,*._?T!YJ"Z^(&F6LMRYLM1DTZTG^SW.IQPJ;>)P=K G=N(!."0I ]: .LH
MHHH **** "BBB@ HHHH **** "BBB@ HHHH *HZUIPU?0M0TPOL%Y;26Y;TW
MJ5S^M7J* /,K31_$&J6GA31KSP^-.&AW4$]Q?&>)HW\E2,1!26^?OD# )ZUV
MJ:EJPM=3EET&3S+>X,=K#%<QLUW'QB0$D!,Y/#'M6Q10!P_@"'6["75[?5-
MN;&.[U&YOXYWN(74"1P0A".3NQGMCCK6SXXTV[UCP-K6G6,7FW=S:/'%'N"[
MF(X&20!^-;]% ',7?ABT@\'ZE:Z9I-G!?W&FR6_[B)(V=C&0%+#'?'4XK.UC
MP[JEQX"\/V]I C:GI#V5T+5Y JRO"!NCW=!GG!Z9Q7<44 <3;6FL>(?&5CK=
M[H\NDVFFVD\44=Q-&\LTDNT'A&8!0%[G))Z5G6?A?6(OA]X+TQ[/%YINH6<U
MU'YB?NT1R6.<X.!Z9KT>B@#FK32KV+XCZIJKPXLI]-MX(Y=P^9U>0L,9SP&'
M;O5?QC8ZDVJ^'-8TW3WU#^S+N1YK:*1$=D>%TRI<@<%AQFNMHH \YU_PWK.I
M-XWEAL#G5='MX+53*F7E59=R]>,%AR>.:V[[1[^;Q9X1O8X,V^GPW*7+[U_=
MEXT5>,Y.2#TS75T4 >9:KX+U;4-+\3(MN/-EUZ+4K2,S^6+A$6+*[U.4)VL
M>"" >.M:GA_P_9W%_<33^%]6TUGM'MFN+W56E<JQ&Y$VS.5'&=PVGCBNYHH
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
M+S7+62ZMX([A<(J["-[D  %7!SVZ8)-7M,\67FJZ/>3VVA3MJEG>-97%@;A
M$D&"3YAP"FU@<@9YZ5F>'X;GQ'<^$?%$5E#86=OI]S"]KN/R[RBIL&!E<1DC
MIP15;4O!>M36FM+;O;2"[UU-1-JT[1I=6XC13$[ 97)7/0C@9ZT 6-0\:ZJ?
M#OBE8=(-IK>C6_F/']H21%5XV9958C#8VD[2/X<58M?&5_:^%=*N]2TEFU34
M'C@M+:.=#]I9HPV\M@!%P&)],>XK/T7P+>V\/B^.2STO2X=<LH[>"VL"62 A
M)$);Y5R?G!R!Z^F2V^\'ZUK?A;1(-2T[2&U#19D*6LTIFM[N-8]C!R4^4G)(
MX;&!^ !K#Q[#9V.MR:U826-UH\23301RB82(^=AC88SD@K@@8-8TNLZO??$;
MP?%J>B3Z42MXZC[0LJ2 P]"5QAAW!'?@FK,G@F34_"FM::F@:)X=FO$C$)T\
MAR71MZF0B-.-P' SP35B'2?%>J^+= UC6(-+M(-,$ZO#;3O*SM)'MWY*@ 9
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
MAISW]P6"K"LJQ@?[3,W0#VR?:N1N/#.L7WC6RU4:;IFFM;71DFU&TN7,MY
M0(GCV '.5R68XQQ6MXWT34-<TJTAL/*E$-Y'/<6DTK1)=Q ',;,H. 20>A'R
M\T 4F\?-:Z+XBNM0TA[>^T)5:XM5G6175EW*5<#D$>W&*L:?XPNI_$%EIFI:
M%<::NHQ22V,LDR.9 @!974?<;:0<9/YUS*?#[5/[!\96L5EI.G-K<$2VMK:.
M?*A*J00QVCU!R!U)XKK]3T*ZO/%/AK4HVB^SZ:MR)PS'<?,C"KM&.>1[4 </
MXR\97VM^!KNZLM#NDT>>YBBM]2$ZY;;<(-YC^\J$J0#DGD9 !KU2[FDM[.::
M&WDN9$0LD,9 :0@<*"Q !/N:\RD\&>+AX+_X0V$:5_9]O*IBO7F?S)8EF$BJ
M4VX5N "<D<=.<CO?$^G7VK^&-2T_3;S['>W$#1PSY(V,?<<CTR.1F@#/TOQ1
M>S^(UT/5]&.G74MLUU;LMRLZR*K!6!( VL-R\<CWKAO"<TK:?\+-TCG>UYNR
MQ^;]S)U]:W/#?@R]T_QC9ZT=%T?2+>&QEMI(;*9I))'9D(=F*+N^Z>O(]3GB
M30O!>J:;:>!XIWMBVB&X-UL<G.^-U&SCGEAUQ0!>^(^K2Z+HVEWD=U-;QC5[
M03M"3EHO,^=2!R01V[U7T35;^XT?4_'=]-*;.2S>:PTV.;Y([= 7#-C@ROC)
M/.T''K6QXNT2ZUVTTR*U:(-:ZI;7<GF,0"D;AFQ@'G'2LC_A$-2T^#Q'I&ER
M6_\ 8>J6DS6T$CD&TN9%(95&"/+8G=_LG.!S0!+IOCNXN[[1EO?#]S8V&L_+
M9W4DZ,2^PN Z#E00#@Y^H%17'Q!N%M+[5K/P]<7>@V,LB37RW"*S",D2.D9Y
M95(/.1G!JU<>&;Z6S\&Q*\&[1IXI+G+'!"P/&=O'/+#KCBL4>%O%5EX<U'PA
M8KIC:5=O.L6H23N)8(9F9F4Q;<,PWL =P'3I0!T,GC:RANM8CEB*Q:?IR:G'
M+NXN(&5B64=L%2/Q%0Z?X[M]2TSPW=064AFUN=H1;E\-!L#F4MQSMV$=NHK-
M\5> ;K4[C0UTJ:&*V@A73]0$K'=+9AXVVC Y/[LCG^\:FT+P7?:;X]U#5;B:
M!]*5II=.B4G?').4:8D8P.4.,=F- $)^)4XT^75CX;NAH]M=M:W5X;A 4(E,
M>Y$ZNHX)Z8R1S@UUOB&62W\-:K-"[1RQV<SHZG!4A"00?6N2E\%ZH_PQU7PX
M'MOMMU<SRQMO.P![@R#)QG[I].M=EK-I)J&AZA90E1+<6TD2%C@992!GVYH
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
M=QQMHGED[;MF(5D8_P )0D,?]GFNKOKR33M$N;V95>6WMFE=4SAF522![<4
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
M6T5M8MY?+@>=ECM]BAL[CEB!DGN3TH ]+IDTT5O$TL\J11KU=V"@=NIKAO\
MA/;ZPT?6AJ>G0/K&FWL5BL%M*?*N))0AB(9AE0=XSG.,&J?CF3Q WPYUQ-=M
M].3'V<Q26,KL&S,NY2& (Q@<]\]L4 >D45AV&NRW?C#6-%:%%BL+>VE60$Y8
MR[\@_38/SKG+7QYJ>J:-X=_L[3[4ZOK;S[%FD80PQPD[W8@9/\( '=J .\6:
M)Y)(UE1GCQO4,"5R,C([4^O&[F]N(;;XF7.O:5:RRQBS\ZT29C%)B, $,,,
M>#ZCI79ZAXAU]_%MQX=T/3[!VAL8KHW-Y,RHFYG7:0H)).T8Q[Y[ @'8T5PE
MOX[OM3T;PZUA86T.I:S-/ 5N93Y,#0[Q)R!EN4(4<9_"M7P9KNJ:];:D^IPV
M436E[)9@VCLRN8SAFRW;IC\: .FHK#M==EN/&FI:$84$5I9P7"R@G<QD9P0?
MIL'YUS:>/M4N=#\/7=GI5M->:O?3V@A:8HB;#* V[!X_=@G@\9QSB@#T"F--
M$DL<3R(LDF=B%@"V.3@=ZX<^.[W2=.\3?V[80&^T,1-MLI&,=P)A^Z W#*DM
M\ISGUJA//XBD^)/@U->L["([;QXY+*9F&3#RC!@#D<<C@Y[8H ]*HKRY/BRK
MP1ZLLNB'2WNA"+,7P^W>69-@EV=/]K9UV]ZZ*'Q'KVH>-M3T6PT^Q%CIDT N
M+JXE8,R21JY"* <N,MUP.!Z\ '7T5R?Q$U*\L/#"0V%PUM<ZA>V]@MPGWH1+
M(%9A[XS@]C7.^,O">F>#O"=QXB\/K-9ZKIFR<7 N'8S@,-RRY)WA@3U[T >G
M45QESXD\0WGBC4-#T/3K FTMH+@W%[,RJ/,#?*54$DG;[ 8.>PK.D^)JOHFA
MRI'8V.H:I)/$XU&Y\N"V,!*REF_B^; 4#&=PZ4 >B45YU_PLJ9?#&L7J6]C>
MWVEWEO;-]BN-\%P)60*R/VX<C!Z$=:VM)\0:V/%@T'7;&QADGLFO;>2SF9P
MKJK(VX#)&X'(X- '5T5QGCN>XNK_ ,.>'8KF:V@U>\=+J6%RCF&.-G9 PY&[
M &1SC-9.OZ#8>![_ $#5O#L<EDTVJ06-U DKF.XBE.T[E)(+ X(/6@#TFF2S
M10A3+(D89@@+L!ECP!]37'6/BO6K_6]85;"QAT;1[N2&ZN9)6\R150-\B@8R
M,Y.3CD8[UR^N:YXBUS1/#.IWFF6,&DW^L6$T CG8SQ(95*%P1@[A_=/&1U[
M'KE%><ZQ\29+;4=8CL9M"CBTAS')#J%]Y4]TZJ&98U[#G:"<Y.:NW'C+6-0U
MC3-.\-Z=:3?VAI2ZFLU[*R+$A8#Y@H)/4# [GT% '<T5QMGXJU+4/&-[H\2Z
M5 MC,D<EO<S.MS,A56,L8Q@KR0.N=IR16CX\U271? >N:A Q6>&T?RF'\+D;
M5/X$@T ;EO<07<"SVTT<T39VR1L&4X.#@CWJ6N,DOKKPY#X>\(Z!:6TM_):'
M#7+E8H8HE4,[;1DDE@ !U).36)XD\6^(&\&^++016UCKFC(IGE@F?88G0LLD
M1QD-QC!Z8/- 'I;S11/&DDJ(\AVHK, 7.,X'KP":)(8I2ADC1RC;TW*#M;U'
MH>37FWB6X\0+<>"9I[6QGU4ZC)Y<<4S+$0;=P"S,,C&23@'IQ6C_ ,)Y=:1I
MOB9O$%E;K>:$(F;['(?+G64?N\%AE3G@YZ=: .[HKA-!\=RWGB6RT>]N="NV
MOH9)(GTF\\[R60 E)![@G##&=IXJYX&\1Z]XJL8=6O=/L;/2YHF\H)*S3,X;
M&[&,!#AN^>!Z\ '7TQ)HI)9(DE1I(\!T# E<C(R.W%<-XJO_ !-;_$+PY9Z3
M)9"VN(;HB*>615D950GS H/3(VX]36;'>>(K7Q[XX;0[&PF\LVDLKW<S*"1;
MC"*%!.3SR< >_8 ].HKD)?%5[>^%](UO3CI-E;WT FDEU6Y*+$2 0@ 'S'D\
MY'3OFLU?B'>S^$M,U2TTVVN+VZU7^RVACN/W3.&==R28^Z2H(..A[T >@T5S
M'A_7M5N/$.HZ#KEK9Q7EM!%=1RV;LT<D;EE_B ((*D>]6]4UV6P\4Z#I"PH\
M>I_:-\A)RGEH&&/KF@#<HKA]8\=76F6?BR=+&.4Z'<V\,:;B/-$BQDY]#^\.
M/H*L67B;6;7Q-%I7B*QL;=+NSEN[>2TF:3R_+*[T?(&2 P.1QQ0!ULLT4"!Y
MI$C4D*"[ #). .>Y-/KR'Q%K_B'Q!X2TO59M,LH=%OM2LW@VSL;B)/M"%&<$
M;3NP. >,CKS6WK7Q%DMM8U:SL)]"A72L+(FI7WDR7,FT,5C7L "!N.<GC'%
M'H=%<)-XVU74K_1+3PYIMK*VK:6=062\E9%@7*?>V@D_>Q@=R.V:[.5[J/3W
MD2**2[6(LL9D*HSXZ;L' SWQ^% %BBN(T7QG>7'BZ'0;^71;EKFWDF232KHR
M>2T97*2 ^H;@\=#Q6;:>/_$,N@V/B2XT>PCT:6[6VE"W#&?#2^5YBC&  Q'R
MDY/M0!Z3137=8T9W8*JC)8G  KR3PYJ%S;^+=-\67%Q(;/Q7//;&)V^6%1S:
M8'8E(V'U>@#UVBN+N?$?B6\\2ZWH^AZ9IS_V7Y1,]Y.RA]\8<(%4$YSGG@
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
M"Y)VX  YSQR:Z6WT)X/&5YKIG4I<6,-J(MO*E'=LY]]_Z5M,RHI9B%4#)).
M!3+>X@N[>.XMIHYH9!N22-@RL/4$<$4 >/\ B3PRNCVGAC2-1NXUL89[^>:^
MFLC<6ZM(Y=$:/LWS\,2,;6QUKLOAY=7,NFWMIY%M_9EG.(K"ZMK(VB7"%0S$
M1DG&&)&X<'K7957O+^TT](GN[A(5EE2%"YQN=CA5'N3Q0!SFJ>'-9_X2J37-
M"U.TM7NK1+2Z2ZMC* %9BLB88?,-Q&#Q5/2O <^FZ?X8M6U%9CHM[/=/(8\&
M82>;Q[']X/RKMZ* ..U7P*NL3>*?/O=D>MPVT:%$^:!H0<-UY^8@XXZ4VV\,
M^(;KQ-HVM:YK%E,=,$J+!:6IC5]Z;2Q)8G<3CC@#'O79U4N-4L+471GO($^R
M1>?< N,Q1X)W,.H& >?:@#D]%\(ZUX>2+3-/O=);2(IB\37%DS7$<98MY>0X
M4XR0&(_ UNZ5H3Z=XBU[5&G5UU22%UC"X,?EQ!.3WSC-:\,T=Q!'-"X>*10Z
M,.C C(-/H R/$WA^#Q/H,^ESRR0%RKQ3Q_>BD5@R./H0*YZZ\*^)O$$,.G>)
M-:T^724D1YX[*S:.2[V$,%<LY"J2 2%'/3BNPBO[2>^N+**X1[JV5&FB!^9
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
M^'>NOX:NO"UMKMI%H32-) #:$SA3)Y@C9MV-H8]0,D<<5Z310 4444 %%%%
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
M<V.,#K7F_P#PE?C#_A#KSQ:+G3?LEA<3 V/V=BUQ%',R,3)N^1L X !Z9/7
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
M@M_$6IV>DZK*UQ-IT.W9YS?Q9Z[<X.WO@#/%;47@"*WUG3=5M]3GCN=/T?\
MLJ$^6I& "!(?<9SCI0!R/A'XA^)?$7BNT\*SI:PZAIT]P=9G505DCC8*HC&>
MI)P?3K5SX\*&\*:(IM_M .MP#R>/WGRR?+SQSTK2TOX3:;HUWH5]I]_<1:AI
MDDC376T%KT.<N)/S('IFMSQMX/A\::3:V,M]/9-;7:7<<T*@L'4,!U_WOTH
M\Z^'RPZ7\8=4MY-&D\-&\TY3;:5D,DV""9-R_+D;6X'J?>O:JXW0?A_%I?B$
M^(-1UG4-8U80FWBGNRH$*'J%51@=3^9]:Z31K"XTS2;>SNM0GU":($-=3@!Y
M,DGG''&<?A0!>HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHJ
M*YF^SVLLV,^6A?'K@9H 5KB%)EA::,2MRJ%AN/T%25XQX6OK&UT+2?$GB#P@
M\[WUQ'--KL_DR2+-(XV,!N+K&&*J,8P .*]>O["VU2PFL;R/S;:9=LB;BNX>
MF00<4 2Q3PS@F&5) #@E&!P?3BG/(D:[I'5%]6.*\Z\,Z5IT/Q3U*X\-6<-I
MI%G8"SO?LRA(9;K>&  '!9%ZD="V*[K4](T[6K06NJ6-O>VX8/Y5Q&'7<.AP
M>_)H G%U;GI<1'C/#BBUNK>^M8KJTGCGMY5#QRQ,&5U/0@CJ*\V\ >&-"AT[
M7;^/1[%+RVU;4(H)Q H>) [*%4XR !QCTJGX/UOQ'H?@SP9<7"Z:VCWCVUA]
MG17\]1)\JR;\[<YP2NW@'K0!ZW17F&K_ !'O$U'6UL+[2;9-)E:!+2[AD>6\
M=%!;#*P$8R=HX;D9->B:;?#4M(M-06-HQ<P),(WZKN4-@^XS0!;HKRZT\;^+
M!X/TWQA?0Z0-+EDB6XM(HY/-V/((S(KEL [B#LP>.^:W;;7?$>H^--9T^W&F
MP:3I%Q")994=I94>)'*C#  C+'<?51CJ: .TJ".\MI;N:TCN(GN8 K2Q*X+1
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
MK+M4*5RW)R>G%1W/C_4)].\.72M9Z';ZG;/+->ZC \L44RD 0\,@7/S$,Q'
M]: /2**AMGD:RA>5HGE,:EVB^X3CDK[>E>;:9XU\5R^'M"\37T.DC3;^ZAMI
M;6%)/- D?R_,#EL#YL';@\=\T >GT5P[:[XHUN[UN3P^=+@L]*N7M%2\A>1[
MJ5%!?E64(N3@'#=,UAW>OZ_XBUSP+J6BWEI9V^IVMQ*L%Q%)( XC!</M=0X'
M1>F""><XH ]4HJIJ$T]OI=Q-#);)/'$6#W+%8E('5B.0M<7X:\:75_XKDT6;
M5='U:)K![R.YTZ-HQ&RNJE&!=@0=P((/8T =_17E]GXV\6#PEI/B^_ATD:7<
M/"EQ:0I)YH21Q'YBN6P#N(.S!X_BS6K)KOB[4];\1V6C#2(8M(F58WNHY':<
MF%'V$!AMY)^;W''!- ':/>6T=Y%9O<1+<RHSQPEP'=5QN('4@9&?J*GKS*WU
MN;Q)XE\)ZS8QQPW-YH%[+$DN61)"8>#C!(#?3BM.P\<7>JZ?X3%I! NHZM.R
M7D3J<0+"#]HP,Y!# *,Y^\.M '=45P_Q/FU>#0;"32KR*V)U*U20NCEFW3(%
MP58?+G[P[CCBI;K6/$DFO6GAFRFTQ-26Q-[>WTENYB52Y1%2+?G)(/5N />@
M#LZ*YSPEKU[J\>IVFJ101ZCI=XUI.;?/ER?*K*Z@Y(!5AP2<'-86DR>)'^+'
MB" ZC9FPBAM7:%H9"1&QEVA/WF%?CYFP0>.!B@#N;2\MK^#S[2XBGAW,F^)P
MR[E)5AD=P00?<5/7CN@:WXC\.^!I=9A736T>TU.X62W=7,\R-=LK,'!"H06X
M&#G&<\XKH-?\=W$/BG4-&LM2TK3?[.CC+R7\$DIGD==P50C+M4#&6Y.3P.*
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
M>K#2&M6M+/\ X2 :T-%&"WV<R%=XEQG=MV<[<YSQF@#T"2:.%0TLB("P4%F
MR3T'UI]<)XAN-8T_1[(:]%HVI,VL6<4+I;NJ@/(H+;&8[77)P0Q'M5;QMXTU
M#PS+?3Q:SX? M$$J:7*KM<S)@$Y8.-A/./E(Z4 >B45YX;CQ%<?%U([74+-+
M!](CG$$L,C?NC+@\"0#S.N&QC&!@UF7_ ,4+Q3JE]9W>E+!87,D,>F2PR-<7
M2QMM9A(&PA.#M&T]L]: /5JAM+RVO[9;BSN(KB!B0LD3AE)!(/(]""/PKDI]
M?\0:OXFO=,\._P!GP1:=;0S3O?Q.QE>4%EC 5AM&T<MSR>E)\*"[?#C33(H5
MS+<EE!R ?M$F1F@#M**XC0/%&I:KXKO+"ZO=,M#;W,L1TJ6!UNC$N0DJN7PP
M;@\+C!ZYK/O/'-_IOB2QM9=8\/WJ7.HI8RZ?:*YF@#MM#>9O(+ XR"HH ] M
M[RVNGG2WN(I6MY/*F".&,;X!VMCH<$''N*GKRV/Q+_PBMIXTOT2)YY/$:VT(
MF)$8=XH0&8CG:!DG'I6UX4\7W6I^)9M&N+VPU-/LGVJ.\L;=X54A@K1LK,W/
MS @@],\4 =Q3)98X(7FFD2.*-2SNYPJ@<DDGH*YK7M;U7_A);'PYH?V2.\GM
MI+R:YNXVD2&)65>$5EW,68=QC'>N,\8ZYKFH?#_QCI-X;&+4=)*1W<D4;^7<
M02(&4H"V48Y&<E@,'UX /4--U73]9M!=Z9>V]Y;EBOFV\@=<CJ,CO4UU=6]E
M:RW5U-'!;Q*7DED8*J*.I)/051TRWU&WT-8;B2Q^WA" ]O;LD(/\/R%B< 8S
M\W..U>76\NOS_"+QA+JM_:W-N%U!$"Q.) XD<'YF<C9P<+C@8Y.* /8U970.
MK!E89!!R"*6N$TK6_$>G:UX=T_6%TU[/5X76)+57#VSQQ[P&8G#@J",@+S6"
M?BI=26[ZQ;W6EM:+=&-=)\F1KJ2$2;"_F!MH?&6"[2,<9S0!ZS1110 4444
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
ML+A%92 RAR-I() (!)%:M &+X;\/+X?M+D/=27EY>7#75W=2*%,LC #A1PH
M  '8"J[>&[J+QG)K]EJ@@CN88H;RU>W#^:(RQ4JV1L/SD'@UT5!.!D]* .0?
MP*C> [KPO_:#;9YY)OM'E<KNG,V-N>V<=?>I[WPOJ">(;O6="UE-/FODC2[B
MFM!<1R%!A7 W*58 XZD' XKJ <C(Z4A(&,D#/ H ALXIX+.&*YN3<SJH#S%
MF\]S@<#Z5S&E>$M7T(+8Z5XB6'1DF,D=K)8K))&K,6,:R;L;<DXRI(!ZUUU%
M '&:I\/X]6NM0U&?4G&KRW$4MC>K$,V*Q?<1%SR.6W<C=N/3BK$OA75+;6KW
M4M$UV.Q;4-CWD,MD)T:15"[T^=2I( R"2.*ZNJ<NJ64&JP:9).%O+B)YHH]I
M^9$(#'.,#&X=^] &>OAYSXDT[6IKYI9[.PDLW!B \TNR$N<<#E.@'?VK/N_"
M6I)KVH:GH?B!M,&I!#>1-:+-EU7:'C)(VMM '(8<9Q71V&H6>J6,5[87,5S:
MR@F.6)MRL,XX/U!JS0!S@\,W5OJ6MZC8ZNUO=ZE';(LC0+)Y1A!&2"<-N!.>
MF.U9G_"O%N[36CJ>IF74-5D@E:YM;<0+"\/,;(F6Y!Y)).>E=M4%W>6NGVLE
MU>7,-M;QC+RS.$11[D\"@#-T?3]>M;AI-6UV&_C\O8L<5B(!G(^8G<Q)X(XP
M.>E5M>\-3ZEJUCK.F:F=.U2TC>$2M )HY(GP2CID9&5!!!&#6GI>N:3KD3RZ
M3J5I?1H<.UM,LFT^^#Q5^@#C9? (N?#6O:?=ZK)/J.N<W=^80.0 JA4!P%4
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
M+;Z/Y[3):R6*R21!F+,B2;@-N2<94D9KKJ0D#&2!GI0 M%%% !1110 4444
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
M!=>(Y;Q;7SC9Z-(D6Q2Q D=V*C)(( +=CQ7/:-JEYK0^%^H:A(9;N6:[$DA
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
M_O?,\D2QQ'RUR<NZHO'U85Q3ZWIEUX;TRVM=5\2RRSW4L"6T)"WTDB9+Q.S
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
M[-]8Q7)MKBV,@R8;A-LB<XP1D_SJS4-I;_9+2&W\Z6;RT"^9,VYVQW8]S4U
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
M^3)<WES)/*8QT0,Y)"^PK<JG:ZI9WM]>V5O-ON+%U2X3:1L9E# 9(P>"#Q0
M:5I=IHNE6NF6,9CM;:,1Q(6+$*.G)Y-9.I^"-$U;4+F]N8[D/=HJ74<-U)''
M<A1A?,16 ; XY[<5T5% &5:^'-,L[K3[F"!EET^S-E;DN3MB.WCKS]Q>3S5#
M5_#L<?A;Q%9Z39)+<ZJ)I'BFD.V2:1 I))Z#@<#TJ[IFNKJ6N:UI@@,;:7+%
M$TA;(DWQK)D#MC=BM>@#)\,Z)%X<\,Z=H\6"MI L;,/XFQ\S?BQ)_&J6J>!]
M$U;4)[Z9+N&:Y0)=?9;R6!;E0, 2!& ;CCGG'%='10!B:GX3TC5-/L;*2"2W
MCL&#6C6DS0/!A=ORLA! VDC%6[/1;&QU*ZU""-Q=74444KM(S;EC!"=3U^8\
M]ZD.J6:ZPFDF;_3GMS<K%M/,88*6SC'4@8SFBPOGO7NU>RN;86\YA4SJ )@
M#O3!.5.>IQT- &5)X)T)]$LM)%O+'!8N9+22*=TE@8DDE9 =P^\>]/'A#2FT
M>;3)S>74$TR3R-<WDDKLZ,K*=S,2 "J\# K>HH *Q%\)Z.N@P:(+9OL$,XN$
MC\QLAQ+YH.<Y^_S6W5/4[Y].M!/'97-XWF(GE6R@O\S ;N2.!G)]A0!#<:!I
MMWJ<VH7%N))YK,V,FYB5:$G<5*].I-9FF^ ]#TN_L;V%+R2>P#+:-<7DLH@0
MJ4**&8@+@]/IZ"NEHH S+30-.LM)NM,@A9;2Y:9Y4+DDF4DOSG(R6/TJ&'PM
MI%O<Z5<PV[1S:7;_ &6V=9&!\K:%V-S\XX!PV>>>M;-9!UY!XO/A\P'<-/\
MMWG;N,>9LVXQ^.: *5EX&T;3KN.:S-_##'+YT=FE_,+='SG(BW;<9YQC'M5R
M'PSIUOXBGUR 7$5W< ><J7#B*1@NT,T>=I8+QG%7=+U.SUG3+?4=/F\ZTN$W
MQ2;2NX>N" 15N@##UKPIIVO3^;>27R[HO)D2WO984ECR3M=58 CD^_-0WO@C
M0[VZCN#!/;LMNMJR6MS)"LL*_=C=4(#*,G@]CCI7144 8MGX5TBP&CBWMV0:
M0CI9_O&/EAUVMGGGCUJJG@;1HKY[F W]NDDWVA[6"_FC@:3.2QC5@O)Y(Q@]
MQ7244 4+?1[*UUF]U:)'%W>)&DS&1B"$R%PN<#J>E*=(LCKJZT8C]N6V-J)-
MQQY98,1CIU YJ]61XDUU?#NE+?/ 9PUS#!L#;?\ 62*F<^V[/X4 -UOPOINO
M36]Q="XBN[;<(;JUN'@E0-U 9"#@XZ'BHX_!VB1:(ND):,+07"W3 RL7>57#
MAV<G<QW 9)/-;M% !7GOA3X9Z?9:/9?VQ;RM>17#W$MNMVYMWD\UF1VC!V,P
M7;SCM[5Z%5.\OGM+FSB6RN;@7,OEM)"H*PC!.Y\D8'&.,\F@#+U3P7HFL:JV
MHW<,_GR1B*=8KF2-+A!R%E52 X&3P?ITJ:R\*:18#1Q;V[*-(C>.SS(QV*XP
MV>>>!WJ1_$-BVEZM>VC_ &@:694G0 KB2-=S)DCW'(R.:LZ/J U?1+#4EC,2
MWEM'<",G.W>H;&>^,T <MJ/@A=9\?7>KWGGQ6QTZ&W@GM;IX95</(7&4(."&
M7V/X5KS>"M!FT*ST861AM+)A):F"5XY(7&?G5P=P;DY.><G-:>J:I9Z+ITNH
M:A-Y-K%MWR;2V,L%' !/4BJFH:ZMAXBT;2# 7;4_/VR!L"/RU#=.^<T 5[7P
M;H]GIU[:1I=,;XJUS<O=R-<2,OW29=V_C'&#Q26W@O1(+'4+26WEO%U%0MW)
M>SO-),%&%!9B3@=L8QU'-=!10!@6'@_3; 3 3ZG<"6!K<K=:C-*%C;JJAF^7
MH.1S[U)H_A33=%OI+Z!KN>[>+R?/O+N2=UCSG8I<G SSQU[UMT4 8FL^%-+U
MR\AO;C[5!>PH8DNK.Y>"783DH60@E<\X-">$M$CTBTTJ.SV6=I<)=1(KMGS4
M?>&+9RQW<G).>]2:QKJZ1J&C6C0&4ZG=FU#!L>6?+9\^_P!S'XUKT %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %<I\2K*"^^'&OK/%YG
ME6,TR#)&'5"0>/2NKILL4<T3Q2HKQNI5D89# ]01W% 'EFM:#I8T3P+I]F'A
MM+K58GE^SSL&8M;2$X;.1D#'!'!XJ'4+2/0;;XEZ3IID@L(='CN88!(Q6*1X
MI@Q7)XSL4_6O1K+PUH>G6\$%GI-G!%!.;B)(X5 27&W>/1L'&?2K,VDZ=<->
M--8V\C7L0AN2T8/G( 0%;U'S-P?4T >;>)K'R$M_$E_:PZSI-GI40N+,W9BF
MLR,L9HQG!8@CJ0WRC![5Z'J:Z9J7AVXCU)T73;NWV2F9M@V.,<D]#S^=0WGA
M3P]J-W#=WFBV%Q<0JJQR26ZL5"]!R.@[>E:=Q;07=O);W,,<T$BE7CD4,K ]
MB#P10!YS;W^N>$=:@\-Q:HNNVEQI]Q-8M(H^TVQB0%0Y7AU.0 Q )-8WA+1=
M7O\ 3O#.OVB:7#<230SW>IG5I9)[I6_UL;H8PI)R1MW84@ =*]/TCPSH>@-(
M^D:1963R\.T$*H6'H2.WM44/A'PY;ZK_ &I#H>GI?;]_GK;J&#?W@<<'WZT
M<=X<T_2-:N];UG7IS_:MIK4T*R/=-&;54<")%PP !&#_ +6XYS2>$]!TBS\7
M>-)X;98[JUNPL)\QLHKVR$\9[DM7;7'A?0;K5TU:XT:QEU!""MR\"EP1T.<=
M1V/:I6T'2'UC^UVTVU.I;/+^U&(>9MQC&[KTX^E 'EGAY8M:A\!:-K4KMI4V
MB27"PM*56ZN%* *V#\VU26Q4>JEK+PMX[TS3+J<:39:A9)9.DI;R'9HC*B,<
M\*QZ=LFO4[KPSH=[I4.EW6D64UA!@0V[PJ4CQTVC''X5)'H.D1:2-*CTRT33
MP0?LJPJ(\@A@=N,=0#]: .0M-'M/#/Q/TRUTOSHH+_3+AKI'F>3S7C>/:[;B
M<O\ ,W/7FE\?Q3R^+/!834'T^)KNXC^U*B-LD:$[  X*[C\P&0>M=P]E:R7L
M5Z]O$UU$C1QS%1N16QN /8' _*H]1TRPUBR>SU*S@N[9\%HIT#J2.AP>] ')
M^&M:N;/7?$VF:KK2WNGZ5Y#I?W7EQF,NI+1NRA5.W .<#[W-6?&'B%T1/#VC
M/%)K6HQ'RV9ALM8CP9W/8#L/XC@#O6W#X<T2WT>32(=)LX].DSYEJL*B-\]<
MC&">!UJ#4/"'AO5K@7&HZ#IUU,J",236R,P4=!DCH* %T6TTSPQH&E:1%=Q+
M!$B6MNTD@!F<#H/5C@G ]ZT[FUM[R'R;J"*>+<&V2H&7(.0<'N" 1]*Q7\(:
M;]LT8P0Q6VGZ2\D\%C!$$C\YN _'H&?C'5L]JZ"@#A?B5H!U#PA)8Z7=V.FS
M7-ZLSI-)Y"7K<EHV9<$E@,^IV_C7G\7B'PY_PK]M,;PW<0$ZZ+&338=49;=[
MC;C_ %^3B+C) XSS[U[;JNCZ;KED;/5+&WO+8L&\J>,.N1T//0^]5#X3\/'1
M?[&.BV']F[M_V7R%V;O[V,=??K0!X18O+I^C_%#2K=([2SM[2!X[2VO6N8H'
M(^;8YP>>_OQVJTWA*TAUWX>".^U-7\1V;?VI(+Q]]P!$C[2<\+SC [8[\U[9
M;^$O#MK:W%K;Z'I\4%Q&(IHTMU"R(.BL,<CD]:M'1-+:6PE.GVIDT]2MFWE#
M-N" ,)_=& !QZ4 > W5U?^%_!?Q%TG1;FYBL['58H8<2,6MXG8AL-U&< 9]_
M6NM\ :'=:;XVMKO3FTBPTN>Q83V5GJ[79N".5EVL!SR 3_C7J*:)I49OMFG6
M@^WG-W^Y7]^<8^?CYNIZU5TCPEX>T&X>XTG1;&RG<;6DAA56(],]<<#B@#@/
MBG]GO_&_@[1-;N6M_#MV\[W7[XQ)(ZJ-BLP(QS@=?XJX[1+[0/#]E\3Y$EO-
M0T:*>SBC-O='S)%+.H42]=N?ES_='>O>M7T/2M>M1:ZMI]M>P*V]4GC#A3ZC
M/0U!'X8T&&VNK:+1K!(+M$CN(UMU"RJ@PH88P0!T]* /%?#&DQ2_$;4/#<%I
M!I5AJ>@/YUI9ZDUXBN6PKECT<#''XYYI/!^I:CXJU[PEX0O3*LOAB6>;4N3\
MQA;;"/?!P/QKVK2_"OA_1)DFTS1K&SE1"BR0P*K;2<D9 SS@?E6/X5\&2:%X
MG\2:_>3P376KW 9!%'M$40SA?<G(R>^* ,_XK:1=:UH^G6]I>62M'=B9]/O+
MDP)?(HYCW @^^.GY5PQ\0>&M4\$>'=-B\-W!6ZU">"+37U5XK=9$P6+39)9/
MG! ^H'2O9]7T'2=?MEM]7TZVO84;<JSQAMI]1GI4%SX3\/7>DPZ5/HMA)I\!
MW16Y@79&?51C@\GIZT ?/<LLB?"?XA:<I1+2TU.W$%O%<FXCA!E7*HYZC@<U
MT7B=;C7?B=/I&H6MG>6=MI4+65M?:B]G&-RJ6D4J#N?)(^@]J]B7PGX=2QN+
M%=#T];2Y*&:!;=0DFS&W(Q@XP,4[5_"^@Z\(O[6TBRO/)&(S-"&*#T!Z@>U
M&'\/](G3P-86^NS6.JW:12VS7,;BX62$N?D+D?,,  C_ &>>E=B %    '
MJ&RLK33;.*SL;:&VMHAB.&% B*/8#@5/0!XN;33M0^'&O^*M3NI$\2P2W;"Y
M^T,LEK/'(PBB09^4<(-O?=[UM1:+::C\5M&O-2LA]NDT'[7-EF&)UDB . >W
M3'2NVF\*>'KC5QJTVB6$FH!@WVAK=2^X=#G'4>O6M$V5J;];XV\1NUC,*S;1
MO"$@E<]<9 ./:@#G?'5W90Z78VEY8R7[7][';06RW!@220AB!(X/W,*21SG
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
M3&0J@9MWR+G.>V,@@]*9;+-I?_"P],CMK?3H8M"$XL[2\:>.&0QS L"57:Q
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
M94OK22T%VEU UL1D3+("GI][I3#JFGB":<WUJ(H7*2R&9=L;#LQSP?8UXYK
MM&\,?$F;1/+&@R-:_9VMN(3.-OG&/''79DCC(KK_ !3!H?A:RT73+31-%BAN
MKS8D]_&!;P.L;?O)#_$Y VC)!)/6@#IM9\4Z3HF@/K5Q=))9 J%:!U;>2P'R
M\X/7UZ U*^K,^H:;%91V]U9W?F^9<K=*/+VC(VKU?)X..G>O&IH;6[^'OCXA
M=/NH+?5(IXFLX,0)\L)=XU).!C=D@\\GH:[FZ?29/&G@9M#:R:PSJ'EFR*^5
MGRAG&WCKG/O0!VS:E8I>BR:]MENVY$!E42'_ (#G-+<ZC8V8<W5Y;P! "YEE
M5=N<XSD\9P<?2O$M_A]_A5?6]X+5O&C3RAHSC[<;[S3L*_Q]=N".-OM796VB
MV6K?%34O[9LK>\EAT:T^69 Z!F:4,0IXSVSZ$^IH ]#5E= Z,&5AD$'((JN^
MH64=XEF]Y;K=.,K TH#L/4+G)KE_A;D?#O34R2L4EQ$F3G"K/(JC\  /PKG+
MNYT[0O'+W%O/HVL_VEJ\4<UI(%-_9S?*FY#R2B[0V"!@9P: .[T?Q1I.N7=]
M:V-TCS6=PT#J77+D*K%EP3E?F'/J#5^+4K">[>TAO;:2YC^_"DJEU^J@Y%>8
MZ3!86#_$"RTN&QM_$:W%R;"&-$2<*;9"GECKMW9Z<9J@K>%YO#G@R+PS]A/B
M!;RT*BVV_:4QCSS+CY@-N_=NH ]?FU"RM[F.VFN[>.XE_P!7$\@#/] 3DUCZ
M+XC_ +0GU\7@AMH=+U V@D+X!41HVYB> <OBN+TN;PK'K?BM/%QT_P#M5M6;
M8MZ%,K083R/*!^8C'3;WS6._^C>,-7U#6%\_PM#XA<740^[#.8H?*FE'\48/
M&.@)!.>P![969XAUJ'P]H%[JTZ-(MM'N$:GF1CPJ#W+$#\:FM]7T^[U.[TVW
MNDDO+14>>(9R@<$J?3D"N/\ '<]_J7B'0/#^E6T%U,DO]JW,,\QB0QPD! S!
M6X,C ]#G90!TOAG7XO$F@0:HD#6S.726!VRT,B,592?8@UH6E_9WZNUG=P7*
MH=K&&0.%/H<'BO+K02V=_P",?#GB5[?1K;6;5M2BDM[DR)"''E3'>RKSNVL1
MC^(UM_#[4(?[2U+1XX=%G>S@@)U/1T"Q3J=P57 SM<8)QDC#<8H [:\O[/3X
MQ)>W<%LC' ::0("?3)-3(ZR(KHP9&&593D$>M<#XTU2QC\5V>G7-MH,,AL9+
M@:AK:!HPF\ QQC(RW<_,.,=:M_"9RWPVTT;@0LEPBX! "B>0  'D    'H*
M.LDU"RBF6&2\MTE9Q&$:4!BY&0N,]<$'%']HV0OOL1O+?[7C/D>:OF8]=N<U
MQ/A_1=-O/B;XRU"ZLH9[JWNK0022H&,7^CQG*Y^Z<@<CG@>E<+HED-1\/QVN
MHZ_X;TW6%U(R3M/;$:BER)\_>,H))P ,+@J<4 >X/J%E'>I9O>6ZW3C*P&4!
MV'J%SDU)]JM_+ED\^+RX21*V\80CD[CVQ[UYA<W.G:%XY>>WGT;6?[3U>-);
M60*;^SF^5-R'DE%V[L$# S@U1OM;TW2O"GQ*TJ^O(H=1GO+TPVK'][()85V,
MJ]2#ZC@ $GI0!Z%+XD$/C(:/)Y"V?]EM?FX9\8(D"8STQ@YS5OP]XBT[Q/I$
M&I:;-OBE0/L8C>F<X# $X/!KCM-MX;OQWIEO<0QS0R>$E#1R*&5AYJ<$'@U%
M\,]6\-Z)\,+:\>XL+:2T@0:FT87S(VWLJ^:%^;.<@9]Z /29)$AB:25U2- 6
M9F. !ZDUQ]_\0+)O -YXET8QW!@&1!*P##]YY?S!22.Y%==-#%<P/#/$DL,B
ME7C=0RL#U!!ZBO$(%T=?@+J]K:BR34X]Z7L<059EQ=D*) /F''3/X4 >V07U
MI=32PV]U!++"<2I'(&9#Z,!T_&FC4+)KTV2WEN;L#)@$J^8!Z[<YKA[K1['0
M?B3X:CT6RM[(SZ=?1.(4"B0((BF['WL$DY//-<5X8LH]0T+1X;O7_#EAJL6H
M))*)+8KJ(N1+EE9C+DLQRI^7!!Z8H ]TDD2*-I)'5$4%F9C@ #J2:@BU"RFN
MFM8KRWDN%4,T2R@N!ZD9SBLOQK_R(?B'_L&7/_HIJ\UL'\-3Q_#]/#'V0ZVM
MW$]S]G \]8O*;[1YW\0R>N[J<8H ]>?4;*.\2S>\MUNG&5@:50[#V7.31-J%
ME;OLGO+>)]RKM>4*<M]T<GJ<''KBO$(;)=1TW7+/5M=\-Z7J;:G,T\E];G[=
M$XES&Z.91QM";<#&..>:[BPT73M2^+7B&?4+2&[EM;*Q\DS(&"$^9E@#P#\H
MYZC\: .W74+)KUK);RW-VHR8!*-X'KMSFD.I6 OOL)O;;[61GR/-7S/^^<YK
MS/2+FPT7QE;VFGSZ+K::G?W,D4T84WUE*P=FWD9W(.5R=I ('-<[NT"3X2_9
M_P#13XV:;&SY?M_V_P [K_?SGOTV^U 'MUSJ5C9AS=7MM $VAC+*J[<],Y/&
M<''TJRK!E#*001D$=Z\^L]#TW6/BGXE.JV%O>-#I]DJB9 ZKN$N[ /&3@<]?
MS-:7PM=F^&NBAF9MD;QJ6.<*LC*!^  % &WKFN6VD:?>2?:+?[9#:R3Q6[R
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
MY(-*U:UNYHUWM'&_S;?[V.X]QQ4,?C7PQ+?V]BFNV+7-PVV*,2C+-DC'U)!
M'?M0!N"-%D:0(H=@ S <G'3-"1I$@2-%1!T51@"G44 1/:V\DXF>")I0I4.R
M L >HSZ4DMI;3P"":WBDA&,1N@*C'3@U-10 WRT$7E;%\O&W;CC'IBHH;.UM
MX6AAMH8HF^\B1A0?J!4]% $4%M!:Q>5;PQPQYSMC4*/R%/,:&02%%W@8#8Y
M],TZB@!GDQ;'3RDVR$EQM&&SUSZTV"W@M8A%;PQPQ@YV1J%'Y"I:* (XK>"!
MG:&&.,R-N<HH&X^IQU-)-;07!0S0QR;&W)O4':?49Z&I:* ();.UFA,,MM#)
M$6W;'C!7/7./6GO!#+ 8)(HWB(P8V4%<>F*DHH CA@BMXA%!$D48Z(BA0/P%
M.\M!(9 B[R-I;')'IFG44 1B"$!0(HP$8LH"C@G.2/?D_G34M+:*=YX[>))G
M^_(J ,WU/4U-10 A 8$$ @\$&H[>UM[1"EM!%"A.2L:!1G\*EHH ;'&D2!(T
M5$48"J, 4&-#()"BEP" V.0#U&:=10 P11@.!&@#DEP!]X^_K4<-E:V\3106
MT,4;_>1(PH;Z@5/10 BJ%4*H 4#  [5'/:V]T%%Q!%,%.Y1(@;!]1FI:* (I
M+:":2.26"-WC.49D!*'V/:FR6-I*D:26L#K$<QAHP0GT]*GHH ;Y:>8)-B[P
M-N['./3-"1I'G8BKN)8X&,D]33J* (Y+>"62.22&-WC.49E!*GV/:FM:6S7*
MW+6\1G48$I0;@/KUJ:B@ J 6=J+DW(MH1<'@RA!N/X]:GHH B^SP&$PF&/RB
M<E-HVGG/3ZTV:SM;B5)9K:&21/N,Z!BOT)Z5/10 WRT\SS-B[\;=V.<>F:8]
MK;R3I/)!$\T?W)&0%E^A[5+10!$]M!(DB/#&RR_ZP%00_P!?6EC@AB@$$<4:
M1 8$:J N/3%244 0V]I;6B%+:WBA4G)6- H)_"EGMH+I MQ!'*H.X"1 P!]>
M:EHH :B)&"$55!))P,9)ZFHS:6S7(N6MXC.HP)2@W ?7K4U% $;6\#SI.T,9
MF0860J-RCT!ZBFBTMEN3<BWB$Y&#*$&XCZ]:FHH BEM;>>6.26"*22,Y1G0$
MJ?8]J=Y,1\S]VG[S[_RCYN,<^O%/HH 155$"(H55&  , "EHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ KE?B18WFI> -3MK&"2XF(C<P1_
M>E19%9T [DJ&&.^<5U5% 'G4FI67BOQIX5FT"&=DTQII;J<VKQ+!$T101$L!
MR6(^4=-N>U<?!J%A<?#/7?#<&G7,FLZA?W201I:,1<.;A@L@<#;A<#))&-GT
MKW6L[1-%M= TXV-FTC1&:6;,C G=(Y=N@'&6.* .4^TC1_BO&=0\X"^T:WM8
M)A"[+),LS[ER 0#\P/..#FN::TN8-(AOI[*XFL;'QC<W=W$D+.WE;Y LFT#+
M*K%6X!]>U>PT4 >9RS1^(O%>LZWH\,SZ?'X>ELY;DP-&L\Q;<JKN +;0#R.F
M[%1KIIM_!?PS6"R,<D-[9-($BP4W0OO)XXR3SGOUKU"B@#.T[6[/5;W4K6V,
MADTZ<6\Y9<+O*AL ]^&%>;^.-9U&Y;Q9HTDLEDOV4I:6L&FM,^H!H>7,F",
M_+QC:%R37IVG:9::3;O!9Q>6DDKS.2Q8N[L69B3R22:MT >>:/8M)X_\/7%Q
M:EO(\+X61X\^7)YD8ZGHV"WO@FL"6SFM-&-S)93MIVG^-)[JXA2$MMMP[X<*
M!DJK,K<#MGM7L5% 'GWAZ[M=6^*VI:KI]I.EG+I$2?:7MFB6X<2MEAN +8&!
MD_W?05HWT,I^*^G3"-S$-$N5+A3M!,L6!GUKL** /(+'2V@^#O@^..Q:.XCU
M.RF95BPRM]H&YB,9!P3D^E:=U?\ ]C>-9$\/75Q<3:AJ<8U'2)[)RHSM5YXY
M,#: JALDE3CC%>F44 >=64DD7B/QSHJ^=!J>HN9K$F)PK@VJJ&#XVC#*1UZB
ML+PM;6M[9>%]*OM<U.*\TR6"0:6=+"&&:,8(9Q'POW@6)Y!Z\U[%10!XKXIU
M?4]7T_4K&:2:WN8M60)I-OIC'$:7"D3-+@]0-VX$ YQ71&_L]!\<>+4UNQN9
MSJJVYLPEHTPNHQ%L,2X!&0V[(./O9Z5Z110!R7PQ@EMOAKH4,\3Q2I;X9'&"
MIW'J*YK1M#NYO@AJUEI]J8M2O!?G;MV/*QFD S[E0 /;%>I44 >7^&UL-7UG
MP^YU_4IKO358PV3Z6(/L^8BC([",;0!Q@G!(&,U/X U2RTW0;#PO?VETNO07
M$BSQ-9NW[S>S><7V[=I!W;L]Z])HH \1\/V"/X>L/#&N:[J=I?07BF33TTP%
MO.6;>'601DD$X;?GH3DUT=WX?GUV;XBV2(\<\UQ;RV<A&/WJ6\;(0?9U'ZUZ
M710!Y#';:QXU\(>+?$*V4]OJ.H6"V%G;2*5<1QIF10#_ 'I&D'X"KV@_V=JV
MLZ+</KVIW=QIL4ACL3I7D^2#$59'*QC&!QC/) QFO4** /-O ]\UEKEMH.BW
MD^I^'X[61@US9O%+IY!7;&7( ?.3P1N&WFM/QM<IIGBCPCK%TLHL+2YN5GFC
MB:01[X&5<A03@GBNVHH XK1;..?XG>*+V2UW+)8V*12R1=5(DW*"1[+D>PS7
M"V5I?V/ASX?ZC+->6%E8I=Q3SQVGG-;,YQ&S(5.!@,N['&?>O;Z* .1\#6MD
MHU?4;/5+K43?72R3336OD*7"*N47:H.0!DCJ1ZYJOI&G))\0_&MQ/:!A+#:1
M+(\?WT\H[E![C.,BNVHH \1L;?4+#1?A]J=S<WFGV=KITT$MREIYQMI&V[2R
M%3M!"E=V..G&:U-2T^!?A]K6H:=>WVJB?5[:]N)&LS$24DA+LB!1D;5R2 <D
M'T->M44 5M/U"VU2PBO;-VDMY02C,C)D XZ, >U>'Z;>V>H_""W\+Z?8W/\
M;MU= PJMHP!;[1N\_P P#;M"@Y;/&W%>\UG:%HMKX=T6WTJR:1K>#=L,K M\
MS%CD@#N30!SOAZP5?B5XRO9+;#O]C2.9DZJ(1D ^F0,X]!7#I-&OPHNO!,VG
MW;^)Y#)"UM]E<F2=I21/OQMV\A]^>@KVNB@#SB/4(/"OCW7)_$"7#+?VEHMG
M<K;/,LH1"LD8VJ<'<=VWONK/OGETOQYJ5_=:C>Z)8ZA8VHLY%TY9EV*I#0G*
M-L8$YV\9S[5ZO10!X[<:5_PC\WA"[M=4U*'1;6SN84OVL-[PO(X8%XV3Y 5R
MH.T8  XS4M[IUO#X<AU:SN;_ %>Q'B2'4M19[(Q[D"A798PHW*#L8X!S@^AK
MUVB@#R]+G2]=\>ZUJ$=C>-I$_AQH)[A;1T-S^\.[8,;G.TX&!GC SBM+P'J=
MT^ISZ/;WKZMH=I9Q_9]0EM&@DC;.T0,< .0H!R ".]=]10!R-_#*?BQHLPC<
MQ+I-TI<*=H)DBP,UC:'H]S)X5\>1V5OY.I7VHZBL4A7:SL<B,Y/;G@^]>CT4
M >2->V>N^'/"7A_2+&ZCU6QN[-Y86M'C-B(B#*SL5 ' 8=?FW=\U<?3 ^D?%
M.1K+=-</.J,8OFD46J%0..0&)Q[UZ?10!YT-.^S7WPS^SVAB6!)%?9'@1@VC
M9!QTRV/QK4^(^Z/1])O?+D>"RUFSN;@QH7*1+(-S8') KL:* .'46^K?%72=
M4B@,UK_84SP3/"0%8S1@$;AD$J3[X)KCKS3K^'37N(ENK>RL?&%S<3&&V\UH
MHCN"RB,@[E5F!X!ZY[5[310!Q7@N&QN=;U;6+;6[O5)[B*&*:26S\B,[=^W&
M$4,P!(.,X&,]J9JUW'I'Q7TV^O5F2UN=)DLXI4A=U,QF1@AV@X)'K7<44 <1
MX-M#9W/C2]6QS=2:S,4RNUIE6-"HR>V2V.W)KD++5-0UW6O!<\]Q-)<17VZY
ML8M+:"+3R89 4+D9R.F"><9]*]FHH \I?2L_#WXDYL29[B_U!A^Z^:7 RA'&
M3STIWB.^_L6[35-)O;E/$+:?!$^G2V+S1:@HR50$#ALLPR&X[BO5** /*_%^
MN:E-=^(-(G>33D:Q46UO!IQN)-0+Q'<-^",*?D]L9)Q2:?<KX>UKPMK&M0W"
M:>WAF*TCG\AY!!<95F#!02I9<#/?:17JM% 'G>JZK9VOBWPEKQM;JVTIK:]B
MW&S<%'<QE=R!<KNVL1D<UD>(=,O[N+Q\(+*>X0ZG8S/ B$FXA2.%I%4?Q<*>
M!UQBO6Z* //?[0M/%7Q \-7NA1SR0:;'<M>7+6SQ*B/'M6++ 9);!V]MM8*:
M6T7P+*QV++=G41,56+$A87X^;IG.T=?3VKV"B@"A!JUO<:S>:6D<XGM(XY)'
M:(B,A\XVMT)XYJ_110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5'//%:V\M
MQ,X2*)"[L>BJ!DG\JDK+\2V4VI>%=8L;<9GN;*:&,?[3(0/U- &5H.N^(=>^
MR:DFC6=MHET-\9FNV^T^41E7*!-HSP=N[.#UK=U2>^M]/DDTZS2\N\@1PO,(
ME.2 26P< #G@$\<"O(=#?2V/@]/#4^H#Q"EQ FJ0-/,QCA5")UF5SM4 C &!
MSC;7H]_XGT.;2=4-Q>74%K:W#6%U/$DJ-%)@9(91D 9'SC@>M $7A[Q)J-[X
MAU'0-9T^WMK^SACN ]I.98I(WR!RRJ005/!%;.M:O::!HMWJM^Y2UM8S)(0,
MD@=@/4G@>YK@? ;6J>/-73P]>3ZEH,]FDUQ>W!,K?:@V @F8;G&S)P2<>V<5
MTGQ'TF\USP!JMC81^;=%$ECB_P">AC=7V_CMQ^- #=+UKQ;=S6EQ>>&;6WT^
MY(RJW^ZXMU/1G0H%/N Q(]ZUI/$V@PZL-*EUK3TU D*+5KE!)D]!MSG/M63I
M7Q$\/:Q+:VMK/.U_.0K6?V:3S86[B08^4#G)/'%>=+=:8OPKU#PM=P%_%TLD
MR-9^23<2W32L5E!QR.5;?G  ZT >NZIXCT31)8XM5U>QL9)!E%N;A8RP]0">
ME-D\3Z!%:)=R:WIRVSQ&9)3<IM9 P4L#GD!B!GU(%>6:_>7%MXK\2Z=*]L#>
M:9:VMS/<6<]SL'EMEU\I& 'S'Y7*Y(SG%;]G8Z7=^.O"!MS%J%C;Z#,;:X90
MP8AHE#_[V"?S- '>1:OILVE?VI%J%J^G[2_VI9E,6T=3NSC%5[?Q/H-WILVH
MV^LV$ME <37"7"%(S_M-G _&O*M1LKA/#>K+;*8;"T\9M-<A;<RK';C:2QC'
MWD#E6(]C6U8W&@&7Q!XAO/$-OK=N=-6WO(;6S\N.1-QV@X)#.=Q4#.>10!Z2
M;VT%Y'9FYA^TR1F5(=XWL@(!8#J1DCGWK'\3>)#H(L;:ULFO]4U&8PV=HKA
MY W,S,<[54<DX/:N-^&-G>:'K-SIOB&.4:O/90R64LK[\6:C @!P/FC8G=ZY
M!K7\;L^D>*?#'B>6&673=/:Y@O&BC+F%9D4"3:.=H*X)'8T ;VCW^OM+/'K^
MEV=HB)YB7-K=^;&WJI#*K*1USC'O5C3/$FAZU/+!I>L6%[+$,NEO<+(RCU(!
MZ>]<;XP\167B[P+K=IX;DGU%HXHWF-M$^UHQ(I= V "Q0-\HYJ-M1T7Q'XU\
M)OX5\N4V#2O=2V\158+<Q%1&_ P2Q7"]1CH* .V7Q+H3W!MTUFP:81O*8Q<(
M2$0D.V,] 00?3!]*+;Q)H=[J/]G6NL6$][MW_9X[A&?;C.=H.>G-<)X9TVUM
M_A?XDNEM(TNII-4:24I\[8>51SUZ "L;3KS1M4T7X?Z5H, &KVEW:W%Q&EN4
M>"-4S,[G' 8'KGYMP(S0!ZG<^)]!L]473+G6M/AOW("VTERBR$GH-I.>>U2:
MCK^C:0Q74M5LK-@JL1/.J'!) .">A((_ UY.+W2+3P%XD\.:M!O\3W4]X&M3
M 6FNIG=C#(G'S#!3##@8]JZ33M($OQ,L!J]O'<W5KX8A5GE7>!+YK*Y&>,GG
MGT)]: .PN?$^@V>IIIMSK6GPWSD!;>2Y19"3T&TG//;UJA/XYT&V\7_\(W/?
MVT5YY(DW/.@&\L%$6"<[SD$#'0UYKX_UV2^TKQ=IK2V&GRPS,D>G+8-)<W84
M*PG+@C /4,%. O)KKK^ZL=+^+EA<ZELACO-'%O!+(G$D_G@[0<?>P10!U%CK
M(-MJ=SJ5SIT-O9W<D7FQ7(941<8\PG 1^>5[<5/IWB#1M7M9;G3=5LKN"'_6
MR03JZIW^8@\?C7E5W$4L[VZNH))=*M?&TD]^HC+CR0N [*.JARI/7I[5KFYL
MM=\9:MJV@;9M.C\/RV]U=0H1'+,6RB@XPS*H;D9P"!0!W=KXET*]U!+"UUFP
MGO'C$BP17",[*1D$ ')&.?IS6A//%;023SRI%#&I9Y)&"JH'4DGH*\J@TRVL
M_ WPSEMK..&87UB[O''ALO$WF$GKR3S7=^-+;3;SPAJ%MJ]U):V,B*LD\:EC
M'\PVMC!X#8SD8QG/&: +MAK^CZI92WMAJME<VL.?-FAG5DCP,G<0<#CGFC2]
M>TC7%D;2M4L[X1'$AMIEDV^F<'BO*]5U+5?$/@K7+>-[;4K:QO+,OJ=C:$+>
MP!E:0>7DAB@'S!3@CCBK9MX]>_MJ_P!%\40:KJW]A7%K%%8V?DC#8*[F!(W
M\ '!&3[T >BVGB;0;^>X@M-:T^>6V4M.D5RC&-1U+ '@#N:MG4[ 06LYO;<0
MWC*ML_FC;,6&5"'^(D D8ZUPFB:IX:UCPI%I&BPQMJD6DO"(5MB)+8^7M9'.
M/D); P3R?6L"V\0:?J>A?#K2;1I9+VQOK-;R/R6'V9DB9&5R1A3NZ#O@F@#U
M)O$&CB^6P&JV/VYW:)+<W"[V=1DKC.<@$9%<^WQ"TS3+/0O[;O=-CN=4)!:V
MO%>&-<,?,W,1E/EVY]3BH/ VFVO]L^,;][2/[6VN2()F3YM@BC( /IEF_,UR
M%@UOI_@'X;:EJ"+'9VMW_I,TB9$:M'* 6XX&XC\Z /4[35'NM<GMDEL)+-;6
M*>)HKC=*=Y;YBO0(0.&SSS3M/\1Z)JUW+::=J]C=W$7,D4%PKLHZ9(!]:X#7
MX;O4]:\9#1@[RW/AFW%L8P07R9L!?<CI]:C\,?V9JNL>&VB\3VTMQIJ,8;"W
MTWR9(P8BK1R8)*@#L0,D#O0!Z):^(=&OM3ETVTU:RGOH<^9;QSJTB8ZY4'/'
M?TJU>7]GIZ(][=P6R.VQ&FD"!FP6P">^%)^@->;^#-2M[#Q'8Z!HE_;ZSH[K
M<2@_9REQIO.[$C=PQ)7Y@&SZUM_$2SAOG\)V]Q L\+:_!OC==RD>5+U'I0!M
M?\)EX9_L\7__  D&E_8S)Y0G^UIL+_W<YZ]\5;U'7=(TFTCN]1U.SM+>3_5R
MSSJBOW^4D\_A7':;HFG2_$OQD\NG0-FRM%!:(8PZ2!P/KM7/T%<_I.O3:3X,
M\"02R65@DUBX;5;^V,HM]H7$:\C#,/4XPO0T >IPZSI=REF\&HVDJWN[[*4F
M4B? R=F#\V #G'I5A+RVDO);-+B)KF)5>2$."Z*V=I(Z@'!Q]*\>TVRN9?AQ
MJ>JVBF2\T?7I]4M,0&'S%1]S (>5#(7^7WKM?A]G4[34_%,BL'URZ,T.\886
MR?NX01_N@M_P.@"Q?^,(-(\;3Z9J=W96>F1Z7'=B>=PA\QI73&XG&,*.,9ZU
MNOK&F1Z4-4?4;1=/*AQ=&91%M/0[LXQ7!ZY?Z-I'QB%_KB)' NA1I%=2PEHX
MG,TO!;!"D@$ GKT[\\M]ENH?#VD:FF^QT >([J\C,EH9%M[=]_DR-%QA-Q)&
M>FX&@#V;3=5T_6;3[5IE];WEODKYEO*'7(ZC([TV_P!:TO2L_P!H:C:6F(S*
M?/F5/D! +<GIEE&?4CUKE_ T-E+JNMZM:>((=7>\\D3M;6WE1*R!@"""0S$'
MG![#-9WBZ^TC3?BIX>O-:1?LT6G7)65XBZ0OOC =N#M'4;CT)% '<1:WI4]A
M!?1:E:/:3NL<,ZS*4D=C@*#G!)/&/6IWO[.*Y:VDNH$G2(SM$T@#",'&\CKM
MSQGI7CTB@^&]8URSMY5T/_A*;?4(=D1&8$>+S)57&=I(8].Q-;3ZS9>(/'FJ
MWFF.]Q:+X9DB6X$9$<C>;D["1\V,CD=^.U '>VWB+1;QIUM=7L9C;Q+--Y=P
MK>6A&0S8/ (YS6%XA\;V4/@W4M9\.ZAI^H2VC1J?+E$J*6D5?FVGT)Q7*3Z/
M%;_ C1?LFG9C\BQN;^*&++S1;D>;('+9Y)'UJUXTU;P[XA^'VOG0O)N6$=LD
MTT$! 9?.7:F[ SCYOE[9[9H ] T_7M(U6YGM].U2SNY[<XFC@G5VC^H!XJ*S
M\3Z#J.HOI]EK6GW-XF=T$-RCN,=> <\5S.I6<&E_$GPZVGV*1JNE7L9C@0*&
M53$43CC&<X^M<=9:T^MZKX)F%SIZRQZB"^FV.GM$=/!BD!C>0DX/8J0N<9 P
M* /6D\0Z-)K!TA-6LFU(9S:"=3*,#)^7.>G-(/$>AG5_[)&KV)U'./LOVA?-
MSZ;<YS[5P.DZE;Z3XSBTS0[^WU6UO]1GEN+*2V(N=/D8,SR;^/DW9&&&?F !
M-<YX?M8;CP]9>'M9\30V&IQ7PDEL3IV;H7 FW;P^<MN.#O Q@T >MZUXFTG1
M]]M<:I8PZ@T+/!;33JKR$ XPN<G)%.\+:I/K?A/2-5N5C6>\LXIY%C!"AF4$
MX!)XY]:\\N+S1].U+QUI_B&W\W4M1GWVL3VYD>Z@,*K$L?!W;6##CH>3BNW^
M'X*_#KPV&!!&FV^0?^N8H O77B?0;+4TTVZUK3X+YR MO)<HLA)Z?*3GGM4F
MHZ_H^CDC4M5LK,A0Y%Q.J':3@'D]"01^%>4B^T>S\$^*/#VL0;_$MU<WF;5H
M"TUW([-Y+IQ\PP4P1TQVQ70:;H_F?$C2EUBW2YNK3PO$KO*N\"7S-KD9XSUY
M]SZT >ARSQ00//-*D<**7>1V 55')))Z"J-AX@T;5+.:\L-5LKFV@SYLT4ZL
MD>!GYB#@<<\U4\96VFWGA#4K;5[B2VL)8PDLT:DF/)&&P > <9XQCKQFO-]0
MU6_USPQJ<$GV?6-,T[4+%[C4-/MB@OK8.&E4H,AB@ SM)&#T% 'J>E>(=&US
MS?[)U6ROC%_K!;3K)M^N#Q6/X;\70W?@/3_$.O7=E8B=3YCLXCC!W, !N/MZ
MUB6U]I?B+XEZ)?\ AIHY[>RLKA-0NK="(]C!/*B+8P3N!.WM@US.C20:;H'P
MXU+5TVZ/:_;!/)(A,<,S9$3..W1P">A- 'HWAWQ-_;WB'7[6&6UGL+$V_P!E
MGMSN\Q9(MY)8$@\],8INM>*5T7Q=IUA>3VEMILUE<7$\\[;-C(T87YB0 /G/
MZ5B_#Z2PN/%WC*ZTNW,-C//;/$?),2R?NCN=00."V3GOG/>H_&-UI=A\3/#5
M]K$0-G!971\YX2Z0.6B"NW!VCG&3T)% ':V^NZ1=P6D]OJ=G+%>.4MG2=2)F
M )*J<\G / ]#5D7ELUZUD+B(W21B5H0XWA"2 Q7K@D$9]J\ECTR35?#?BO6M
M$A*P1:PNJZ/\A42/"B;V4?W7(=??)KJ_A[+_ &X-6\7LC*-8N +8.,%;:(;(
M^.V3O;_@5 &GJGBVWTCQ.NF7HCALQIDNH2W;OC8$=5QC'^U4FC>(S=Z-'JFK
MP1:1%=2D6D=S,%=HR,H6SC:Y )V\X'XUQOCKPY+XE^(=E:02^3<1Z-+/;R,,
MQ^:EQ$R!UZ,I(Y!SZ]0*-=U6+QAH'AM;VP\NXC\16UMJ-C*N1%(N[<I]5/4'
MH010!Z%I>MZ5K<,DVE:E:7T<;;7:VF60*?0X/%0V/B;0=3OWL;#6=/NKN/.Z
M"&Y1W&.O .>*X3Q'IUV?$WC.UT6$QW-UX9BV+"NWS)-TRC&/XMO _"JSZAH>
MNIX*T_PS&IU"QOK>62.*$J]G BGSA(<#;D?+@]21UH ]+&LZ6;".^&HVGV.5
MQ''/YR[&8MM"ALX)W<8]>*=<ZKIUE)+'=7]M \4)N)%DE52D0.-YR>%SQGI7
MCNJ:#=ZIK6J^ 8DE2""YNM:MI%RJ@/%F)0?:>1CC_9J<74_B?X>^-O%MQ!)'
M)>:<MG#&ZD,J119? ]#*\G_?- 'JUGK^CZAJ$]A9:K97%Y!S+!%.K.G;D Y%
M5?%NO-X9\.3ZJEN+@Q21)Y9?;G?(J=<'INS^%<U=Z;:Z?XN^'PLK2.W5$NHC
MY2!<)]G)P<=L@'ZU>^*:L_P^O552Q\^UX S_ ,O$= &_J'B/1-),@U'5[&T:
M/;O$]PJ%=V=N03WVMCZ'TI][KVD:;817]]JEG;V<N/+GEG54?(R-I)P<CGBN
M7LM.M;KXN>()[FTBE9-,M$C>2,-@,9=P&?7 S7(Z6+"S\"^$[RXUR+1M2L&O
M/L3W<!D@=?-961AQVV@8(;TSS0!Z>VKF75M*BLY].FL;V&67?]I'F.%"E3$H
MX=?FY.>,BL;Q9XZL-'TV[73-2TVXU:VF@C>T:8.RAYDC;*@@Y 8_0XS6)87U
MYK'B+P'J$]@+&XFTZ_9H50A4.(L$ \@'J ><&N/DN]&_X558:%):EO$MI>PF
MYA-N3+!,+E?,D=L<!@2-V>=P% 'M&I>(M$T:>*'4]7L;*67_ %:7%PL9;MD
MGI3]0US2=*7=J.IV=H#&909YE3* @%N3TRRC/N/6O,=2<6'CGQ5'K&N6NDQZ
MAY0@:\L1,MS!Y07:C$@<-N!7U.>]:%EH=DGB[P/:2$ZC;6>B3F">XB(+8,05
MBIZ'!Z'I0!W4OB70H+VVLIM9L([JZ"M!"UP@:0-]TJ,\Y[>M7;N\M;"V:YO+
MB*W@4@-)*X5020!R>.20/QKS77-1M?#WC&[GT6^MKN^O;FUBO-"GMB9)"-J*
M\+8!7:N#T*\'H:[OQ/HR>(?"^IZ0^!]KMWC4G^%B/E/X'!_"@"^;VU6^6Q-S
M"+MHS*L!<;R@."VWKC) S69<:XAU+3X;*[TR6WEGFAN"]T ZM&I)5%'WF!'S
M#C !KR&'7;]U@^)ES;7!DTUH=,G@92"R>21*<?\ 7>0?]\UU-CH\VC7'PVM)
MU)N?.NIKIB/^6TEO([Y_X$QH W8/B)H^K:1KTVD7MK)>Z8ER8X3,KF41+D2
M*<F,DCFM+P[XLTS6K2QA.IV#ZM+:1SS6D4R[T+(&/R9) &:XK3KBQMM*^(>C
MMLBU3S]0N%@V8<PM&-K#C[IR*D&F6MAHWPQDL[.."1;J ,T<84@/:R%\D>IY
M/J: .\N?$^@V>IIIESK6GPW[D!;:2Y19"3T&TG//:KXO+8WILA<1?:A&)3!O
M&\(3C=MZXR",UXX+W2+3P'XE\.:M!O\ $]U<7@:U: M-=3.[&&1./F&"F&'
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
M"F1@.%!/ STR: )J*Y3P?K^L:O?Z]::S;V<$VG721*EJS, K1J^"Q^\1NQD
M?2NKH **YZ[\;^'K'438W-^R2K*('?[/(8DD)P%:4+L!R>A-.U;QKX?T2]EL
MK^_V7<2+(T"0R2/M;.&"JI)'RG)'3OC(H WZ*Q;OQ;H5EHMKJ\VH(;*[*BV>
M-6D,Q;D!%4%F/7@#/!K*\)>*?^$D\2^)$M[Q;C3;0VPM0(]I0M&2X.0&SN'(
M;D8QQ0!U]%,FFCMX))I6"QQJ79CV &2:X[PYK/B+Q$;/51=:3::?=8FCTYH6
M>X-N?NLS[P Q&#C:0,T =/K&G#6-&O--:XFMTNH6A:6$@.H88.,@C.#4UC9P
M:=86]E;)LM[>)8HU]%48 _(4S4C?C3YO[+6V-[@"+[26$8.1DMMYX&3@=>F1
MUKE]"UW7H_&UUX8UUK"Y=;!;^&ZLHFB 4N4*,K,W.>0<]!0!V5%%9@\0Z4;'
M4[T78^SZ8\D=X^QOW31KN<8QDX!!XS0!I]*S)M#MYO$MKKC22"XM[62U5 1L
M*NRL2>,Y^0=^]5-0\:>']+>".[U#;+<0"XAB2%W>6,]"JJI)^@Y[T]O%^@+X
M=37SJ47]F2$*DP5B6;.W:%QN+9XVXSGM0!MT5Q6B>,X=;\;ZG;VM^KZ3:Z9%
M,5DB\IHI3)('W[@&4[0O#=N>]:^E^,] UF^2SL;XO-*A>$/!)&LRCJ8V90'
M_P!DF@#>HK"T[QEH&KZF=.T^_P#M%T-X94B?"E&*L&;;@'(/!.2.1QS6[0 4
M5ST'C?P]<:I%IT=^WGS2&&)FMY%BD<9RJR%=C'@\ UT- !16'J_B_0M#OOL.
MH7WEWAB69;=(7DD9"6 *JJDMRC=.F.:;-XU\.0:)::S+JL*Z==N8X)\-AF 8
ME>F0<(W!QR,=>* -ZBL";QKH,%A9WCW<NR]W?9XEM96FDVG#$1!=^!W..*U-
M,U2RUG3XK_3KA+BUESMD7V.""#R""""#R* +=%8VL>*M'T*XCM[^Z<7#H9!#
M#!),X0'!<K&K$+[GBI8?$FCW%QIT$-_&[ZE$TUF5!*S*H!;:V,9 .<9S[4 :
ME'2N;D\2VU[=Z,VF:K;"VNKR6V(>!V-P45LK&W &"I.[D''!J6'QIH-Q/<0P
MW<LA@60LZ6LK1MY>=X1PNUR,'A23Q0!OT5P-E\1;?7? U[J]K<1Z7=6ZL7>Z
MMI98H0)2@)(5=^0.B]">>E=!JOC/0-#O7L=0O]EXD:RF".&21RK;L,%522/E
M;.,X[XR* -ZBL6?Q;H=OI%GJC7ZR6EZ0+5H8WE:8D$X5%!8G .0!QCFI-"\2
MZ5XEAFFTJX>>.%_+D+021[6[CYU'(QSZ4 7-2LO[1TNZL?/E@^T0M%YL6 Z;
MAC*YR,C-)I>G6^D:5::;:+MM[6%88P>NU1@9]^*35-5LM%TZ74-1G$%K$5#R
M%20N6"C. 3U(IC:SIR:Y'HK72#49(#<I!@Y,8.TMGIU[=?RH OT5SUUXX\-V
M5LMS<:HB0O/+;(QC<AY(\AU7 Y(((&.IX&35<^++4:D]P-0C;3AI:WHM?L<O
MG\R%?,/'W>,;=NX'F@#J:*\[_P"%M:=_PK]?$HM)3<8B#VGERA0[GH)-F"
M3D<<8ZD5U$WC#0X-*M]2ENY%@N9#' IMI?-E89R%BV[R>#T'O0!N45ACQCX?
M.B'6#J4:6"S"W>6167RY"P7:ZD90Y(SN QG)XIVB^+-$\07,]MIM[YL\"AWC
M>)XVV'HP#@;E/J,B@#:HHKF+GXB>%;2XE@FU95>&9H)B(9"L+ABA$C!<(-P(
MRQ /:@#IZ*Y8Z[/#\0;^PN+I$TJWT:.](8* C&20,Y;&<;5'?'%7-*\8:'K6
MH?8+*[D-T8S*L<UM+"9$!P63>HW#D<C- &[17,1_$/PK-=0V\>K(SS2^0K"&
M38),E0C/MVJQ(X#$$\>HKIZ "BBL"V\:>'[S5QIEOJ'F7)D:%2(9/+:1<Y02
M;=A88/ .>* -^BN;7Q[X9;45L1J8\QIOLZR>3)Y)ESC8)=NS=GC&[K3]5\<>
M'=%O9[.^U#9=0*K2PI!)(ZJ1G=A5)VXZGH.^* .AHKC]<^(>DZ->:%&"US;Z
MJ=XGACD<+%L9@Z[5.[)4# YYSTK0O/&_AZPOH[*YU K=R+&ZP""1G*R9VG:%
MSCY3D]N^,B@#H**YZ?QOX>M]3_L^:_9)O/%N7-O)Y0ESC89=NP-GC&[K4FK^
M,=!T*]%GJ%\4N/+\UDCADE,:?WGV*=B^[8% &[17(V?Q TR\\:7?AU5DS$D7
ME3K%(PD=BV1]S  VC#$X.>.E==0 45@:OXU\/Z'>O9W]\RSQH))4B@DE\E3T
M9RBD(/\ >Q3]3\8:!H]O9SWNI1I%>QF2U9%:3SE&W[FT'<?F7 ')SQ0!N45#
M:745[9P7=NQ:&>-9(R5*DJ1D<'!''8UG7VH20>)M(L1?6\274<[-;/"S23;
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
MPI/S8!)(] >M>7VVA2:A?:_!X0T[4=)T:^T:>&6*[A>WA:[?A#'&^"IQG)
MKUZB@#RSPU807L_AZVOY/%WVS36206MU9".WMY$C*\R"( K@D##'.16AX*OY
M_#UDOAF^T756U!+^;=/':,T$J/,SB;S?NXPPSD[N,8S7H=% 'F]@MU;6_CO1
M9=-U 7-W<7EW;N+5S%+&\2A=L@&TL3QMSGCI5;2TN_#.K^'M8U#2]0ELV\-6
M^GN;>U>:2UF4ABKHH+ '(&<=5P:]1HH \EFT34KS0;^\.DW4<>J>*+:]CLGA
M)D2 21*SNG\.=I8@]!UKI-4L7;XB75W/IUS<Z>WAR6"7RHB1*?-SY8/0L5S@
M9SS7;44 <#X&EU"'6)M-M'U:?PW!9KY#ZK9M!+!*&P(E9E5G4+GD@XP!DUWQ
MY&*** /"H/#,=OX/C\,V_A6YB\707@6/4UL2%7;-N$_VG&-NSMG/;%>P_P!M
M 7NJ6[Z=J*KI\22F;[.62X#*6Q%C)=AC! &<D"M2B@#SWP7J;OXQ\2&32=9M
MH]3NTFMI;G39HD*K JG<S* O*D<]:]"HHH \:\:2^(]9T[Q#IUQ'KYN5NREG
M866G@VTENKJ5D:4H2Q(!) <'/ %=SIMC.GQ1UZ^DM9%@DTZTCBG:,[6(:4LJ
MMT./ER![5UE% 'D&D6&H:'I/@?5;K2;][?3)[]+JWBMF>6$2LXCD\L#<0 .P
MZ-FNG\%_:;GQ?XLU232KRPMKU[5K?[5"8VE"QE2V/7(Z'D9&<'BNXHH JZG:
M&_TF\LPVTW$#Q!CVW*1G]:\>TK0XGTOPOI=AX4NM.\2:?=VYO;XV)B5%C/[U
MS/C$@< X )SN]J]KHH YW4O%$]GI>MW-OH&K7,^FN(XX%MSF[8@8,6,EERW)
MQQ@\<5A> ;A6O;JXO[+6#KVH@2WEW=:9-!"H486*,NH 50< =3R37?T4 %>3
M:A)J&F:3X]T :%JMU>:I/=3V;6]JSQ21RPJ,^9]T%2#E<Y/  )->LT4 <)HV
MFW4?CO2+J:RF6*+PRL!E>(A4E\Q,IG'#8SQUKGCI>I6.GPZ@VE7DL&G^+[J]
MDMHX&+M S2!9$3JP&\,,=1R*]<HH \IO[+4?%FK^+YK#2KZRCO\ 0$M;6:[@
M,/VAPTGK@C.0,-@XP<8(JSX;L[;4-4T(W4OBYKS3\NL%]9"*"V?RBI!<1*",
M$@88YXKTVB@#DOAU83:?X:GCN+1[::34;R5EDC*,P,[[6(/7*[<'TQ76T44
M>-32^(]<GT$ZE'K[ZC!KD$MW9#3Q'9VL:RX#*^S+C;@[@[<$DX%>RT44 ><Z
MKJ\>B_&.2YFT^]NHCH$2-)9VYG:+]_*>57+8.,9 /;-9=EH.HOIV@3W&E7$:
MW/BV34S:O%EK6%UE*EP/NX.T\]"P[UZ8ND6:Z\^M!&^VO;+:%]QQY:L6 QTZ
ML>:O4 >=>+K&[M?B!::V\VM0:<^F&S,^DP"9XI!)O^==CG:P(Y ZJ,UH:'X9
MBFT'&GZOXDT]9KN:ZDDF6.&>5W/S%E:/@$C(&T=37:T4 >7ZIIUYHOCN]OKJ
M^\1I97EE;10WFF6RW#,T88,LH$3D$Y# @ ')J+5_"[ZEX3T'PIH-OJ=L3))>
M+J=]$R260#,QR0% =V?:%_NDY'%>JT4 >:64%[=0^ %_L.YL&TV\D@NH! P2
M#9;R)N!Q]PG&&Z'<.<T_PT]U8^*[6PT&'6H]#E,\E]9ZE9-''9,<LOE2,!G+
MG[H+#!)XKTBB@#Q\6]_)\&M;\-#2=2&J6IF#1FTDQ)NN69?+;&'^4Y^7-=I9
M6,Z_%35[Y[600/I5M%'<&,[2PDE+*&Z9^Z2/I7644 >(QQ:MI.F>"8+:TNH=
M3@NM3D2);02RJA=QS$S)\A5ASN&,KCK7??#Z6T%AJ5LDEXVI)>O-J*WEN(9!
M-( ^=@) 4C&,$\=ZV=9\-Z?KDUM<7/VB*ZM=P@N;6X>&1 V-P#*1D' R#QQ4
MNC:#8:##-'91R;IY/-GFFE:625\ ;F=B2> !UXH =KVE1:[H&H:5-CR[RW>$
MD]MP(!_ \_A7C\%OXH73XO',VB7[:]ITT-D+,PL998%@,<A"XR0TLC/]%S7N
M%% 'G$'A>?3)OAS9&UDG6PDGDO)1&65)6@<EV/09D)P3WQ6T]C=/\4[BZ%O+
M]F;05A$^P[-_GL=N[IG!SCTKK:* /)(+?4+WX%3Z!'I.HIJFGVT44MO+:NA=
MDD#$1DC$G"D_+GJ/6M#Q2UQJNK^&_$ULFO6^FP)<PS-:V9%U 7VX?RG1FVG8
M02%S@@]#7I=% 'E5_H<5SX1O9=-@UR]DOM:LYKC^TK4I)*%DB#.(]BD)M')*
MC[IKJI+.X_X6S;7PMI?LO]ARPM.$.S?YZ$*6Z9QDX^M=710 5XQ;ZFY\,^.-
M!@T'4;N\U'5-1AMW@M2\4K.Y7+..$V]3NQP!C->SU1TS2+/1X[E+-&1;FYDN
MI<L3F20Y8\].>U '#C3]<T?7[^>QLWNKJV\*P002,A\N:X1I/EW="<X.,YY'
MK6?H@U34_'7AG4)G\0W:P6UR+N74-/%M%!(\:_(@$:GJ".2PX&"3FO5J* /*
M/[%OQ\#YK!=,N1?M?-)]G$#>:?\ 3]P;;C/W0#GTYZ5Z':Z[;W?B+4-%BBF\
M^QBBDFE('E_O,X4'.=V!G&.A%:E5[6PM;*2YDMX5C>YE\Z9AU=\ 9)^@ ^@H
M FD4O&RJVTD$ ^E>>>![VXTWPSI_A*YT;5;?4[=7MY9A:-Y"'+'SA*?E(/7@
MDY/2O1:* /'/*OKKX6V_@%=!U*+6@([5V:T86\960$S^=C85X+#!R3QBNVT6
MPFC^(OBR[FM)%AGALDBF>,A9 $?<%;H<'&<>U=;10!Y'IUGJ&D>#/AY>76EZ
M@1I=PQNX8K9WFB5HY4!,8&[ +#MWKK-(M)9/B9K.J/931PS:7:)#-+"5_BD+
M("1U'RY';C-=A10!XUXJE\1ZW9:K8W4>OF\34E$&GVNGC[(;=)E*R&782^5&
M>'SG^' -=*E[-X5\<^);B]TC5+N+53;S6DUE:-.'V1!#&2OW2""1NP,'.:]
MHH X>VEGT[XH7D]QIM^(-4T^UC@ECMVDC1T:3<KLH(0C<.IQ7<444 >=VE]-
MX3U[Q3'J&BZI>'4;S[7:36EF\ZW"&)5$1900I4J1\V!@YZ53T#PQJ.E7/PZM
MKVS=WT^UO3<.$WI;NZJ54MT!&2H]<'%>H44 %<IK5I<R_$;PI=1V\KV\%O?"
M654)2,LL6T,>@S@XSUP:ZNB@#R@:+J"_ \V TRY%^;[S/LX@;S?^/[=NVXS]
MWG/ISTJ_K;W6G>+YKGPU#K4>JW-U MW:O9,]E=H-JM(9"-J$)_$&!RH!!KTB
MB@#BM(>;3?B;XCAN+&]$>J&VEM;A+=VA(2':VZ0#:I!7&"1U'K63I/AZ_D^
M<NBI8R0:C-I]PHMY$\MS(6<@$'&">.OK7I=% 'FL.HW6O^+O!4T&AZO;V]A]
MH^U37=H\2Q.UNRA?F&3R,;NF2 "2:G\"W\^@:7;>%[[1=5.HPW<JO,EHQ@=6
ME9Q-YOW<88'KG/&*]#HH \MACO$\'>/?#[:7J(OI&U.>'_17,<R2;BFQ\88G
M<,*#G@\5;B:Y\->+;/6+[3-0GLKC0H+,2VMJ\[V\J,69&1 6 ;<.<=1BO1Z*
M /)O[#U*?11=2:5<QIJ/B^#45M'B)>*W+H"TBC.W.TL<],\UUR6=P/BU->_9
MI1:MH:1>?L.PN)V.W=TS@YQUP:ZNB@ KR^WCO(_#/C_07TS4!>S2:G<P'[*Y
MCF24$IL?&UF.[[H.>#QQ7J%% '!76F72_P#"NQ%8S 6<R^?LB/[A?LKJ=W'R
MC.!SWP*Y?7)?$>MP&"^CU]K^+6(F-A!IX%G' EPNU_-V9?Y0#D/G.<@ &O9:
M* .*MGFTOXJ:LT]C>M!JEI:+;W$5N[Q!H_,#!W PF-PZXKM:** /-[M[K3O&
MF[PW#K4=Q>:BG]I6<]DQLY8^%>=92,(=H!RK<D %:PO%DOB/6K'6;"ZCU\W:
MZ@!;Z?::>/LC6Z3*5D,NPEB5&>'SGC;@&O9:* .*E>;3/BS)<S6-[):ZAID%
MM#<06[R1K(LLA(=E!"<,#DX&*P8-,BA\,S#5[37+65/$%Y=6MUI]J[RV[&1]
MLFT*2596(^Z00:]3HH \T0>(M6L?!MSJEG<R7$&NL[R&V,;^0(YE265!_JR0
M5R.,$CUJ'Q+X>U;5I/B)!9VLV^\AL3;,5VK/Y:Y=58\$\;?J>:]1HH \YT:W
ML=2URTOYI/%UY<V5O-MBU*Q$,<8=0&0GRD#,>, $CBG>"GO+/7DTO2AK#>&H
M[1B8]5LVA:SD##9%&[*"XP6X^;&!S7HE% !7FMDMU!IOCW0Y--U 7=S/?75N
MPM7,4T<D8V;7 VEB3C:#G@\5Z510!Y[/I5VNB_#F.*PF#V=U;FX58CF!1;.&
MW#'RC) .>]<XFBM;0:]H6N2^+%6\OKF00Z=9":"ZBE<L&#B)L'!P=S#!':O9
M:* &0QB&&.)2Q"*%!8Y)P.]/HHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ JAK>L6N@:+=ZK>[_LUJGF2;!EL>PJ_7-_$#3+S6? .M:=I\)G
MN[BW*11A@-QR.,D@4 ,'CK3O[)_M%[/4XXI)U@M$DM2)+QF&5\I>I!&3SC@$
MG%26_C72GL=4N;Q;G3FTM!)>07D>V2)2"5; )# X.,$Y(QUK/\?>'[O5[71K
MJSMYKIM-O!/):V]R;>26,HR-L<,N&&X$<C.",\UB7?A$ZQX6\0QZ;H>IZ=J%
MW#"L<FKWQG>X,;^8$YEDVKD8Y(^]0!TNG>/-/O\ 5['2I-/U6QO+U7>WCO+7
MR]Z*I8MG)&,#IU'&0,U8;QGI2^%)_$9%Q]A@E>)QL&_<LOE' S_>'KTKEI]5
MU/5/B1X->^T*XTJ-%O !<RQL[OY/S8"$C:.,$D$YZ"LN^T;Q0G@?5?!]OX=E
MF=KV6:.^^T1K#)"UQYH(&[=OYQM( [YH [6;Q%;Z9K'B::ZOKJ6#2[*&YEM1
M NV%2KDE&ZL6VG(/3 HB\>Z7+I$NJ-:ZC%:!XX[9Y+4@WC.<((5ZOD^P]>G-
M8^N^'=5N[KQ^\%H774](AM[,[U'FR+'*"O7CEEZXZU9\7^&K[5?"6B16UO)+
M<Z9<V]R]K%<&!Y0B%619 1M;#$@Y'(ZT :</C;3VM-5EN;6^LI]+MC=W-K<Q
M!9?*PQ#+@E6!VL.#U&#BJ(^)NBF6W1K/5D6\0O8NUDV+TC'RQ=R>1U &.<XY
MK*_X1X7F@>)GL?#FLVFH76DRV<,FJ:AY\DVY6Q&H,K[1N(Y)'6M6;1=0;5O
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
MVT+]X(G.W'K737%UK7BGPYK.FR^';G2VGTZ6%7NYXCNF9"NU0C-E>?O''TH
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
M6 TL79FN+6*12^]AC+XQD8[]NE2>$?BA*? \>K^)D,K'5CID-Q9Q?+<$CY9
M"1QU!(].E2:]X"/B3XNF^U;24NM";1OLYE=EPLV\XP,[@P!X.*YN?P=XS?X9
M'P_)8&XNM"U=)]/+2I_I=NA; !SP1D\''&!0!Z-KWBVTAOM7\.P&X358='EU
M!9%4!%4 J,-G.[..U<]X5\>Q:7\-?#-UK$E]J6JZDKI## AFN+A@S9(!(Z#&
M236=;Z/XMUSQQJ_B#4?#W]G0W?AV:R@B^TI(P<L-JL01ACR?0#&3FL:;X?>(
M8/#7@>[.EW-Q<:/'/%>V%M>B"<+(Q(9)%;J.X!YX'K0!ZUX9\5Z?XJM;B6R2
MX@FM9C!<VMU'Y<L+CLR\_P ZQ_B9JOB;1O"]Q?>'39PB"&2:YN9_F:,+C 1,
M$%CD\G@8]Z/AYHJ:7;ZE<_V!>Z1+=S*SB]OOM,L^!PQ.3MZD8SFD^)JZY>>%
M;G1]%T*34WU&"2&21+A(Q;],$AB-V<GIZ4 9&O>-]7TSX4>'-2MGCDUO64M+
M=)I$&U994W,Y4<=CQTR1QVK.?Q#XI\.Z]KWA?6=;&ILV@S:C97R6ZP21NJL,
M87CJ"<^PJ&_\-^*=<^%>C:>=!-CJ_AZ>UDMX);F-OM?E)M)!!PN<]">U3C0/
M$OBKQ%KGB;4M#;2S_84NF6-G).CR2.P8[B1P!EB.<=10 [P'\5]/;0O#NG:Q
M_:KW=V!;G4YX#Y$D^3\GF$\GH.F/>J)\4^(=3\9Z[IP^(6FZ$EIJ#6UM:7-G
M"S2+QC!;!/I5&W\+^--4\.^$_!]]X<6RMM-NXKN?4?M2,NQ=QVA1R'^<@CGD
M>AS6IX\TK7_%MK?Z#;?#VV@N)[GY-9>XAVA ^1+D#=DJ.1UY/6@#V*O,;KQ)
MXOM?C%H>C7LMG;Z-?FY\NV@4.[QQHQ5W<C(8D X7@=#FNA3X?Z:]]INHW5WJ
M,E[91P+N2[=(W:(  E <<XY]:X_Q*GC&Z^)^D:_:>"[B:TT;[1"F+Z$?:5<,
MH<9/R]<X(H ]=HIL;,\2,Z%&*@E2<[3Z4Z@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBN5^)5_=Z7\.M;O;&XDM[J*WS'+&<,IW 9!_&@#J
MJ*\,\.^(-4T_Q9X,M;#Q==:^NLV^_4K*>59C;'8&)R.5P2W!Y^7G.:V/AMKF
MI6/@&_N;;3;W6KMM;GAC@CE ('!RS.<*HQU]2* /4I]/M+F]M;R:!'N;7?Y$
MA',>X8;'U'%6:\^@^*(72?$DVHZ%<66I: J/=6+3H^X/]W:Z\'\O2DT?XI#4
MO$6E:;=^';_3K;6(V?3KNX9<3[5W'*CE01T/N..: /0J*XG1_!VHV^KV%_J%
MZK>3<76H3I%(Q#7,WRA!D#]VB9 [D\X%3^$I6L_%'BS0LDPVUW'>0 G[JW";
MF4>V]7/XT =?17$7'B77XOB@-#ATIIM.^P+-Q-&IYD"F;GG R1MZG&:PM)\7
MWV@KXNN#HE]?V-EK5S)<W*RHHBC^7(0,<N0 20, #O0!ZI16%J>MZG!Y3:1H
M$VJ1/")C,+B.%,'HHW'); STQR.:YC5?'FISCPA>^']-DGLM7ERRO)&C/^[<
M^5\WW2"N=W3C&>: /1**S8=4F?5X].ETR\B+68N6N-H,"-NVF+>#R_?'IS6E
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 8
MVJ>$M UJ[^UZCI-M<7&W8967#,OH2.H]C6I;6T%G;1VUM#'#!$H2..-0JJ!T
M  Z"I:* "BBB@ HHHH **** "BBB@ HHHH **** (YX(KF!X)XDEAD4J\<BA
ME8'J"#U%28P,"BB@ HHHH **** "BBB@ HHHH **** "BBB@ J"&RM;>YN+F
M&"..:Y96F=1@R$#:"?4@ #\*GHH **** "BBB@ JC'H^G1:S+JZ6D2ZA-$(9
M+@#YF0'(4^W J]10!1U#1].U5[1[^TBN&LYUN+<N,^7(O1A[BKU%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !7.^.]%N_$7@C5M(L?+^U74.R/S&VK
MG<#R?PKHJ* .=\(^%--\-:-8QPZ786VH+:QQ74]O"JM(X4!B6 !.2">:\[/P
MU\3P^!!I4<EK)*-<>_GLQ<M''=VYQ^[9P,C..G]0*]FHH \7LOA?KD.E^-8D
MLM+L/[;M8$M+2VG9HX2N<J25SZ<]R3737?@O59M4^'MPAM]F@1,EYESG)B1?
MEXYY4^E>A44 %<=X34WOC+QAK*?\>\ES#8Q-_>,"8<C_ (&[#_@-=C3(XHX4
MV1(J+DG"C R3DG\Z .7U+2M8A\?V>O:=;6UU;/8_8+A)9S$T0\T/Y@^4[N,\
M<=N:ICPIJ0\)^---S#]HUBYO);7Y^,2H%7<<<<CFNWHH \[U7PEK$^JV<DFG
M6&L62:;%:I;7ETT<=K,N=TFT*0X(QSU^7%,@\'ZYI?A#PA!:Q6ESJ.@W'FR0
M-,8TE4K(A"OM.#\X/([5Z/10!FPRZRVKQ+-;6B:<;,-(RRLTBW&[E1P 4VYY
MX.>U:5%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
M\ ;1G);!(!KT^O+;70M53P;H%LUA.)X/$_VJ6,IRD7VJ1MY]MI!SZ&@#T72
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
M D95B",B@#IZ:Z+(C(PRK#!'J*X#X4W5SJNBRZQ?)JWVNZ=VDFN[C?#)^\?
MB0.0@4 *?E7\:VH]4O6^*-QI)G/V%=&CN5AP,"0S.I;/7H * .BMK:"RM8K6
MVA2&"% D<:#"HH&  .PJ6N>U3Q9'8ZK+IEEI6H:K=P1+/<)9*G[A&SMW%V4;
MC@X49)QTJ"3QS826NE2Z9:7FJ3:I$TUM;VRJ'V)C>S%V4+@D#DYR<4 =117+
M:=XV75= &JV>@:Q)NN6MDMO+B\TLN0Q/S[54%2"6(Y'N,XGBKQ:VI?#S7YK)
M+[2]1T^:*">*0A)H7+QG[R,005;@@\@T >B45#=7,=G9SW4I(CAC:1\>@&3_
M "K@]$LO%'BOP]!XA?Q3=:9<WL?VBTM+:&)K>!&Y17#(6<XP2<CKQ0!Z%17D
M&K>,]3USPGX3+6&I+)J.H>1?_P!F2K&7,?FJ\2-O5E+,F[J/E!&[UOV-W=ZA
M\3DTN:S\116>F65OY"F\ 5&W/F6;$N9 P4+SNS@Y'.: /4**XC2?&5G:>$=#
MF0ZMJ]UJ1=+2)TC^U3E2Q8M@A % Y.0,8K1G\9Q06MENT?5/[2O9'BATPQ()
MR4&6.2VS:!@[MV.10!TU%<G-\0=*M/#]WJUY;7UO]BNTM+NU>,&:"1F4#(!(
M(PZME2<CID\5N:-J<FK6'VF73;S3R6($-XJJY'9L*3P<_6@"2PTJRTQ[Q[.'
MRVO+AKJ<[B=\A 4MR>.%' XXJY7)ZAX\M[2ZU".UT?5-2@TUMM]<V<:&.%@-
MQ7YG!<@$$A0<4[4O'NFV4VEPVEI?:G+JMLUS9)91AO-4;?[Q&.&SS@8!YS@$
M ZJBL[4KB0^&[RX598)#:/(%;AXSL)YQT(]JXWP;X[1]!\+VNH6.JK]NMX;>
M/4[E!Y4]QY>2,EM^20V&(PV.">M 'H=5+G3;.\O+.[GA#W%F[/;R9(*%E*GI
MU!!(P>/RKF(?%=GID&MW$DVIWS1ZS]@CMW2/<9F";8HN0-GS=6([YKI=+OIM
M0L_.GTZZL)0Q5H+G9N&.^49E(]P: +M%<YJGB^.RU>;2['2=1U:\MXEEN4LE
M3$"MG;N+LHW'!(49-5;GXB:/!H^D:G##>W<6JRM!;1P0YD\T!CL921@Y4K['
MK@<T =;4%Q9VUV\#W$"2M;R>;$7&=CX(W#WP3^=-T^Z>]L(;F6TGM'D7+03X
MWQGT.TD?D:\W\+>/O[-T&1M4L]7N;:+4[B"XU(J&B@W7#*@)9MQ !494$#@>
MU 'J-%<WJ?C"*QU.ZL+/2=1U2:RC66\^Q(A$"L,@'>R[F(&=JY.*KW_Q TRU
M_L<6EI?:E)K%NUQ8I9Q!C(%VY!W$;3A\\\#:<^A .LHJ.WE,]M%,T3Q%T#&.
M0#<F1G!QQD5)0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !7-Z[I-Y>^+O"M_!$&MK">X>X;<!L#P.
MB\'D_,0.*Z2B@#C$\/ZD)O';& 8U;'V/YU_>?Z,L?KQ\P(YQ6=:Z'KWA^\\.
MZQ:Z7_:$EOH4>E7MFDZ))&5VL&0L0K<@@C([$9KT2B@#S*Y\(:]>:;J.LM;0
M1ZS/K-MJL6GF8%0L&U5B9^FXJI)(XR1]:TK2R\0ZKXY&MWVC+IUF-(FLXXWN
M4DD\QI$8;MIP,X.,$].2,XKNZ* //-(\+:O:Z=\/8IK95?1]_P!M'F*?+S Z
M#O\ -\Q XS4&O^"=5U>3Q8T<,>;J_LKRR5YMJS^3&@925Y3)5AGCG!KTJB@#
MSVQ\*QZC!J<+>%KC1IKG3IK-;NZU 7##S!@JJAVX[YXZ#BJHT[Q=J5GX4TZZ
MT"*TCT:]MI+JX-XC"41J5W1J#G;@Y^;!Z  ]:],HH Q="UR76KW6$%J([.RN
MS:P7 ?(G*J-YQCC:V5[\@^E87CO2;O4Y4^Q>'KBYO8X&^QZI:7Z6\EM*<\$D
M@[.%/&X'GCU[2)(XTV1*BH"?E0  'J:?0!P<VG^)M)\3:?K<>GKK4SZ,FGWG
ME3I"5F5]_F?-@;22>G(]*RK3PIXDL-$TF^^PP3:MINM75\]FDX"S1RM(#L<\
M X<$;L>^#7J-% '%:K:Z]XC@T2>?1A8M::Y!<M"URCNL"JV78CY<Y/W03QBM
M&VTF\C^(VHZNT0%E-ID%NDFX<NLDA88Z]&'/O7244 <WK.DWEYXU\,:C#$&M
M;'[5]H?<!MWQA5XZG)':LH^'-4_LKQ_!]G'F:O),;(>8O[P-;+&._P OS CG
M%=S10!Y]!I&O>'-:L=7L]).II+HT%A=6T=Q'')#)%DA@7(5E.X@\]LU3?PAK
MZ:0NJK:P/K'_  D/]N-IZS#;MV^7Y(<\;MG.[IFO3:* //?[*\1ZOXAUK5KS
M2$L8KK0FL+:$W*.^_<Q ?!P"=W8D8QSG-6;#PYJD%WX!DDMP%TC3Y8+T^8O[
MMS!&@'7GE3TS7<T4 >;7WA'6Y+?6KBW@B-VOB.+6+**24!;A(UC&TD9VYVL.
M>X'UK2UN3Q=KOAZ9;?1YM+D6X@)MUOT%Q<0ALRJKH=L9(P =V>O2NWHH \ST
MGPCJ;7/BM_[+DTVWU72DM;9+F^^TN'Q*#O.YB/O X!(P>N<@6DTG7M2\-^%+
M6YT=K.XTG4K1IT>XC?=%%&0T@*GID\#K[5Z%10!YY%8^)_#W_"0Z;I^AIJ,.
MIWD]W:WGVI(TB,W5958[OE.?N@Y'I5KP_P"$;S0?$6@D8EL]/T!M/DGW 9E\
MR,\+UP0K&NYHH \\'AV[AT;6;;4/#?\ :\5YKMQ=I!'=)'(L;'*2HQ(PV1_>
M4C/X5T/@JRU?3_#_ )&LR2M-Y\C0QS3^=)%"6^1'D_C8#OS]:Z*B@#FM)TB]
MM?&WB;4IH@MK?1VBV[[@=Q1'#<=1@D=:Y"U\->)=/\,^%+":QN[JTL[>6/4-
M/LK\6[F0D>6Q<.H91SD!NX/->J44 >96?@G5O^%=:MIS6R6NJ_VE+J6GI]H\
MW9()!)%^\/)Y&TD\\G-.G\$:KJ/P^N([F&)=>N]2&K7$!FPC2"0,(MZ] (U5
M 1T(S7I=% '&>%=&C@UAKYO"=QI4R6YB%Q=:B+ACE@2B@.V!QG/'0<5-XTTW
M6+N^\.WVC6<5W)IU\UQ+%),(P4\IUP">YW8'N1GC)KK:* /,=2\'ZWXN@\4W
MM[:)I5QJ-I;VME;23*Y A<R;I&0D#<QQP3@5<TCPTEW='[3X0N=+E%M+%]LG
MU/[0(RZ[2(UWL3D$\D+7H5% 'EOAGPA+I\>DZ=J?A"66:P>('4!JFZW)C(VR
MK&7W9X!V[ ,UM1>'-37P[X[M#;CSM6N;N2S7S%_>*\"HISGC+ CG%=Q10!0T
M2VELM TZUG7;-#:Q1R+G.&"@$9^HKF-*\*WK^ ==T&] MIM0FOPC;@P59I'*
M-Q[,#BNVHH \W\,^&GM[O2H]0\'30W%E@M?/JOFPJZJ1OC3>2<^A48S4FF>#
MM5MOB YFCC_X1JUNY]4LSO!)N)D52FWJ I,K _[8KT2B@#S+4O!&JWVC:RGV
M9&G_ .$D_M:V@:?8+F(!!MWJ<H2-V#V(%:NA>&[2XDU#[3X4N-+%S9M:/+=7
MXN'D1_O( '<!>^<CZ5W%% 'CEIX*\86WATZD;>%_$^GW5LEBOG+B2WAB,/+9
MP-PDE8@ULZIX"N+?1_"(M;,ZB=#C>.YM$N3 \_F( [J^1\V\;L$@')YKTJB@
M#S>Z\(SWGA6__LOP\=)U(W=O=QQ7=[YS7)A=6 =@S!> 5')K0L[;Q%JWC[3-
M;O\ 1!IMC:V-Q!L>Z223>YC.2%)&#M.,$]#G&17<44 <OXWLM8O;&P72DN)H
M4NU>^MK6Y^SRSP[6RJR9&/FVDC(R!C-<<W@O6Y?#/C6VBTHVLFK/;M9VTEZ)
MFPJJ"&D9CS\I/)QV!(%>LT4 <MX@T&[U7Q=H=W&G^AP6M[#<2A@"AE5 N!U/
M0]/2N2&B>+Y?"6B>&'T*%%TJZM/-O?M:%)XH95(:->N=HR=V.A R2*]6HH H
M:W%?SZ%J$.E3+#J#V\BVTC=$D*G:3^.*\_T#PSK"^+?#^J3Z->6B64$Z7D][
MJGVJ261T W ;V 7(/(P3GH *]/HH \7T:U\1Z_\ #2?PU::/']CO[JYC&I&Y
M4)%$;E]Y9#\Q88;  (.1R.:WHKW6-,^)?BK^R=%_M2/[+8JZ+<I$Z,$?:?GP
M"O7/.1QP:]#L[*UT^V%O9V\=O"&9A'$H506)8G ]22?QHCLK6&\GNXK>)+FX
M"B:55 :0+G;D]\9./K0!P6A>#=5TE_!(F6.0Z=)>S7[QN-L;SJQ 4'DC<^./
M3-:%Y9ZWH7C;4-;TW2#JUIJ=K#%+''<)%)#)%N /SD J0W8Y!'2NTHH \X?P
M9JX\#7;!(1XB?56UR"))/DCG\S>(PQQGY<J3T^8]JAN_ NIW/@33TE@CFUE-
M4&L7EMYYC$\C%B\8D7H0K[0>GRCM7IM% 'F[>#1K&@Z]:P^&YM$N[VQ-M'<7
M=_\ :&<Y)"\.^%# =^_2IOL_BK6]=\*W-]H":?;Z7<,]TS7<<C,QA=,H%/W,
MD=>?F'& 37H5% '-^/M(O==\#ZIIFG1K)=W$:K&K,%!(=3R3[ UEQ6?B'7_&
M.B:AJFCIIEMHRSNS?:5E^T2R)Y8";>0@!)RV#TXKN** /+O!&BSQ^/\ 5;5V
M1]*\.22Q:<%/"M<D2LOU1?E^C5UWC?1;S7/#HAT[RS>VUS#>0)*V$D:)P^TG
MMG!%;=K8VECY_P!EMHH?/E::7RT"^9(>K''4G YJQ0!Q5O9ZWX@\8Z1K&I:.
M=(M=)BGV)+<)+)-+*H3C82 H /).22.*YK_A'?%J>#+;PBFB1&.ROXY#?&[3
M;-$MR) 47J&QU#8Z'&20*]:HH YO1=)O+/QGXHU&>(+:W[6IMWW [MD6UN.H
MP?6I?&GA^7Q/X6NM-MYU@NB4FMI6&0DJ,'7/ME<'V-;]% ',:5J_BR[NK:WO
M_"\5B@/^DW+7Z.F /^6:KECDX^]C%<^OA/61\(8- ^RK_:2W2R&+S5QM%YYN
M=V<?<YZ^W6O1Z* /./$7@K5-;E\9K&D:#4#8RV3/)A96@ +*V.5!(QGWS6AX
M8T5(M:CO)?"%SI<T,+JMS<ZD+@@MC*H [<''4XZ#BNWHH YOP%I-YH?@K3].
MU"(174/F[T#!L9D9AR..A%9FK6VOZ=\17US3=";4[672H[0[+J.(JXE=S]\\
M\$5V]% 'F5_X9OV\4WFNW/AFYU"/5+> O;V^I"&2TE1=I4_.JNI&.03@@\<U
M0U?2[N/Q)X:TG0[$V%S:Z9<S?9(=0$+0*\B9_?%'WY(/R[3SSGI7KE9VJZ!H
M^NK&NK:79WPCR4^T0J^W/7&1Q0!YW:)>ZEX4M+'0=-NXK?2M6DM]5LK?40);
MG +,4N,KNR[ACRI/(XIG_"%ZV_A;QA:QZ6;:35+FWEM+=[T3-M41YW2,3S\I
MZGV!(P:]1LK&TTZTCM+&UAMK:,82*% B+] .!4] $5U;QWEI-;2@F.:-HW ]
M",&N"T5O&GACP_#X>B\.Q:C)9Q_9[745O8XX70<(SJ?G4@8R #G'!KT*B@#S
M^'P5?:7HO@W3H&6Z?3-4^UWLV0H.Y)2[ 'J-\G ZXK<LM)O(?B'J^K/$!97%
MA;0Q2;ARZ-(6&.HP&'YUTE% 'E^F>%_$.A:/X.OHM-6[OM&CN8+JP$Z*S),>
MJ.3MR-JG&>035KQ%H6L:]>:+K]UH!=[/SXIM+CU )*8I-NUA("J[@4R5W8P>
MO%>C44 ><W7A6>Y\*3PZ=X=;3+J;5+6X>&:]$TDB1R1DNS;B 0JGC<>GOBO1
MJ** //8K'Q/X=?Q#I^GZ&FI0ZG>37=K=BZ2-(C,!E958[OE.>5!R/2K&B^$+
MW1-;\*JN)K32]'FLYI]P&9&,1&!UP=K?2NZHH J:K!)=:1>V\0W22P.B#.,D
MJ0*XX^&M5/A#P-8?9Q]ITJZLI+M/,7]VL<95^<X.">V<UWE% ' ?\(_>0Z=X
MEAOO#RZM!J.M/<K:BX1&:$QH!(I) #!EZ$J>^?79\#V&KZ=HUQ%JQG4-=.]I
M!<W GE@@P-J/("=Q!#'J< @9.*Z:B@#B)+77O#OC'6]3T_13J]IJZPR 17,<
M3P2QILPV\C*D '(R1SQ5+3/!NJZ?#X2$JQ2S6FIW-]?F-P$C,J2G"YP2 SA>
M/K7HE% !7G$OA/66^$VJZ$+5?[1N+J>2.+S5P5:Z,BG=G ^7GK7H]% 'FNJ>
M$[FV\8ZQJ3>'[C6;34S%+&;74?L[P.J!&5E+J"#M!!&2.1BM>T\.3VOB3PM<
MVNFI9:?8:;<P2PI,'$#OY15 3RWW6Y]J[.B@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K \
M1^))=&NM.T^QT\ZAJ>HNZV]OYHB4*B[G=G(.  1V))(K?KE_$^B:I<ZSHVNZ
M+]E>]TPS(;>Z=D2:*50&&Y02I!52.#0!S&C>*&TK5?'NM:Q83VC6\UFK6>]9
M&WF%455(X(9B,'C@C.*Z&S\:3KJG]GZUI264TEI)=P&VNQ<B18\;U.%7#@,#
MCD'L:QI_ .L:SI_BI=8N=/6ZUF2VGA\A6>.)H0NU6# ;E^503W&3@=*U-!T&
M_L+F6X_X1;PKI4ZV[K'/8Y9GD.,9Q$A5/49)H +'Q/>:[X1OM5N-)6WTR73Y
M+B&6VU$/(R[2=IPH\M\>A;![Y%,M/%5PMGH6F:)I+WUW<:3'?%+J]V>7#A0-
MTA5B[DG'3G!)(JC9>#-6:_UJ\:STK2%OM,EM&M+"=WBGF;I,X**%QR. 3\QR
M:YK6],^S^)-$TB^U'3+233_#T,+27UU+;QNV[:WE/&Z,V=OS \8V\=: .LM_
MB-<W&B:#?)X>DDGUJ>2"WMHKI6*E58Y+%0,94@^@!//2K<7CY+;3->GUO39+
M"[T5D%Q;12B82>8 8]C8&=Q..0,&LSP[;3^);+PIJ5K:65E9Z->W"%(&;RI8
MA&\2O#D<J20><<9Y-6M;\!W&MR>+TEN((XM92T^S-@N4>$9^=2,8W < G(S0
M!>T_QE.=9ATS6],BTZ2XMY+BWDBO%N$(CP75B%&U@&![@\\\53L_B))<?V;>
MS:/Y&C:G<)!;7/VM6E!<XC9XL?*K''\1(R,BGZ)X7F2>1;[PMX8TQ&MWA>XT
MSF5RPP=O[I=JD9[DUG>&_!%YH9T^RF\-^%;B.R90-5V8N'13PVSRN), <[^O
M- &II,ITKXC>)-,C1FAN[6#58XE_OG=%)CW8QH?KFNGTF]EU'2K:\GLIK&65
M-S6T^-\9]#BN0@NT'CGQ9XC?)M-*L(K ,HSO=0TT@ '4C>@QZ\5U/A^?4[GP
M_83ZU!%!J4D*O<11 A48\[>2>GUZT :5%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
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
M/"6S2OL5A/"5O3.Y>XBCF5U&S;\C8')R>F!UR/4J* ,.QUB\OO%NJ6$<$?\
M9EC%$AN,'<UPV69!V("%"?0M6Y110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
M073/:Z/<#2_-EA6^::/!:-BIS'G< 2I [],@9KGO"_A*;3KK38[SP9HT,UF
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
M8BIMR"2!DYQP<=<4 6=$\1)HEGXJN[S[1<M_PD<EM;01G<\CLL02-,G R3[
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
MSM5OE)R22<XZUOIXIT_PW:^)[J'3A')#K"621FY(6>9XX@I);B-?FYQP I-
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
MKXQU[5=*\&ZIH=M;VZ:CJ AFAGN64F0+*#$Q"'Y,H3NZY4<<\ 'II(52S$
M9)/:A65U#*0RD9!!R"*X'6+I6UC7K:XL4CU$>&/-FGCN'=.3("BJ0!@$$[L
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
M>,%7.023D\XX]#73T4 <SX,\-3^'+;4//:U1KVZ-S]ELD*V]O\JKM0'UQDG
MY/2L]_#/B32[[65\/ZAIT=EJT[7+?:XG:2VE=0KLFTX8'&0#C!KMJ* .&'@>
M]T)]#NO#%W;"YTVP.G2)?*Q2XB)#9)7E6W+G\34]YX<\1G4M,U^UO].?6[>W
MEM;I9876WFB=PX P2RE2!@\Y[UV72D1UD0.C!E89# Y!% ''ZEX>\17-QH6L
M0W^G/K>G>>LJR0NMO*DN,J,$L-NU<'G..>M9Y\!:K-X>UZRO-3M9KS5=3@OS
M,L11%V&$E=O/_/,@<GC&3UKT&B@ KS34/ /B.?0=7\.6FJZ=%I%Y<RW,;O"Y
MG&^3S#&>=H&XGYN3CL.M>ET4 8=GH<MMXSU36VF0Q7EI;P+& =RF,N23['>/
MRKG5\#:G:^$-"T^TO+0ZCH^HM?QM*K>5)EI3M..1\LO7U%=]36=$ +LJ@D 9
M.,D]!0!RESX7O[W5]1U&>YMA+>Z&NFLJ!L++ER6&?X?GX[\5L:5I,EAX3LM'
M>?$MO8QVIFBXPRH%W+^616K10!YKHWP[U2PG\.B9M%CAT:?>9;6W99KL>6R[
MG8]&.X$CG)).>@KI+'PM)!;^*+>>X0IK5U+,I0',:O$L>#GO\I-=-10!P#>"
MM9O?"6DZ;?76F?;]%FA>QD6%GBD6--F)58Y^8$YQTX(J[-X:U;4?#&NZ9=Q:
M'9RW]HUO#]@A8!258$NQP2.1P!QSUS7944 064!M;&WMV(8Q1*A([X&*Y'6?
M"NKZYXAL;FY;2([>QO4N8;R&%Q=B-3GRLYQ@]"<X(_AKM:* //M2\%>(7A\2
MZ9IFIZ?#I>N22SNTT+--$\B!748.TJ<#GJ 3P>*NR^%M;T[5K/5M"N[#[2NF
MQZ?=0WB/Y<@0Y5U*\@@EN.X/:NTHH YNS\/Z@GBVTUV]O()I(]*:RF\N,IND
M,BON R<+\I&,YJQX9T.70HM42:9)#>:G<7J[ ?E61MP4Y[BMRB@#C-/\.>(]
M#U&]@TG4--&D7E\]X?M$+M/#O;=(B@$*03G!/3/>J[^%/$EA_;-AHFI:='IF
MJW$MP7N8G::U:7_6; #M89R1G&,]Z[NHTGA>5XDE1I$QO0,"5^H[4 <9_P (
M9J&A:AI]]X7N;0-;:;'IDL%^K%)8T.4?<G(8$G/!!SVIB^!+LZ2B37\,NHS:
MY#K%Y,(RJ,R.I*(.2 %0*,GW/6NZHH X?5_ ]WJ-KXMA2[A0ZW<6\T18']V(
MUC!#?78>GK6EXAT>XEURSU^%F9=.L+R,P1?ZV1I A79VS\A_$BNFIJR(Y8(Z
ML5.UL'.#Z&@#PWP/)#HLWAU]-ET34]1N#%;W-I#92+=VJ,/WCL^\A2N,L2B[
MN?6O5M<\):7K.@ZEIBVT-H;Z%HFGAB4,">0>.N" <>U;U% '&1>'/$>JZCI$
MGB2^TY[72IA<QK91N&N)@I57?<<*!N)P,\]ZLVWA6X@TKQ99FXB+:U<W$T3
M'$8DB5 &^A7/%=510!1T2Q?2]!T[3Y'5WM;6*!F7HQ50I(_*O+O#?AWQ#XA\
M"S:0-0L8=#O;ZZ$Q:%OM$:"Y?>B'.T[L'D]-QZ\5Z_10!Q%]X.OK;Q+?:MH\
M6CW$>H)$)[?4X6/EO&NP,C+G@J!E2.W6M+_A'+I]?\.ZI++:)_9EK<0S1P1%
M$9I1'RBY. -AX)[UTM-61'W;'5MIVM@YP?0T <CJO@@:U?\ B9KJY"VNLV$%
MHH0?/$T>\[O0\N#^%1Q>&_$>JW^CMXCO].>TTJ87*+9QN'N9E4JK/N.% W$X
M&<FNTHH \XO? GB,Z#K7AO3]5TZ+1K^2>6)Y87:>/S26,?7;MW$_-UP3QFNF
MMKC5?^$LCTZ) -)M-/'VB5HR-\[$!51N^%5B?3(KH:* "BBB@ HHHH ****
M"BBD9@JEF("@9)/04 +12 AE#*001D$=Z6@ HI"0 22 !U)H1UD171@RL,A@
M<@B@!:*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH *Y?Q]XUMO ?AIM7N+9[EFE6&&%6V[W()Y;!
MP,*3G!Z5U%9/B/PWI?BO1I-*U>W\^U<AL!BK*PZ,I'0T 8'PW^(EO\0M)N;E
M+)K*YM9 DT)?>.1E2&P,YP>W:NUK!\*>#M%\%Z8]CHULT4<C[Y'=BSR-TR2?
M;MTK>H *Q-1UY].\4Z/I4ENIM]3294N-W*RHH8*1CNNX]?X:VZYKQQX;NO$V
MAQP:==I9ZE;7"7-K<."0C#(.<<\JS#\: ,*T^)RWWAG5]3@TX?:K2_2SM+9I
M,?:1(RB%\XX#!L]^AJ_XL\6:QX:6[O?L.DMI]JGF%9M0*7%PH +&--F..0 3
MSCM51?AQY'BC0[VVNT32["W@2>UVG,TL".L+Y]O,R?\ =%5=>^'FJ:E<^(UM
MYM(>+6@2+J\MV>XM_P!V$\M3TV\9![9/!H U]1\87O\ PDL&BZ3:Z>TLEFEX
MIU"Z: SAB0$B 5LD8Y/;(KH==UBV\/Z%?:O=[C!:0M*X7JV!T'N3Q^-<OXH\
M):QK^E+HZG16LC;I&MQ<0.T]LX&"\9!P3QD?=P?6NBUO08==\+7>A7,TGEW-
ML8#-U8''#>YS@T <YH_CRXN=>TS3=1BTD?VHKF#^S]0^T/"ZKOV2C:/X0>1Q
MD8]ZI1?$/6FT1/$,F@6T>B)=_9IW^UDS$>=Y7F(NW&T''!()Y[<G;T#1=<L;
MRW.H0>'A%"A5I[.U99I3C //">IZ^E4CX'NS\-9/"_VN'[0]P9O.P=F#<^=C
MUZ<?6@!EOJOBA_BMJ&FA+%M,CLX)/+:Y<%(VDD&]1Y?+G'*YQP.:H'XJ9@_M
M=8=+.B_:?(V?;Q]L*>9Y?FB+;C&>=N<[>:Z2?0M5A\>#7M/N+/[+<6L=K=PS
MJV\*CLP:,CC)#D8/UK'T?P7JN@*FG64>@7&F1SL\4]U:L;A(V<ML..&(R0&R
M.W% &@GB?6KWQKJ&A:=I%L]MILL'VJ\GN2GR2(K810IR_+<' XZ\UAR_%3;!
M)JZ0Z6=%CN3 4-^!>,@DV&41;<8SSM)R0,UUVE:'+I_B?Q!JKS(\>IO T:*#
ME/+C"'/U(S7.Z5X+U70<Z?8QZ!<::MP\D4UY:LUQ&C.6*''#$9(!R.W% %O4
M/$^LW6L:O8:%H]O>6^E*JW<D]T8FD=DW[(AM()"D<L0,G'O4WPP_Y)CX=_Z\
MDJ&X\,Z_::_J]UH>HV,-GK!1[@7,+/);R*@0O& <-E0.&[C\*VO"6BR>'?">
MF:/-*DLEG L32(#AB.XS0!R&F^+#I/A'19-(T/S&U'5[BQ2U:[8[6WS?-O?)
MP3'D^@)QG %.U?Q9XB_X1WQ=9-96=IK6D6?G^;#=,T9B>-R)$)3.]=C<$ 9
MYJ]9>![NUTOP]:-=PLVEZQ-J$C '#J[3$*/?]Z/R-7;[PA)?ZCXIF>Z1(=;T
MV.Q7"DM$5612Q]?]8/RH I1>*=;L/#NB)=Z?:7.MZJZ0V<45TWEN/+WF21R@
M*X 8D 'MCKQIZ'XBU"X\07?A_6[&WM=2@MTNHWM9C)%-"S%<@LH((88((K+D
M\*^(+G1]%>6]TV+6]$F#6DD<;M#)'Y?ELL@)S\P)Y'3BM/0] U*/Q#=^(=<N
M+634)K9+2**T5A%#"K%B,MRQ+')/'04 ,N;RVC^),,!LRUT-%FF%QYS !!*@
MV;/N\DYW=>,5B:9\0-:NM.T'6;S0;:WT?5IX;8,MV6F1Y.%?;MQLW<=<X(..
MU=+<:!--XUCUP3((5TN6Q\L@[MSR(X;Z84UDQ>";J/P1X<T(W<)FTJYM9Y),
M':XB<,0._..* -OQ1KK^']*CN(;87%S/<Q6D$;/L0R2.%7<V#A1G).#7.IXZ
MU'39?$G]OV%E%#H5O'+(UE</(TK2#**H9!C.".3P<=CFG?%=1+X8LH)&$=O)
MJ4 GFEC,D,2 EBTJCJG &,CDKR*P- TVW\06&O\ A&VDTVXTBXM5E_M;2[5X
ME$Y;A6W.PD8;5;(;H,&@#J(?%&O6&JZ3;^(M'L[6VU63R()+6Z:5H)=I94D!
M11R 1E21D?C5"7Q[K+Z+=>)[/1+:;PY;.^6:Z(N98D8J\JIMVX&"0"V2!VJ]
M%X=\1:KJFDS^)+[3GM]*E^T1I91N&N)MI57?<?E #$X&>3UK-_X0?Q!#X?N?
M"=MJE@GAZ=Y%$S1.;J."1BS1CG:3\Q 8]CTH UKOQ5JEYKTNE^&M-M;[[+:Q
M75S+<W)A7$F2D:85LL0I.3@"H?A2[2?#VS=XS&S7-V2C$$J?M$G!Q3[CPQK.
MF^([C4_#5W80Q7MK#;7$-[&[A#%D(Z;2,D*Q&TXSCK6GX-T"?PSX8@TJYN5N
M98I9G:95V[]\K.#CL<-0!QG@N'5I?$7BW5[K1-(N-0AOY8TF6X)F618HPL2.
MT?$>#UR#R?EK<TSQ=>77B";0-5M],:1[&2ZCDTZ],R@*0K1OE5*M\P(-.F\%
M74^@^+M-&H"%]<NY+B*6,']T&1%PW3/W#G'8U7T?P7J-MXC@U:Z71;2.+3Y;
M(6NFV[(OS%"&)/7[IXQQQUYH P+?7==6Q^'P\.V=I;6-_&V+6>]D(8B%VV.V
MQB5  (/))XP!S6@+KQ!#\3O$*:1IMG<W3Z=9-*UQ<F.*,CS?E!"EF)).. ."
M3CH;J^"=6L?#GA.#3[RR.IZ <@SJWDS QM&PXY'#9'TK>TS0[FT\6:KK4\T+
M"^M;:'9&"-K1[]QY['?Q]* +'A?74\2^&K'6$@:#[3'N:)CDHP)5AGO@@\UY
MUH'B+7?#_AO7-2M]%M[C2+#5KZ2Y=[HK-(GGL6,:!2/E']XC.#CUKT#P?H<O
MAOPM9Z3/,DTD'F9= 0#N=F[_ .]7)MX&\3C1M4T&/5].&E:K=7$L[F!_.ACE
MD9F1.=K94XR>A)Z\4 ;\7C2!-1UR"]B6&#3K./4(90V?/MF0DO@CC#*P_*M'
M3-0U/4O"EKJ/V*"#4;FV69;664A%9AD*S!21U&>*XKQ_X=BU#Q%X3TRRD:)[
MK?9W2*/]98ILD<$]N44#_?->F@   # % 'C$^JZ_JGP%N[[65@FW"%H98YF>
M64BZ .\%0%Z #!.?:NZL/%&K1>)(])\0:7:V(NK22[MI+>Y,NU8RH=),J,,
MP.1D5E0^!M:'@&\\)37M@ULKI]BG1'#[1/YA\P=,XP!BNCU+P\^H>+--U9I$
M^S6MI<VTD1SN?S=G3V^0_G0!R]G\4&N!I^H/!IBZ5?W*6\<:7X:\C#MM21XM
MN,$XRH.0#WP:U_BC<2VOP\U&:&22.19+?#1DAA^_CSC'/2JGA_PAK&@)9::B
MZ!<:?:. EW+:M]J,0.0"!\N_'&[/OBM[QCH4WB7PO=:3!,D,DSQ,'<$@;)%<
M]/9: ,/PI=3>);BZ\97,SB%1+;V&GAR!;HI(8R+_ ,]6(Y!^Z,"JNF?$#6KJ
MPT#6+W0;:WTC5YX;8,MV6F1Y.%?;MQL+<=<X(..U;D?AB>P\4WFI:9<1Q6&I
MQ-]OM&!P9\869,=&(X;UX/6J,?@JZ3P5X:T,W</G:3<VD\DF#M<0N&('UQQ0
M EQXNUV[EU>?0=%M+K3])F>"9KBZ:.2XDC&9%C4(1QTRQY-6+'QW:WFHV:M#
MY6G7NC_VI;W+MR0I'F(1ZJ&4]?6JC^%O$FG2ZU:Z%J.G1Z=JUQ)<LUU$[36K
MR#]YLP<,,Y(SC!/>HO$?PY_M'PSHFD:3>BT;3$-KYT@R7MWB,<J\=V&#]10
M:3\1WU;POI6HIIGEZA?:FNG&S:0_NR3N+$XSQ%\_2F7GCO7EM]?OK+0+673]
M"N98KF26\*/,L8!;RU"GD*<G<0.PS5VV\#-;?$1M?2YC&FJADBLE4@I<F-8B
M_ICRUQ]2:E'A"Y'AOQ=IGVF+S-<GNY8GP<1B6,* WTQSB@#HWN4N=':ZA)V2
MVYD0]#@KD5Y[X=\4ZEIO@KP-9VE@-2OM6MF0&:XV;2D>[<S$'C&2>IP. 37H
M-M8M!H<-@7!>.V6$L.A(7&:Y?2/!5UIT'@M'NX7.@1RI-M!_>[XB@V_B<\T
M0R>/KW3]"U^;4]+A34]%GB@FCAG)@82["DF\KE4P^3D< &EUW59W\(P7>M65
MA=*^I6J0G3[Z0Q.&E0*X8!3P2?EY!Q[UH?\ "/ZK9ZIXDU'3Y[%I=4EMWCBN
MHV9 J1A&5L8ZX.",_0UC0?#V]&C7UN9["VEO-5MM0^S6B,MM (F0E4!YRVPD
MG Y/2@"[JGBC6;R_UNRT/1[>[M-*417<LUT8WDD9-Q2(;2"54C[Q )./>L/P
M]XN.B^"/!NDVHL?MUYIJR^9?W/D0Q1H "6;!)))   ]>F*WKCPOK]IK6LRZ)
MJ-C#8ZRRR3_:(6>2WDV!&:/!PV0 <-T/KTJC'\/[ZQT_PW)9S:=/J.D6)L98
M[R(O!<1G:3[J05!!P>IH <WQ)E_X1I[^+3(KJ^@U9-+EM[:Y#I([%<-')@9!
M#*1D#K@]*[+2)-4ET]6UBWM;>\).Z.UE:1 ,\?,5!SCKQ7/77A?4M1T:PM[D
MZ7;3V^JV]\RV4+)'LC=6V\\EC@\\=N.*T]1O=5_X2K2+#3XQ]C*RSZA*\9*B
M,#"*K?WBYSCT4_B 6=<O-0LK$2Z=!9RREP'>\N##%$N#EB0I)YP, =ZY+_A8
MT\/A;6=1ET^WGO=)O8K22*TN?,BF\QHP&C<@=I.A[BMGQCX;NO$"Z7+:M:.]
MA=?:#:WR%H)_E*X8#N,Y!P<$=*PA\/=1?0]>M);K3TGU2_MKM1;0F.*(1F(E
M0O/_ #S(![]>* -:Q\5ZG!X@DTKQ%IMK9;[%[^&6VN3, B, Z/E5^8;@<C(-
M<EK_ (AUW7M%\.:C<:+;VVD7VL6$MLZW1:9%\Y2AD0J!\PY^4G&1FNZU+PT=
M2\5V^J22I]E33KBQDBYW-YK(<@^F%/YUS,?@CQ0^DZ-HMSJ^FG3='N[:6%D@
M<2W$<+J55\G"D*.V<G'(&<@'6>+M?;PQX8N]82V^TM;F/]R&VEMTBKP?7YJS
M+#Q3JL/B1-)\0:7:V(N;.2\MI+>Y,NU8RH=),J,, P.1D5I>,-#E\2>%[O28
M)DADG:,AW!(&V17/3V6F:GX=;4?%FFZJTB?9K:SN;:6(YW/YNSI_WP?SH YW
M_A/M830X?%,VB6R>&I73YOM1-TD+,%64IMVXY!VALX-3:?JOB>7XHZSIS)8O
MID$%L^QKE\QQL9,.H\O!<XY!( P,$U63P-X@D\/6_A*[U.P?P]"R(95B<74L
M",&6,\[0> I8=NU;S:%JMMX[EURPN+,V=[;PP7<4ZMYB^67(,9''(?'- &GK
MEYJ%E8K)IT%G)(7P[WER88HEP?F)"DGG P!WZUR:_$:6/PQJ^H7%E:->:9>I
M92>1=;K8ERFV7S-N0@#@GC(P:V/&/ANZU_\ LJ:U:SD?3[DSFTOD+03Y0KA@
M.XSD'!P16?H_A77-$L]:>WFT9[O4;M;CR3;LMN$\M4:/:#D=#@\^I'.* .ET
M.ZO[S3Q-J"6(D9OW;V,YEBD3 PP)4>XQSTZ\US$_C#Q#/>:_%I&@VD\6BSE)
M))[PQF8"-7VH I^?D]<#IR<G&GX,\-3>&[74!.UJC7MV;G[-9(5M[?*JNU ?
M7;DGCD]*Y33K#Q->:YXWAT6^L(+>YU(PR?:H69HB8(_WB%3R<'[IXX'/6@#I
M9_%&H7NAZ;JVBP:8MG>VZS^=JEX8 I8 A,*K9/J> ,=ZS6^(=U<>'/#FI:=H
MPN+K6;I[06QN !'(HD!._'*AH^N/N\XSQ39_A_<V=WH\FE-IMU#I^F#3EAU6
M%I%3!!\Y0/XST(XR.XJ;2? EWIVE>%K-[V"1M&U">ZD=4*B17\W 4=C^\'Y&
M@"I>:OXUC\>Z+8_9]*436$\DMN+V3RG*M&"V?*SD9^7CG)SBNL\3Z^OAS2!=
MBV:ZN9IX[:VMU8*99I&"JN3T&3DGT!JEK^A:K<^)=)US2+BS2>SBFMY8KM6*
MO'(4.05YR"GXY[59\6>'W\1:1';V]R+6\MKF*[M9V3<J2QMN7([CJ#]: ,V#
MQ)KUOK:Z'JVEZ?%?W=K+/I\MO=.T,KIC=&Y*!E(W Y /&?I61\(;2X/AZ75+
MS3M.CN+J>X)O86+3SGSY-PD)0< @ <G(';I6WIV@:S=^)K;7?$5S8F6R@DAM
M+>Q5]BF3&]V9N22%  Q@>]7_  AH<OAOPS;Z7/,DTD4DSET! .^5W'7V8"@#
M)\6^*]7\-+=WBV6E-I]K'YNV?4#'<7"@9;RTV$ CD $\XKII;]5T=]1B7<HM
MS.JGC(V[@*X37OA[JFI7?B/[/-I#Q:TO_'U>6[27%L/+";$/3;QD'C&3P:[*
M[MVM?"<]LQ#-%8M&2.Y$>* .3LO'NM-I^A:UJ&A6]MHNJR00AUNR\T32X"NR
M[=NPL0/O9P03Z4_PU<7MK_PFTNGV\$]R-?DVI//Y48'DPY9FP< #GH>E97A3
MPWK^M^#O"-OJ.H6)T2UCM;T+'"RW$FQ0R1-SM"@XR1R0HX'-:VH^ KR[TS6K
M=+RV+WNMIJD<4R%HI%41CRI1W4[#G'M0 ZU\>W0LO$XN[6PDO-$LOM@:QNC+
M#.I1V W%05(*$$8J;3_&&LOJNB1ZKHMO:6.MAA:O'=&26-A&9 )%V@#<H/W2
M<=ZJ0>!-2:/Q0\\NEV\FM:8ME'#90LD4#!9!D_WA\X.<#OQTK:N?#,\\OA1Q
M<1@:+)OER#^\'D-'\OXMGF@"QXF\02Z*-/M;*S6\U/4KC[/:PO)Y:9"EF=VP
M<*J@DX!-9(\9:C8'7;+6=-MHM3TS36U*(6TY>&YB ;H2H*D,N"".^:T_%/A^
M[U=],O\ 3+J*WU/2[@SV[3H6C<,I1T8 YP5/4<BLH^$-5U+^WK_6+RS.IZCI
MC:9 ELC"&WC(8]6Y8EFR3@=* -?PKJVL:W8#4-2TRWL+:XCCEM$2<R2E6!)\
MP;0%/0@ GKSR*HP>*M0O_&-]HUE:Z>L5A-''.MS=LERZLJL9$C"D%0&XR><'
MI70Z39MIVC6-B[!WMK>.%F7H2J@9'Y5RVN^%=7U_7+26X?2([6TO([F"\CA<
M7B(K!O+!S@9Z$YQ@_=H FLO$VN:SJ-U)I&CVDND6EZUG)+-=E)I2C;9'1=I7
M"G/5AG!Z5RVG:[KNA#QO?:?H]M=V%CK%Q<W,DUT8W=1'&66-0IR0HSDX'( S
M72Z=X<\1Z%J%Y;Z5J&FC1[J^>\_TB%VGAWMND1<$*03G!/3/>ID\)7*:!XOT
M[[3%OUR>ZEB;!Q&)8E0!OH1GB@"#5_'8BU.RTW3/[.6>XLEOVFU.[^SQ)&QP
M@X!+,2#QV S57_A8L]QH>CWEAI*7-Y?:D^F/;"Z&U)5$F2),89<H#G'W3G&>
M*DN_!-]#J.G:IIQTNXNH=-CT^Y@U"(M%(J<JZD<JP);L<@^U7Y_#-_>1^'7G
M?3X9M-U WDR6D+)&R[)%"J"3S\XY/7!Z=* ,I/&/BN6ZU?3(O#M@VHZ0%EN7
M-\P@>-DW((SLW%R PP0 ,=><5-=?$2.6UT$:='9QW6KV?VT'4;KR8K>(!<[F
MP2S9;  '."> *V;7P]-!XA\2:BT\9CU:*!(T .4\M&4Y^NZN=C^']]8V/AR:
MSETV?4=)L/L$T=[$7@GC.T\=U(9<@X/4T ='X1\3#Q-IUS*T4,=Q9W3VDX@F
M\V(NH!W(^!N4A@1P.N.U8&BZWXD/COQ1#J L?[)L6B9_])<F",PE@4'E\D\%
MLD8.<9KK-"M+RSL"E]'I\<S2%MEA$4C XQU.2>.O'TK''AK48O%^KWJ36<FD
M:S%&MY%(K"9"D9C^0CC!R,Y]Z ,I?'FLQ:/:>)KO0[:+PY=21@,+HFYBBD8*
MDK)MVX.Y25#9 />NI\3Z_!X8\.W>KW"&1( -L:L 7=F"JN3P,L0,]NM<G'X)
M\0S:#9>%=0U/3Y- M7B!ECB<7,\,3!DC8$[5^ZH+#/ Z5U7BOP^GBCPU=Z0\
MQ@,P5HY=N[8ZL'4X[C*C([B@#F8/'NH?:YM/DM=)NK^2QFN[-=.O_/1WC )B
M?Y05)R,'H>?2M2'QI'?_ /"*C3[=9FUU3,07QY$*Q[G8\<D,57'J:FT#2]9M
M+WS=2M?#\,:QE=VGV[K([<<Y/W1UXY[<UG^$_ LOAWQ!J-]+>)-:E7ATV%5(
M-K"\K2NON=S ?110 V?QEJNFZ]IUIJEEI26]_=BT6*WOS)<PLP.QG38!@XYP
M>,]ZSO$WB?6=5T+Q8NE:/;S:3817%E/-)=%)G<1GS&1-I!"Y[D9P<5#IOPWU
M6T71K:2?1_)TO4$O#=1V[?:;O#$YD8]&P>>N3CD8J_=^#?$,<?B#3-*U.PAT
MG6I9IW:>%FGA:5<2*N#M()Z$],G@T 10>,7TO3O#NAV/]G+>/H\%U)+J5WY$
M4<>T*H! )9B0>!T )KJ/"?B-/$^B?;EB2*:.:2WFC242(LB,5.UQ]Y3U!]#7
M/W'@>^M[K2=1T]M,N+RUTR/3;B#4(BT4JIR'4CE6!W=CD&NLT6UNK/3$BO$L
M4GRQ9;&(QQ#)X !)/3&3W]!0!PN@ZKXGU&T\8QZLEBUK;W%U#NCN7=HF$*$(
M@* %.<Y)!R3Q4?@_Q/K.E^&O!<5_H]O'I%]#;6$,RW):8.8OD=DVX"MMZ!B0
M",^E;]GX9U:QU#Q%%'<V3:5J\DMP-RMYT<KQJA']TK\N?6@^$+D^&O".E_:8
MO,T2>TEE?!Q((4*D+]<\9H R=3^)DEM+J]Q9P:6]AI,SPS)<:@([F<Q_ZPQ1
M[2..0,GYB.U>@6UQ'=VL-S"<Q3(LB'U!&17$+X-U72]1U(Z4F@W%G?73W8.H
MVS-+ [\N!M^^N<D#(QG&:[I%V1JO'  ^48'X"@!U%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
MQ72^&=:N/$?A&SU4P"UNKB$YC<$JD@)4\<$KD9'M0!N5!>7MKI]L;F\N(K>
M,JF25@J@L0JC)]20/J:\VF^)M]!H?AF[:T@^T7,[+K" '%M''*L,K 9XP[KC
M.>/SIGCG6[[5?#/BQ(HH6L]/U*PM;4\JTDJS0M)N// 9E7@<8/6@#U.BN*M?
M$.N:3XGDTSQ%)83PR:;+J$<ME"\9B\ME#QD,QW## AN.AXK TGXDZC>2Z->O
M=:=/#J=S'$^F6]M*)K5)#A6\TG#%<C=\H'7'2@#U2BO-[OQ1XNFM_%5_I_\
M9$5GH%S,@2:*1WN5CC5RN0P"<'[W.2>@QSW$=U<:GH$5W8-'!/<VZRPF9#(J
M%E!&X @GKZB@"S>7MKI]JUS>7$5O A :25@J@D@#D^I('XU/7B:RZW-^S[)=
M:A>07BR"V-LOELL@(NER)'9FW9XP0!CWKN+77]>TKQ4FE^(7T^:"YL);V.2R
MB=#"8BN]#N8[AAAAN.G2@#M*:[I&NYV55Z98X%>5Z9\2]0O#I.H&YTZ:#4+F
M.)M*AMI?/MXY&PK^;G:S#(+#:!UQ71?%<E?AY>D*6(N;0A1U/^DQ<4 =D9$#
MJA=0[9*J3R<=:=7G_@Z0:Q%J?C*]97UG][;"U8'_ (ER1D_N,'G<2 S'OD8X
MQ573/%_BHZ7X7UW4ETHV&LSP6SVL$3B2/S1A9 Y;'WN2NW@'&3UH ]*HK@7\
M0^*=7BUO4]$?2X;'2[B:WBM[J!W>[:+AR7#@("00.#TR:DM_'Y-W:W5U%'%I
M-]H)U6W)!WJZ?-+&3G!PK*>@Z&@#NJ*\XT7Q[J^IZ#HB2VMM%KUWJWV"Z@V-
MMB109'8#.?\ 5;3UZL*@NO&'BX:/X@UV!=)6PT2^N(3;O$YDN8XGP?FW80[?
M8Y([#B@#TTD $D@ =2:%970.C!E89!!R"*S-<D$WA74I%SM>QE89]T-<-I6M
M:W::!\/=%T5;$/J>DYDFNU9A%Y<41# *1GACQQGCD4 >FU'+/% %,TJ1AF"*
M78#+'H!GN:\_?QCK]KX<USS[>UFU/2=12SEN((':(1-L;SS$"6.U7R5![=<4
M_4-;:?PYHEW+=:+KRSZY:PQW,-N1&H9P-P7>VV1<GG/'I0!W\LB0Q/+*ZI&B
MEF9C@*!U)--M[B&[MHKFVE26"5!)'(C95U(R"#W!%>?:OK7B37+?Q4=(.FQ:
M9I9ELFBN(W,ERZQ@R$.& 3&[ ^5LD<UG6?C&72M!\(:#;7MGI[RZ%!=S7EW
M\P50BJJJBD98G/). !WS0!ZM17FI\?:Y-X7L;FRM;&74IM;&DEG5T@F!#8E4
M$[@I^4]^XKOM+CU&+3HDU6XM[B]&?,DMXC&C<G&%))'&.] %F&:*XB66"5)8
MVZ.C!@?Q%/KRNR\6WEAX&\,3VL6FZ+97KSK<W@LV>VL]K-M&Q6&W>>Y; Y]:
M])TR66?3+:::XMKF1XPS36HQ%)_M+R>#]3]: +=%>76OC3Q8WA>S\5W*Z2--
M-XMO+:1Q/YKQF?R2X<MA2#CY<'@=><#>EUCQ'K?B+5]/T";3K.WTEDB>6\@>
M8SS,@?: KKM4 @$\G- '9TV66.&)Y976.- 69V. H'<FO*+CQ#XA\2W?@;4-
M.NK73FNY[F*6WDA>15GCCE5]V'7>GR\#@@X.3TKN_%UPUEX#UJYFAMKIX-.F
MD:.:/,4A6,G!7/W21TS^- &ZK*ZAE(92,@@Y!%+7"2:YX@N-?TS0-$73+2.;
M1DO7FFA9Q#\P7"H&&1R !D8ZY/2MKP;KEYKNB22ZC'"E]:W<]G<>1GRV>)RI
M90>0#@'!H Z&BO/9/$/C#4&\33:6=(AM]%NY8D6>&1WN=D:OL.& 3AOO<YST
M&.9XO%VJ^);W2K#P_P#9+)KK28]5N+B[B:;RDD.%C50RY;(;))Q@>] '=T5Y
MO<>.M;M] NO/AM(;^PU8:=?WB022P0Q;=WVCRP=V,%1@MP3R<5;U?Q7J6G>'
M]'NH]4TN6WO)V2XUN&U>6VAC 8JQ17.,D!22V <T =[17 :[XUN=,CT&P35-
M*%SJ4<DLFIB%Y+=8TQ\R1JV26W+@;L#GDU47Q[J[>%M0NHX[>:>RU".TDU"*
MUE,'D-M)N/*SN.T'!4'J.N* /2JC>>*)XTDE1'D.U%9@"QQG ]>*X;4_%>I6
M'A.PU"#5-,O8KF[$4VKV]J[P6\)!/F-&KDYR I^; )YQTJ6ZU5I+KP6\[Z1J
MKWE]*HOH(<H (I&#Q?,=I(4 \GO0!W%%>;MXM\4W7AB^\8V TP:1;&:2.PEA
M<RS01,RLQE#85B%8@;2.G6K\GB'Q%K/BF?2M!DTZVM5TZWOEN;N%Y&'F%_EV
MA@#G:.<C&#USP =S16%X-UR?Q)X4L=4N88X;B4.DR1DE0Z.R-C/.,J2*Y9_%
M7BF^\/ZGXKTS^RUTFR><Q64T+F6XBA9E=C(& 1CL; VGMG- ';ZGKFE:+Y']
MIZC:V?GMLB\^54WGT&>O45=DDCB7=(ZHN<98XYKS2:35-8^*^AWMG=6*V<^B
MM<PQSVC.RPL\.]<AP-YSPV, <$'K6A\5]-@UC1M$TRYSY%WK5M ^.N&#@_SH
M [VFQR)*@>-U=3T93D5YD/$-_?\ PZMM",I7Q%<W1T&9@?F21<B67_OT"^?<
M4>#YCX?^'-REC?:;ID-OJUW")]0R8XHQ.X& &7<W  &10!Z?17D][XLU?6O
MWC6W@U.PEGTJ D:A:P.BS1-"6.U=^4<8(SDCOBM2_P#%.K>&_#N@VU]?Z<VH
M:I($CNVMI!%!$L>XLR;RSMQC@@$L.F* /1*CDGBA*"65$,C;$W,!N;T'J?:O
M-C\0M2@\,>*+I6L[^XT=8I(+R*W>*&X5^Q1F)# @@X;'0UHZI<ZU9KX<;7X-
M(NKBZUR%(T2W8BU#1N?E);EP1@/QP3Q0!WE017MK/=W%K%<1/<6^WSHE8%H]
MPRNX=LCI7GWB#QQ?Z%JQ/]MZ%<HE]';OI<,3F=8WD"Y,F_ D ()!4#^=:_AW
M_DI7C3_=L/\ T4U '7^8@D$>]=Y&0N><>N* ZER@8;@ 2N>0*\I\;6%_-\3A
MJND!FU32-%CO((@?]>!.XDB/^\A8?7%6+;Q=81:_XF\66^9[)?#]G=(H."W,
MQ"^QSP?0T >H45P9UWQ5HL^A76N/I<]EJMU':206L#QO:R2 [,,7(<9&#P/4
M51N_%GBY[#Q/JMD-(CLM!N[B/RI8I&DN4B 8C(8!#M/7!R>P'4 ]*HK"_P"$
MOT6.XLK6>\$-W=I&\4)1B3O^Z,@8K=H **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ KB/&^E:AJGBCPC_9\US:M#<W+M>0Q;Q!^X;;NR,;2<*0<9SCK7;U0U36]
M*T.!)M5U&UL8G;8CW,RQACC. 2>M ',2_#YKW1=?M]1UB2YU+6Q&MQ>B ($6
M/[BI&#P!SWY))K:\2^'!K\=E)#>R6.H6$XN+2Z1 ^QL%2"IX92"01Q6EI^I6
M.K6HNM.O;>\MR<"6WE$BD^F0<5:H Y&/P5+/%K4VJZNU[J>J6+6!N1 (T@A(
M;"H@)[L6.2<GTJ[-X62:+PW']K8?V)*DBG9_KML31X//'WL]^E:NE:K9:UIT
M6H:?-YUK*6"/M*YVL5/! /4&J\WB/2+>34TGOHXCI:HUX9 56(.,J22,'(]*
M ,"Z^'R7.D3V"ZK/ TNLMJZSQ1@/&Y?>%&<C@]S^526_@JYEN=2OM8UIM0U"
M[L&TZ.5;984@A;).$!.6)P2<]ATKKD=9$5T8,K#((Z$4DDB11O)(ZHB LS,<
M  =2: .3NO!<YMO#?]G:PUG>Z%;FVBG:W$JR(T:HV4)&"=@(YX]ZDO\ P-::
MF?$BW5U*8];,#'RP%:!HE4*RGN<J&Z5TMM<P7EK%=6TR303('CDC8,KJ1D$$
M=013+Z^M=,L)[Z]F6"UMT,DLC=%4#)- '.V'A2_.MV6J:[KK:I+IZN+1%M5@
M1&<;6=@"=S;>.P&3Q4;>!8F\"7'A?[>^R:=YOM'E#(W3F;&W/OCK[UT&DZO:
M:W8K>61F,+$@>= \+?\ ?+@''OBKU '*>(/"5_XCF>VN]<QH\DT<K6@LT,B[
M"IPLN> 2N<[2>3S6KXDT"#Q)HLFG3S2P$NDL4\6-\4B,&1QGT(%:U% ',:;X
M6O5UZ#6=<UHZI=VD+PVBI;+!'$'QO;:"<L0 ,YQCM6AX:T)?#FC_ -GI<&<>
M?--O*[?]9(SXQGMNQ^%:](65<9(&3@9/4T 8UKX>BM_$NL:PTWF_VG!!"\#)
MPHC#CKWSO_2L-?A^]OX>TG3K+6I8;G1[II]/NF@#^6AW#RV4GYEVN5Z@\"NL
M&HV9U0Z8+F/[<(1<&#=\XCSMW8],\5:H X@_#V2?3O$T%YKD]S<Z_#''-</
MH\LJI7*J#C&#P.V.IZU>N_"E['KDNKZ'K7]G7-S!'#=I+:B>.;R\A&QN4JP!
M(SG&.U=310!7LH9[>RBBNKIKJ=5P\[($+GUVC@5REWX/URY\51:\OBA4D@22
M&&+^SE(6)V#%2=W)^4#-=G10!Q]_X+OFU/5+G1_$$NF0:M@WL(MEERX787C8
MD;&*@9X/(S27?@/9/HDVB:K+I;Z-:/:VP$*RJRML^^"1N&$Y'!R<Y&*[&J>H
M:I9:4ML;V;RA<W"6T7RD[I'.%7@<9]3Q0!@6'A*_TS3+L6>OR+J][=_:[J_>
MU1A*V-NWRSP$    .1CK5G0_#$VGZS<ZWJFJ-J6JSPK;"7R1"D42DML1 3C)
M.223715475+%K^XL1=Q?:K>-99HMWS1HV<,?0<&@!NJ6U_=61BTZ_6QN-P(F
M: 2X'<;217(6?AKQ!X2\$7FE:7JK:C.8S%8 6RQ&"21SF0MDY"ERW/9:Z?0_
M$6F>([=[C2Y9984('F/!)&K@]"I91N'N,BK\]U#;6T]S+(%B@5GD8<[0!D\#
MVH KR:<;O07TR]G>4RVQMYIE^5GRNUF'H3R:YC2_ M[9WN@37FOFZ@T,,EK
MEFL0*&)H_F());!'(P..G.:ZZQO;?4M/MKZTD\RVN8EFB?!&Y& (.#R.".M3
MT <]HGANYT36]4N8=4,FG7]P]T;)H!E)GV[B),Y(^7ICOUJ+5_"]W=^)8]>T
MS6/[/N_LGV*7=;+,&CW[P5R1M;)//(Z9'%=))(D,3RR.J1HI9F8X  ZDU4;6
M--6UL[EK^V$%ZR):R&4;9F?E0A_B)[8H J>%M 3PQX=MM(2Y>Y6!I")9% 9M
MSL_./][%947@RX@?Q#!'K##3=9\^1K9K<%HI95"LP?/(X)VX[]:ZVB@#G=/\
M*)8:KH]\+MG.FZ6=-"%,>8"8SOSGC_5]/>J=QX%BN/"FOZ$;]U75[J>Y:;RA
MF(RONP!GG'3M7744 <Q?^%[T>(+C6M$UG^SKF[B2*[22U$\<NS.QL;E*L 2,
MYQC'%=!90SV]E%%<W374ZKAYV0(7/K@<"IZ* .)'PVL#?^)KB2[D>+6X7B$)
M08MO,YD*G/)9@&[<BID\!1KX$'AIM1DD=KA;J:]:,%Y9!.)F8C/<C'7BNIMK
MVUO?.^RW$4WDRM#+Y;AMCKU4XZ$>E3T 8MYX=AO?$UOK$LI*Q6,UDUN5X=9&
M4DDY_P!G&/>L[1/"VL:$EI8V_B5GT>T(6*VDLD,OECI&9<\@#C.T''>NFNKJ
M"RM)KNZE6*W@1I)9'. B@9)/L *6WN(;NVBN;>19(94$D;J<AE(R"/8B@#GX
M_",<>D^)K#[8Q&NS3S,_E_ZGS8ECP!GG&W/;K6UIMF-.TNTL0Y<6T*0AR,;M
MJ@9Q^%-T_5++51<FRF\T6UP]M-\I&V1#AEY'./4<5<H X>#X?3Q^#[KPQ)KC
M2Z<TD;6F;4!X%6;S=I(/SYP!GC&*W[WP_%?>)K+69)CBVM9[4P%,AQ*4)).>
MVSI[ULU5MM1L[RZNK6WN8Y9[1PEQ&K9,;$9 /IP<T <[HGA75]!2UL+3Q(QT
M:U8>5;26:-*(P<B,RYY&.,[<X[UJ>*-!7Q-H,NEO<&W626*3S NXCRY%DQC(
MZ[<?C6Q10!STGA6-?$MUK%G=M;"^MC!?6P3*3L!A).O#J,C/<<>]5U\%QKX9
M\.Z-]N;;HT]M.LOE\R^3V(SQG\<5TTLL<$+S32+'%&I9W<X"@<DD]A65IWBS
MP[J]R+;3M=TV[N",B*"Z1W/X YH P[CP-?+)JL&E^(YK#3-5F>:ZMA;+(ZO(
M,2&*0GY-WN#@DD8J3Q'\/=/U[1M'TR&XDL8-,(2/RUW%H-FQXCD]&7 )]JZ9
M=1LWU.335N8S>QQ"9X WS*A) 8CTR#5J@#E[?P5;6_CZ?Q2+IR9(2JVFT!$D
M*HC2 ^I2-5Z>M-?P5&_A;Q!H?VY@NL7%S.TOE\Q><<X SSC\,UU5'2@"G<V
MN-'FTXR%1);F#?CIE=N<5B6/@Z.RE\+R"]9_[ LWM%'EX\X,B)N//R_<SCGK
M73*P90RD$'D$=Z6@#FE\,7EI-K-SIFL&UN=2O5N][6RR*F(U0H5)^8';G((-
M4(/A^J686?4VDNY-9BU>XF2 (KR(5^54!^4$*.<D]3S7:44 <9>>!KN2]U?^
MS_$$]AIVKN9+RU2W5VWE0K,CD_)N &>#[$4\>!YK.+19M)UAK/4M+T]=.-P]
MN)4N(0%X="1W4$888R>M=A10!SEUX9N]2L]*34M7:XN+#48[\S+;J@?9G"!0
M>!SUR371UB3^,?#5MJ?]FSZ_IL=Z&V&![E P;T(SP?:K&M>(--\/V\,VHSN@
MGD\J)(XGE>1\$X5$!8\ G@4 8MEX2U/2/#FGZ/I.OK EJLJ2--8K,LP=BW*E
M@01DCKCGD&MGPYH<'AKP]9Z/;2/)%:IM#OC+$DDG X')/ Z5!+XNT6+4X].:
MZD^TO"LY46\A$2,"09&"XCR ?O$=*U+*]MM1LH;RSG2>VF0/'*ARK*>A% ',
M#P+$/ <7A;[>^R.=9OM'E#)Q<>=C;G\.OO3[WPEJ":Y?ZIH6OMI;:B$^UQ-:
MK.K.J[0Z9(VMMP.X.!Q75T4 <?/X"C@TC0K31M1DL;C196EM[B2(3;RZL)-Z
MDC);>QSD<FMW6=).M>&;[1YKDJ;RT>V><)R"RE2VW\<XK3JK>:C9Z>]LMW<Q
MPM=3"" .V/,D()"CU/!H R[/PTEIXBMM7%TS-!I8TX1[, @.&WYS[8Q4_A_0
MET"WO85N#-]JOI[PDKMVF5RVWKVSC-:]% 'F6G>%-<U&^\8)%K-WI-G?:I*D
MD36@;S8C%&-\3-C:3EEW<C@<9%=!<^"6M[S3[WP]J;:5=65BNGC= )XY+=3E
M5921R#R"".IKH6U6R764T@S?Z<]NURL6T\QA@I;.,=6 QG-7* .5L_"=_I6E
MO%IFO/%J-Q=M=WEY/:K*+EV&""F1M  7 4C&T=>:CL?"&HZ/I"VFDZ^()GN)
MKBZDEL4DCF>0Y.(P1L [ 'OSFNINKF&RM)KJX?9##&TDC8)VJ!DG ]A3;.[@
MU"QM[VU?S+>XC66)\$;E89!P>1P: .1A^'JZ?INC)I6K2VFHZ5YWE7;0JZR"
M9MTBM'P-I/( (Q@8-:_]E>(?[+\K_A)5^W^?YGVC[ GE[,8\OR\YQGG.[.>^
M.*WJ* .1L/"&I:1ILT6F:^(;VYO)+RZF>Q1HI6< $"/(V@8&,-ZYSFFZ=X"@
MTZ+1%6_=WTV^FOW;R@HFDE5PP"CA%R_ &>F/>NPHH X5_AY<BPNM$M_$,\/A
MRZE=WL!;*9%1V+/&LN<A"2?X2<$\UT-EX>BL?$UWK$4N!/9PV@MPF BQER"#
MG_;QCVK9HH R/#.A+X;T&'2TN#.L4DK^85VD[Y&?ID]-V/PKG9?A]="TOM(M
M/$4]MX?OI9'EL5ME:15D),B)*3\JL2?X21D\UW-% &(GAN"+Q-9:Q#+Y:6FG
MO81VX7C:61@<Y[;,8]ZDU[0EUT:9NN##]AOXKX87=O,>?EZ\9SUK7HH Y>W\
M$65OX^N/%:S2&6:'8+8CY$D(56E'^T555Z>OK5.7P!_Q)[>UMM4:*ZM=6DU6
MWG: .JR.SG:R$_, '(Z@]#Q79LRJNYB /4FEH Y&V\#DVWB1-3U:6]EU^%8K
MB00K%Y>(RGR 9P,$8SGIR337\&7\^D:9%<:^S:KI4WF66H1VBKL&S84:/)#
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH *S-<T#3O$5I%;:C%(RPRK/$\4K1/'(,@,K*00<$]^]:=%
M '/:CX*T34YK>>:.ZCN((!;K<6]Y+%*T0_@9U8%Q_O$]_6M?3=-L]'TZ#3]/
MMTM[2!=L<2#A1U_$YYSWINH:I9Z6ML;R1D%S<);1;8V?,CG"CY0<?4\#UJY0
M!B#PGI"ZM>ZDD,R3WR%;E5N)!')E=I8QAMN[: ,XS4Q\-Z4=.TJP-L?LVE/%
M)9IYC?NVC7:ASG)P#WS6K10!R]Y\//#=_/=27%G.R74IGF@%W*L+2GK)Y8;;
MOXZXS6C?>&=,U#6[769HYEO[90B2PW#Q[D#;@KA2 Z[N<'(K7HH H:QHVGZ]
M8&RU*W$T!8.!N*LK Y#*P(*D>H(-4[/PKIEG97UJ#>7"7T7DW#7=[+.SI@C&
MYV)488],=:UIKF"V\OSYXXO-<1Q^8X7>YZ*,]2?2JAUFT'B(:'\_VPVAO/N_
M+Y8<)U]<GI0 R3P_IDMKI=L]N3#I<D<MHN]OW;(I13UYPI(YS534_!VCZIJ3
M:C*EW!=R((Y9;.\EMS,HZ!_+8;L>]:6H:I9Z7]E^UR,GVJX2VAVQLVZ1L[0=
MH.!P>3@>]7* ,+4O!^BZK%8K/!-&]BGEVTUO<R12QI@ KO5@Q! &<DTR[\%:
M%>6.GV;VTT<>GEC:O!<R1R1[N&^=6#'=GG)YK0UK6;30=.^W7I<0^;'%\BY.
MYW"+Q]6%:% &'I6@O9^(]8UJYE5Y[XQQ1(F<1PQC"@YZL2S$GW [<[E%% !1
M145O<P7</G6T\<T62N^-PPR#@C(]""/PH EHHJ(W,"W26K3QBX="ZQ%QO91@
M$@=2!D<^XH EHK/T_6;34[W4K2WW^;I\X@GW+@;BBOQZC#"M"@ HHJIJNI6^
MCZ1>:G=;OL]I"\\NP9.U02<#UP* +=%9UOK=A=:A#8QR/]JFM!>*AC;'E$XS
MNQMSD],Y]JT: "BBB@ HILDB11M)(ZHB LS,<!0.I)JE=ZUI]E;6ES-< P7<
ML<,$D2F0.TGW,%0>#Z]/>@"_1110 4444 %%%% !1110 45%<7,%I&)+F>.&
M,L$#2.%&XG &3W)( JI/K-I;Z[9Z.^_[5=PR3QX7Y=L94-D^OSB@#0HHHH *
M*IZKJEIHNFS:A?R-':PX+NL;.1D@#Y5!)Y(Z"IQ<P&Z-J)X_M 02&'>-X0G
M;'7&01GVH EHHJ*XN8+.!I[F>."%<;I)7"J,G R3[D"@"6BBB@ HHHH ****
M "BBD)"J68@ #))[4 +14<%Q#=6\=Q;S1S0R*&22-@RL#T((X(J2@ HHHH *
M*** "BL_6]9M/#^D3ZG>[_L\)4/Y:Y/S,%''U85H4 %%%% !1110 4444 %%
M%9^MZQ:^']&NM5OBXMK9-\FQ=S8SC@?C0!H44 Y&:* "BH[B=+6VEN),[(D+
MMCK@#)JOI6I6^LZ19ZG:[_L]W"D\6\8.U@",CUP: +E%%% !1110 445%'<P
M3330QSQO+"0)45P6C)&0&';(.>: ):*BNKF*RLYKJ=BL,$;22,%+$*HR3@<G
M@=!3;.[AO[*"\MF+03QK+&Q4J2K#(.#R.#T- $]%9^EZS::P;X6I?-E=O:3;
MUQ^\4 G'J/F'-:% !115#6M8L] TBXU._=EMX -VQ2S$DA5  ZDD@#ZT 7Z*
MJ:;??VE81W7V6ZM=^?W-U'LD7!(Y'/I574_$6FZ7H$NMR3B:QCQF2W(DSE@G
M&#@\F@#5HHHH **J:GJ=EH]@]]J$X@MD95:0@D LP5>G/)('XTU]7L$UB+2#
M<+]ODA,ZP $GRP<%CC@#/'.,]J +M%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
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
ME&'P>V1Z5J001VUO%!$,1Q($49S@ 8% $E%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
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
MGZFCP_J;:UX;TO56B$37MI%<F,'(0N@;&>^,U<%S TY@$T9F49,88;@/IUH
MR]7\)Z!KLD4FIZ5;W,D*;$=EPP7^[D<D>W2I[SP_I%_HZZ1<Z=;OIZ!0EOL
M1-OW=H'3';%7FN(4<(\T:L6"@%@"2>0/K2RRQP1M)+(L:+U9S@#\: *%WI,;
M>&[C2+)$@C:T>VA7^% 4*C\!61X9\":+H%MIL_\ 9EE_:UM:QPR74:=7"!69
M<]"<=< GO72M/"L'GM*@BQN\PL-N/7-8WBGQ"- \*W6M6\<=T(=FU=^%;<ZK
MU&?[U !>^#/#>I:F=2O-%LYKMB"TCQ_?(Z%AT8CW!J35/"6@:W>)=ZEI5M<S
MJH3?(OWE!R%;^\ 2>#D<UJR3Q1,BR2HC2':@9@"Q]!ZUD^$M=;Q+X8L]7>W$
M#7&_,:MN"[79>O\ P&@!+WPAX>U'4EU"[TBUFNAM^=D^]M^[D=&QVR#BG:MX
M3T'7+I+K4M+M[BX1=@E((8K_ '21@D>QXJQK>MV/A_3_ +=J$A2'S(XN!DEG
M<(./JP_"J=]XC6T\3Z/I2I&\&H07,K7'F<)Y00_0YW'\J "^\&>'-26V6[T:
MTD6VB$$2[-H6,=$P.JC^Z>*6_P#!WAW4[J.YO='M)I8T6-2R<%5^ZI X('8'
M.*VHY8Y8Q)&ZO&PR&4Y!'UIL-Q#<(7@ECE4'&Y&##/X4 -NK2VOK.6TNH(YK
M:5"DD4B@JRGJ"/2LS2_">@Z+<"XT[2[>WG"-'YJCYRIQD$GDCY5_*M9Y8X_]
M9(J\%OF..!U-(L\+1+*LJ&-L8<,,'/3F@"DN@:4FF6NFK8PBRM71X(<?+&R'
M<I'T/-9M[X;>_P#'NF:_.8#;Z;:2QP* ?,\Z0@%B<8VA!@<]6-=#O4/L+#<1
MG;GG'K3%N8'D$:S1L[+O"A@25]<>E !<VT-Y:36MS&LL$R-')&W1E(P0?J#5
M671-,G%@);&%_P"SV#6FY<^20, KZ<4S5M7CL/#NI:K;F.X^QVTLP57X8HI;
M:2.G2GZ1J<>IZ;9W&Z-9Y[:.=H5<$IN4'ZXYH >^DZ?)<W=Q)9PO+=PB"X9E
MSYL8SA6SU'S-^=4-,\'^'M&N8[G3M)MK>>,$)*J_,H(P0"><8[=!6N;B$3B
MS1B8C(C+#<1ZXZT/<0QL%>:-26"@,P')Z#ZF@#-@\,:';7M]>0Z7;+/?AENF
MV9$P;[VX=#GOZ]ZCTGPAX?T.Z-SINE6]O/M*!U!)53U5<_=' X&*V6944LQ
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
M'(/B/X7_ .$/^Q[9+.Y-^;%@0\&U=C2D=3YF,%N<YK-\+?\ (,^%W_7W>_\
MHJ>O6;;3[*REEDM;.W@DF.Z5HHE4N?5B!R?K3DL;2,0A+6!1 28@L8'EDYSM
M],Y/3UH \S\$)X5FLTN]<_L\^*3JTHF>=E%TMQYS!%'\6-NT #C'MFL74;'3
M[CP->7-_:VTL=OXPDW23QJPCC:] ?D]%(X/J.M>Q_P!F6'V_[?\ 8;;[9C'V
MCRE\S'INQFG-8VC6\MNUK 8)26DB,8VN2<DD=#D]: .%N+#2;GX@:-I]G#:G
M2I="O81';!1$4,D0(&WC')Z5B^%9+G6=;T/PI>[G;PD\TEZS#B1T/EVI_%&+
M_P# :]4AL;.W\KR+6"+R4,<>R,+L4]5&.@X''M6;HOAX:3JNM:E)<?:+K5+D
M2N_E[-D:J%CCZG.T \]R3Q0!C>/M-@U Z0[7VDQW%K,\\5EJQ'V>[^3:P8>J
M[@0<'![5QMYJ'A[6?^%>7.HV-MINC327J/:,X%N"!M R,*8RX!&>"".*]<O=
M.LM2B$5]9V]U&IW!)XE< ^N"*R]4\,6^IZSHMZ[1K!IJSI]E,(9)5D39CT '
MI@T >6:HR6NC>/T\-&./05N[)?\ 1L^0F=OVK;LZ+MV[MO09K;L-+EM+^]U'
M0[[PW#<_V-.D=EHG!G8 &-RN<':W ;'\6*].M[.UM+46MM;0PVX! BC0*@!]
MAQ45EI.G::SM8Z?:VK/]\P0JA;ZX'- ' >#(?!0\-Z/<6!TXZW+I[%I$9?M,
MDACS+YF/F)SG.[H?PK!TW1M+U+2_A2;[3K2Y,L312>="K[T%M(P4Y'(#<X]>
M:]>@TO3[:YEN8+&UBGF_ULL<*JS_ .\0,G\:D6RM46!4MH5%O_J0(P/+XQ\O
MIQQQ0!Y!XI:X@3Q^+8B.#^T].2Y/(5;<Q1!\[>=N.#CMFM72]&M(M3U"Z36O
M#FFVDVCRPSQ:*WE@)D;9V&<#8"?F_P!KK7I@MH TS"",--_K2$&9.,?-Z\<<
MU7M-(TRP61;/3K2W648D$,"H'^N!S0!P_P /GM-,UF;P\ECHKW-O81R?VGI
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
MUFPN_LZ[I?(N$?8/4X/ ]ZL_VMIWD6<_V^U\J]95M7\U=LY89 0Y^8D D8H
MN452N-8TRT^U?:-1M8?L:*]SYDRKY*MG:7R?E!P<9ZXIVFZKI^L6@N],O;>\
MMR2OFP2!UR.HR.] %NBN'TOQFVN?$"_TBRU?1A8V!6/R ?,GNB8]SLA#@ (<
M _*>C9Q71V?B?0=1U%]/LM:T^XO4SN@BN49QCKP#GCOZ4 :M%9I\0:,NH)IY
MU6R%Y)(T2V_GKO+@ E=N<Y (./<5/J.J6&D6C7>I7MO9VZG!EN) BY],GO0!
M;HK/@U[2+G2FU2#5+.33U^]=).IC7ZMG ZTECK^CZG>3V=AJEE=7-O\ ZZ&&
M=7:/G'(!R.>* -&JNI:=;:MIT^GWBL]M<)LE16*[E/49'.#T/M6'X,\3CQ!H
M5G->S6J:E<>>_P!GC;:2D<S1[@I)..%R?4UOP7EK<RSQ07$4LEN_ES*CAC&V
M <,!T."#@^M $J(D<:QQJ%10 JJ,  =A3JRK_P 3Z#I=\EC?ZUI]K=R8VPS7
M*(YSTX)SS4VH:WI6DY_M'4K2TQ&9?W\RI\@(!;D],L!GU(H OT5136=+DTG^
MU4U&T;3MN_[6)E\K'3.[..M&EZSIFMVQN-+U"VO85;:SV\H< ^AQT- %ZBN1
MU7Q+KB>+IM!T72+*[:"QCO)'NKQH<AG9=JX1N?E[XZU?\.^++'7?#]AJDFVQ
M:\E:W6">1=WG*S*R*?XCE&QCJ!F@#?HK%\1:ZFEZ#KD]I/;R:AIUA)=^0S9*
MX1BA90<[25/IG!I/^$FTVPT+3]0UK4;*P^U0HX,THC5F*@D+N/O0!MT5'!<0
MW5O'<6\L<T,BADDC8,K ]""."*YA_%UVOCFQT!M&FAM+L7 2\G<*9&B +;$&
M3M^888XSV&.2 =717)ZCXDUB;Q!>Z/X<TNTNY=/BCDNY;NY,*AG!*QKA6RQ
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
MUP:CNY)M*\5:1J%[JT.DV4GA^""VN[JT\Z(."3)'DD!&(*GW QVKV"B@#FO
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
M9\)N*HL\98X] H)/M5"]_LK7OB#X-O+5(+NP%G?20.$R@8&(!AQZYP:]!HH
M\8U:PN?^$?\ %<5I$R6<'BN.>XC2#S ( L+.?+'W@#\Q7O@UU'A$6&I>+Y]9
MMO$]OJUP+#[-(EI9^4@7>&4LP)!8<@ \X)KOZ* .!\77-AI/Q$\,:EJ>R*R-
MM>0-.Z97S#Y112<=3AL?2LNWU70]!UKQE;^*D47E]>-)"LT)<W=J8E$:1\'=
MC##:.AKU*B@#Q^*%O#FE?#2Z\2+Y$=FLT5W+.F1#O@<1H_IV'U%-\<:^;M/%
MNE^;8:>/LN(+<Z>TMSJ0:$$.&!& /N@@';MR2,5[%10!Y_H@D/Q"T5W#'/A4
M L?7S8_UKT"BB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *S=8U_3M"2)K^:16F)$4
M<4+RNY'7"H"3CZ5I5R'C34-7LKW28[5]0M]+F:47MWIUG]IGC( \M0NU\!CG
M+;3T'3- &E_PF7A[^PX]:;4XDTYYA!Y[JRA9"VW:P(RISUW 8[U2'Q(\*-'*
MPU-M\3!6@^S2^<<@D$1[=[+@$[@",=ZXBTT;4YO"4T4VG:E(\OBZ*ZVW=O\
MO7A,L9,CJHQC&22!@<UVD5A,/BY=:@;1_LYT.*%;CRSM+^?(2H;IG&#CTQ0!
MIS^+="M]#MM:DU&,V%UM%O(BLYE)Z*J@%F;@\ 9X/I3+;QEH%WI-_J<5_BVT
M\$W?F1.DD&!GYHRH8<>W/:O/M)TW4M&TKP=JMQI-]+;Z7>:B+JVBMV::)99)
M D@CQD@#T&<-D5<OM*U#Q2/&VIV.G75M#J&D)8VD=U$89+J1 YW;&P0/F"@L
M!F@#T275[""[T^UDN LVH;A:KM/[S:N\]N/E&><5C'XB>%1=+;_VLN\S&W9A
M#)LCD#E-KMMVH=P(&XC/4<'-<W!J-WK_ (J\%2P:'J]O;V'G_:YKNT:)8G:W
M90OS#)Y&-WW<D $DU3GT6_\ ^%-^([)=-N/ML]]=2) (#YDF;DE6"XR> "#Z
M8H ZI_'VGQ^/'\,21S!U@C83"&4YE9RNS 3 &,'?G;SCM70ZIJUAHFGR7^I7
M*6UM'@,[^I.  !R23T Y-<M=O-IOQ8CO9;&]EM+W2H[..>"W:5%E$S$ARH.P
M88')P.M3>/[2[D@T/4+:SFO8],U6*[N+:!=SM&%=257^(J6#8]J +]KXVT&]
MM;V>WNY2;) ]Q"]M*DR*>A\ME#D'U -8_P ,M>O/$N@MJM[JLUW-. SV[6@A
MCMB2QVHVT%QC'.6Z=>:9IQF\0?$%]?MM/O;73[?26LO-N[=H'GD:0/A4<!BJ
MA3R1U;BM/X<6ES8_#K0K6[@EM[B*U59(I4*LIR>"#R* +T/BS1KC6FTF&YDD
MNED:%BEO(8Q(HR4\S;LW #IG-0R^-_#T.IMI\FH8E686[.(9#"DIX"-*%V!L
MG&"V<UR]H]UI_C6.+P[#K4=O=ZA(^J65[9,+6,'<6FCE(P"6 ("L0=W05S^G
MZ"8M&N?#&OR^+0[7<NZ"RM ]O.K3%UD601$ '()W."#GI0!Z7J_C+0="O?L=
M_?%+@()72.&27RT/\3[%.P>[8K0M=7L+V_NK&VN%DN;5(WF0 _*L@)0YQ@Y
M/2N,CO9_"OC;Q+/>Z1JEW%JC036DUE:-.'"Q!#&2O"$$'&[ P<YH^W77AWQ[
MK=[-HNIW,6K6EH;7[);F4>9&'5HW8?*A^8<L0,=Z -^?QSX;MM*L=3FU-%L[
MX,;60QO^]V]0!C.?08R3P,U1NO&5M:SW=\+Z.6PCTI+U+06DHG^9V4.3CA21
MMQC(P2>*Y?PWH>H16'PTCN],N%-D]TURLD)_<$QOM+9'R\XP3WQ70ZAIE[<^
M/]9ECMI3#/X<6WCE*D(TGF2_+NZ9Y!Q[T +9^.(=<\,:3JEG=QZ?)<W-K%.E
MS:RNNZ7&8D.%R3G <?+WK6U3QIH&C7LEG>WQ2:%5:?RX))%@4]#(RJ0@/^T1
MZUQ4 N]1^'?A*PCTK4H[K3+_ $R*ZCFLW0KY;*'89'*C&=PX]ZAN-,FT[7O$
M]MJL_B>*WU.[:>$Z5:">&XB>-5VDB)RK#!7!(&,8H [_ %3Q;HFCSQ07=VYE
MEB\]4@@DG(CSC>?+4[5_VC@5JW%U!:V<MW/*L=O%&9'D8X"J!DD^V*\U\06B
MZ'%92^'X_$5OKEII<5M:-'9-<172*#LAGPI4$'.22I&XD&NXU:YUB#PC=W-C
M:QR:REF7CM^JF;;G:/7G\Z (M*\8:'K-Z]E:7<@N5B,WESV\D!:,'!==ZC<O
M/49J31_%6CZ].T.FW$DQ"&17-O(B2*"!N1V4*XR1RI-<!IBW^H>--&U"=?$6
MHV\.GW:W3W^GK;JKLJ9C10B'G!'.1TP3S6KX)>]M-=72]+&L/X9BM"0FK6;0
MM:2!@$BC=E#.NW=Q\V,#YJ .MUCQ+I>@O%'?S2B64%DB@MY)G*CJ=J*2 ,CG
MI5O3-3LM8TZ#4-/N$N+2==T<J=&'3\.01CM7*^+M1U>V\0V5LDFJVNC26SL]
MSI5D+F5YPP"QG*/L7;DYQR>XJ;X8V=W8>!K>WOK>YM[@7-TS1W*A9 #/(02!
MQR"#QP<\<4 :MOXLT:[UEM*M[F22Z61H25MY#'YB@ED\S;LW  Y&<\5GVGC#
M3K#1EO=:UJT9)+Z>UCGC@>--R,_R8.3N 0C/0D<9R,X.GO=V'C2*#P[#K4=G
M=7TKZI8WUDRVT((8M+%*1@$M@A59@=QX%4;#1=0^P^&TETVY_<^*[JYD5H6^
M2,M<%9#QPO*X/3D4 =WI_B_0=2T^^OK>_58+#/VLSQM"T/&<LK@$#'(XYJE#
MX[T/4I9K'3[JX-^+9ITCELIH_E"DALN@&#C@]ZX_QO9SPM\0;B2UD%O=:?81
MQ2%2!*^YU(0]&<97 [DJ#UJWHUS-+XCG?76U,:W=Z9);627&GK;H\2_.X78[
MAGR5)Y'L* -[0_&%O!X%\/ZGKUX3>:A:QMB.$O)/(5RVV.-23ZG P*Z'2=8L
M-<L1>:=<"> L4)VE2K X*LI *D>A ->50Z-J>GZ?X&U*Y36K6WM-':TN?[/M
M]]Q;2,$(+1E&.#M(.%R,"N\\$V%I:6-_<VC:N_VV[:>635(?*DD?:J[@FU<
MA1U Z&@"'2O'VGZIXPU/P\L<R2VDB1Q2>3+B4E2SY^0!,$$ DX;J*M67CWPS
MJ#3BUU19%MX6GFD$3A(T7[V6*X!&1\N<\YQ6;ICS:9\3_$$=Q8WOE:JMJ]M<
M);L\)\N)E8,X&%((Z$CJ*H^'(-:T'X-/_9NFLNM11W$D=M+$58N97()4X).,
M$#OQ0!U&D>+=&UR]DLK&YD-U''YIAGMY(7*9QO =1N7/&1FJ=E\0_"NH75I;
MVNK+(UVP2%Q#($9R,A-Y7:'/]TD'VKF/#T=]>?$;3]1:37[RU72[B*2ZU.Q%
MLJR%XCL51&A'0]<CC@G!JM::+?Q_!SPS8C3;A;R"^M))(/)(DCQ<AF8KC(P,
MDGTH [U_%FC)K1TC[3(]XLBQ.([>1T1V (5I I16((X)!YJ"X\;^'K74OL$U
M\R2B86Y<V\GE+*3C89=NP-GC!/6N8NWNM.\:;O#<.M1W%WJ*?VE9SV3&RECX
M5YUE(PAV@'*MR0 5K"\62^(]:L=9L+J/7FNUU +;6%KIX^R&W252LAEV$L2H
MSP^<\;< T >D:QXQT+0KP6>H7I2X\OS6CCADE,:=-S[%.U?<X%9L7Q"TR3QO
M)X<"RG]Q$\=PL,K!Y'9AMX3 7 !WYVG/7BLY;V;PMX[\275YI.IW<&JBWEM)
MK*T:<-LCV&)MOW2""1NP/FZU8,T]A\4EO9]-O_LVHZ3!;1R16[2+'*LKDK(5
MR$P'!R>.O- &G9^*+.TT:]U'5]7M7@AOY;8210NFTARHBVG)=QC'R]>U6;#Q
M?H>IVE]<VUZ=M@ADNDEA>.2%<%LLC*&Q@'''..*X!-+U2QM[/59-*O)X=/\
M%-[=S6J0DR-$[2*LJ)U;&X,,=1R*OW<-WXCU?Q)KMGIM]!9GP[)IT0N+9HI+
MJ4EGRL; -@< $CDL<4 =5IWCKPWJVI0Z?8ZFLL\ZEH?W3JDN!E@CE0K$#J <
MCGTIWC;69]"\)7MY9X^VL%@M<C/[Z1@B''?!8'\*YV?2KM=&^',<5C,'L[JW
M-PJQ',"BV<-N&/E&2 <]ZT/B<#'X3BOCS'8:C:7<O^XDR[C^ .?PH U;_P 2
M:9X;BMK35+V>6Y\D,QCMI)G8#@R,L:G:"0>>!6K87]KJEA!?6,Z3VLZ!XI4.
M0RGO7'>*M2UB#Q/#:B36+71VL]Z3:18BXDFN-Y'EL2CA!MP1D ')^;BKOPSL
MKK3_ (>Z5:7MO-;W,8E#Q3+M=?WKD9'TQ0!I:=XLT;5M0:QL;F2:4%P'%O((
MG*G#!9"NQL'T)K.L/&>F6?AK3+[6M;M)&O3(L=S#!)'',RECA5.2#@8P>I''
M4"L+PL]U8^*+6PT*'6H]!D$TEY9ZG9-&EBQ^91%(P&<L<;06&"3FJ'A[1=0C
MTSX<1W&FW*FSN[I[A9(6'DY27:7R/EY(P3W(H [NS\8:#?:1>:I%J"K:63%;
MEID:)H2.<,K ,#R,<<YXK-G\>:3?6.JV^E75P-2M;&6Y"2V4T93"$JQ\Q .W
M&>M<CXSM+F >/)6MIE2\N-*6V<)S,X* ^4#@.X('&>2 #5FSFENKO7UU7^TF
M\17VC216\,]@+=7AC#<1A'<,VZ3GYL\C Q0!U5CXNLK+PIH%YK-VQO=0LHI
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
M!0%&><EEQZYK+UWQ=/H5MXQN[62[O[C35B*6KVZ^5;,T.\'*D,R'JQ)R.@H
M[RBO.M?\8SI:>$]3:#4[&.;4Q%<6YA(><&!R%"*26!;;@>HKJ] \36GB"2]@
MBMKRTN[)U6XM;R+9(FX94X!(((S@@]J -JBL/6O$JZ-/Y0TC5KXK%YKM96V]
M47)ZL2 3P?E&3[<BM'3-2M=8TNUU*RD\VUNHEEB?&,J1D<=J +=%<38ZIXC7
MXGKI>IW-J+";3)KF*UMX\A"LJ*I9SRS88YQ@<]#C-,\=MXCTC2=6\0V?B9+.
M"RB\V"R^QQLCX RKLV6)9L@;2N,CK0!W-%5M.N);O3+2YGB\F:6%))(_[C%0
M2/P/%<O>_$G1K&;4$:TU.6/39S#?3PVI:.WQCYF;/3GMD\9Q0!V-%<UIGC?3
M-4UB#38[>_A:ZC>6SGN+<QQ7:+C<8R>3P0>0,CD<55D^(^CQEYS;:D=+2?R'
MU5;;-JK[MI^;.=N[C=C;GO0!U]%<SJGC>PTW6;C2$L=3OM0@A2=H+*V\PF-L
M_-G('&WN1U&,UE:U\15M[;PU>Z/87-_9ZO<JI=("QV%7)51N&),KT/& U '=
MT5Y]=>+IM/\ B-) ]KJUS%-HD$\6G6\)=U<R2;F*YVJ0, DGT'-=CHFLV?B'
M1[?5+!V:VG!*[U*LI!(*D'H000?I0!H45QUU\2=(M7U#%EJL\6FSO#?306A:
M.WVG!9CGIWXR<<D"M+4?%UC8W-M:VUM>:G=7$'VE(+",2,(>@D))  )X'.3V
MS0!OT5RMU\0=#M=(TS4_]*EAU&5H($B@+2&50V8RG4-E2N/7\Z6W\0Q3>)8O
M/N;ZQC.D/=R6%W B+&JR &1VR2&'3&<8YH ZFBN3LOB#I=Y<V*-9:G:VNH2"
M.RO;FVV07#'E0ISD;ATW 9[51\5^/;2TTW7[6R@U.26RMY(Y;ZVMRT-M,8R5
M#.#G(RN2 0N>2* .ZHKG-#UZ$:;X:L[R2:2_U+3UF5RC,&*QJSEFZ _-WZUJ
M:OJJZ3:I-]BO;QW<1I#9PF1R<$^P X/)('YT 7Z*Y<>/=(7P_J.KW$5Y:QZ;
M,(;RWGBVS0L2N,KG!&'4Y!(Q4NE>--/U35CIIM=0LIS ;F$WMN8A/$" 73)[
M9&0<'GI0!K:MI-EKFF3:=J, FM9L;TW%3D$$$$$$$$ @CTJAIGA/3-+U!=05
MKVZO$C,4<][=R7#1H<9"[R=N<#..37'Z_P#$*+4+;1O[)CU6VAN]8M(H;UH"
MD-U'YP#A6ST(S]X#(SC->F4 %%%% !1110 4444 %%%% !1110 4444 %07U
ME;ZE87%C=Q"6VN(VBEC;HRL,$?D:GHH BMK>.TM8;:+=Y<*+&NYBQP!@9)Y/
MU-2T44 %%%% %#6-&L==T]K'4(3+ S*XVNR,K*<JRLI!4@C((-5-*\+:;I-^
MU_&UW<WK1^3]HO+J2=U3.=JER=HR >.O>MJB@ HHHH **** "BBB@ HHHH H
MZ5I%GHMH]M9(R1/-).P9BWSNQ9CS[DU>HHH **** *=KI5G9ZA?7T,6+F^9&
MGD+$EMJ[5'/0 =AZD]ZN444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 5'/"MQ;R0N6"R(4)5L$ C'![&I** *FEZ9::-I5KIMA%Y5K:QB*),
MYPH]^Y]ZMT44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %<A\0-,U6YTZPU30+87&L:7=B>"+<%,BLICD7)(
M'W6S_P !KKZ* /)[7P!JNG>(-%TZ" /H<B6=SJ4V\?\ 'Q;*_&W.3O;RB3_L
MULZEX9U2^_X6+'';A?[8@C2R9G&)6%L$/?CYN.<5W]% '"2VNKZU%X/G?1;F
MR;3M15KF*=XRR(L#J7^5B"-S #O[5JZ3I=Y;>/\ Q)J4L!6TN[>S2"3</G9!
M)N&,Y&-PZ^M=-10!P7B>SUZX\3R@V>KWFDO:*MI'IFH"U5)\MO,Q#JV,;<$;
M@ #P36WX#TV[T?P)HNG7\7DW=O;+'+'N!VL.V1Q7144 >>S3ZZWQ+M]97PGJ
M9LH;"6P+^=;Y):5&#@>;]W"GW]JC\2C7]3\7)'=^&+^^\/6#)+;Q6T\ 6[F'
M.^3?(IVJ>BXY(R>PKT:B@#"GT*TUYK/4K^'4K2Z6-?W"7\L7EG.<,L3[&()Y
M/.?I7-2>'=5;PA\0+(69-QJEW=R6:;U_>J\**ISG R01SBO0J* ./O-%OY?$
M7@NY6W)AT^*X6Z<,/W9: *._.3QQFN731O$J?#U_A_\ V#*92K6HU0S1?9O)
M+D^:?FW[MI^[MZ]Z]8HH Y?2='N[/Q[K-\\+"RFL+."&4L#O9#)N&,YXW#\Z
MY:#P]KFF^!_"8&ERSWFD:LUW<6<4B>88RTP^4E@I.)%.,UZC10!RMA87\GQ#
MGUJ:RD@M9]&MX?G925E$DC,AP3R PY''H34G@/2[S2/#/V2_@,,_VRZDV%@?
ME>=V4\'N"#^-=-10!Y%8W6N2:?XXTC3?#\M\+[5KV&&Y2>-8XW<!6\T,00 "
M#D YZ<5;N_!MUHVMV%VUAJNJV2:1;Z>_]EW[6\T<D.0&($D>Y6!]3@CIS7I-
MGI]I8>?]D@2'[1,T\NT??D;JQ]S@59H X"/PU+&?"+:?HUQ8P6NISW=U!<7(
MFDB#QRC<S%VW%F8'@G[U3^)/#%_K?BG4#&OEVEWX;GTX7)8865Y 0".O3GI7
M<44 >;-:>(?$&F^']!NO#T^G#3[FVFO+R6:)HL0$'$6UBS%BHZ@8!YJ.?3_$
M>EV/B[0;30);X:O<W-Q:WJSQI"JSKR'RVX,IR  #GCIUKTVB@#E-(U2?2Y?#
M'AA[%GN7TSS+MQ(/]%$:(HW  YW,2HY['K3O&\.M2VVG?V8E[+:+=9U"+3YE
MBN'AVG 1B5Q\VW."#CH:Z400K.\ZQ()G4*T@4;F49P">I R?S-24 >1GPGKD
MOA7QE;II5W%+J5W;2VD-U>B>5D419W2,YY&T\%CCH"0!77>(]!O-5\8:5/%&
M1:+IU];33@C]VTHC"\9R>AZ>E==10!Y0NG^*;GPQX9\.OX:EA;1[RR^U737$
M7E/'#(HW1 -N;(&XY"XYZFO5Z** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K,U_Q#I?A?
M2)=4U>Z6WM(R 6()+,>@ ')-:=<K\0?!4/CWPP=)DNFM9$E6>&8+N"N 1R,C
M(PQ'6@"_X8\6Z+XPTUK_ $6[\^)'V2 J59&]"#S6W7#_  S^'<?P]TFZMS?&
M\NKN0/-($V* H(4 9/J>?>NXH *Q-6OS;>(M M!J,EO]KEF7[.L"N+G;$6P6
M/*8QG(Z]*VZYC7]-O+OQEX2O((&>WL[BY:XD!&(PUNZJ3]6(% %G2O%EEK-\
M8+*UOW@W.B7IMF%O(R$A@'^H(R< XX)JCXP\82^&+[18(M.N;H7UV(9#% TF
M$VL<+CJ^5&!Z9K&T*QU*U\8VS:1I.KZ3I;M,^J6MY+&UMN()4P@,Q#%SD[<#
M&<BMGQU:7TJ:#?V-C->_V;JL=U-!!M\PQ['4E02 2"XXS0!EW?C)].^(C6\L
M6ISV\^B07$.GP6S22!S+)N8H/ND* #DCH!UK?/C713X>L]:BEFFM[UQ%;110
MLTLLF2-@3KN!5L^F#56QLKV7XC3:U)9306D^B6\0,NW*R"61BAP3R PSC(]Z
MX]O".L)X=T2X:QO7DTW5[VXFM+2Y\F=H97E :-@PY 93C(R"10!Z+HGB&SUW
M[5' EQ!<VCA+BUNHC'+$2,KD'L1R",@U5U;Q?8:5J1TY;:_O[U(A-+#86S3-
M$AS@OC@9P<#J<=*J>#M-M;>XU&_ATK6;.:Y$222ZM<F628)NQ@&1R -QZXZU
M0?\ M3PQXVU[4ET.]U2SU=+=XGLMA:*2--A1PS+@'@@].30!JW/CS0+;2-,U
M3[3+-::G(8K5H86=G<!CMV@;MV5*XQG/%9'B'QG'?^ ?%%SI37ECJ6FV["2*
MXB,4T#%<J<'U'(-4-,\*:O8VWA'S[4>=%K%S?WB1N&6V$J3$+GO@NHX[T[Q)
MX>U:\/Q#^SV3R?VEI]M%:8(_?.J.& Y[$CK0!V6G:]9WE[>:=YCK=V$44EQY
MBX&UUW!@>XX(SZ@U/H^LVFMZ+;ZM:%Q:3H9(VE782N3S@] <9^E>>_$:PU&U
MO='GTHA+O68#H%P,\A9/F60?[F).?]JN_N='B;PQ-HEH?(B-FUI$1_ NS8/R
MXH QK;XAZ)=7%J%COX[.[F$%MJ$MHRVTSDX 5SZG@$@ ]C6Q#K]C/<:O C2;
M]*8+<Y7H3&)./7Y2*X$V6O:OX.T?P;+X=N[*:U:UCN[UWC^SI' RDO&P8EBV
MP8&!][G&*O7<.N:3X@\616N@W-^FMB.2TN(I$6)&$(C82EB"N"N> <@\<T 6
M=0^(R0:KX;2RTR^N['5[9[G?%:L[E=FY @!Y/]X=ABMQO%ME_;;Z5#::A<RQ
M21Q7$L%JSQP.X!4.W;A@3C. ><5R46EZQH^F?#V^.CW=VVD6;07EM;;#*C/
MJ# 9@#AA@\U-K=EJ9\5?:_#^D:O8:K+<P_:+H2Q_8KF$%0QE7><D)N PH;(&
M.* -70/'$FL>*-9TF72[V&.RG$<4QM7 "^4'/F$]"3G'J"/6KMCXUTZ]U6UT
M][34[.2\#?9'O+-XDGVC<0I/(.,G! .*R[&'6-+\8^*4BTN=EU1DN+.]^4P*
MRVX3$GS;@=RXP >M<[I6D^(+S7O"=Y?V&O&YLYV?4Y[^Y0PK(874F*-6(V[C
MP0!P0.<G !U-Q\2] MY+L,FH-#97+6MY<I:.T5LZOL.]QP!GTSQ@G&:TM8\7
MZ=HVHQZ>\-]>7C0_:&AL;9IFCBSC>V.@SD>IQP*Y:;P]JK?#GQKIPLG-W?WV
MH2VT61F57<E".>XJVT6K>'/&EUJD6B7>J6VI:?;P#[*T>Z&:+=\K;F&%(?.[
MU% %7PQXFN+_ ,.Z#>3ZU.IOM:N($/D"3[2@>8I&2>4&U1R.> *V+SXDZ%9S
M7R-'J$B:?.T-[-#:.\=L0<;G8< ?3)QSBN=TCPYKD6B^%8[K3C%<6OB*XN[J
M-7#"*-C.0V>X^=?S'%7QH.I_\(7X_LOL;_:-1NK][2/(S*'B 0CGN?6@#H=7
M\8Z=I%U]F\F]O9Q;_:G2QMS*8X<D!VQP <''<X/%:.B:O;Z]H]MJEHDR6]RF
M^/SDV,5[''H>H]C7EUY9ZY/XNNK;2DO]\&BV=K>BPF@C9<B0['\X$%L'AE/
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
M=@0#T)Z&N6TK0I]#USP#HES(#<6^CWT<K(<[6(BS@^@)P/I5/P[X5>ST[3M
MUG0O$EQ-:3(K21ZB38L$<%90#*  ,!MNW.1C% '=7GC;3+359]/6#4+IK5E6
MZFM+1Y8[<L,@.P'7!!.,X'6J6C^-I=2\;:OH+Z5>I%:/&D4_V9@!E"Q,AZ $
MCY3W!JCI;:SX5UC7K-?#UYJ*:CJ3WUK=6[QB,B15!60LP*;2O7!R.E7=/AU#
M3/B3KDDFEW4MEJR6S0WD6PQQF.-E8/E@0<XQ@'.: )?&/C"7PQ>:+!%IUS="
M^O!#(8H&?";6.%QU?*C ],U9O_&EA8W$%JMGJ=U?26ZW+6EK:-)+#&>AD'\/
M.1@G.0>*K>.K2^ECT*^L;&:]_LW58[J:"#;YAC".I*@D D;QQFLY9-5T'QAJ
M>N#P_J-]9ZU:6K!+;RS-;2QJP,;J7 Q\W4$@'/UH Z_1]8L=>TJ'4M.F\ZUF
M!VMM*D$'!!!Y!!!!!]*X[3/'=SKMEXFB_LV^LY+%KA()FMF15"1@C>QZ29)X
M],5L^!='O='T"7^T8UAN[V]N+Z2!6#"$RR%@F1P< CIQG-8VGV6J6<WC/29-
M)NV&HW%Q=VMVNPPNKPHH7.[(;((QB@"3P=X^L;[2/#EI>&_-U>VD4:WL]LRP
MW%P(P742$8+9#>Q(.":U-0\>:/IUU=QO'?2P63B.\O(+9G@MFX)#L/0$$XSC
M/.*QY-"U,^$OA]:"S?S]-NK%[M,C,(2!E<GGL3CBL0^&)K"[U[3]2T;Q)J$%
M_?3W$+:;J!2WFBE.2KKYJA2,D'(P1ZT >IW%Y;VEE+>SS)';11F5Y6/RJ@&2
MV?3%8>F>-=-U.^M[1;?4+:2[C:6S-U:M$MTJC)V$]\<X.#CG%.\4: ^K^ ]0
MT&Q(A>:R,$ =N 0OR@GTX )KF_#VF1R:KIL][X?\41WEBK/YE_J!F@@?RRIV
M RG=G) PO?G% '26?C71K^+3&MI)GEU&=[>*#RR)$>//F;U_A"XYSZCU%-@\
M;:9=:J;*V@U">-;@VK7L=H[6XE!P5W@>O&>F>]<EX?\ #VMZ7XT3Q;/I@!UN
M66.\LD"[K!#M\M\YY)V#S,=R.N*TO!K:SX:LH?#$_AZ]F,-W*!J"/&+=H7E9
M_,)+;MV&^[MSD4 :S>/M&2Z*;;TV:W'V5M1%LWV82[MNTR?[WR[ONY[T:EX\
MTK3M4O=,%OJ-W>V05IX;.T:4HC*&#''&,'ZYZ9Q7#Z1X1>QTP>'-9T/Q+?;+
MAAYEMJ1%E-&92RN5\T!>H)7;G([YK5@UF_TCXC^,VM=!O-423[& ;1DRL@@^
M4,&(PI_O#.,=* -/5_B)#::AX;&FV5SJ%AJX:3SK>V=R4\MF 3'\>5Y4\@5J
M0:]!%KNN&[U21+6RLX+B2WFMQ&MJK!R6W]6)VG(/3'O7)6WAS6/#6@>!I#I\
MU_+H\\TE[;V94NOG1R#Y=Q (5G ZU9UWPMJNO7/C9(K=K<:IIEG':M*1AI$\
MPLAP3CDJ#]>] '1:;XZTO4M0M+,V^HV;7H+6<EY:-$ER ,_(3WQS@X.*JW'Q
M+T"WDN@R:@T-E<M:WEREH[16SJ^P[W' &?3/&"<9JA<'6/%VI^'(I?#U[I,6
MF7JWUW-=-'M#(C*(X]K$N"6Z\# _"JTWA[56^'/C73A9.;N_OK^6VBR,RJ[D
MH1SW% '5:AXML;'5FTU+:_O+B.-)9Q9VS2B!&)"ER/7!X&3@=*WJ\V\5:?J7
MVU9]"TC6+?Q"MO%%!J%K+&+:8#G;."V"JDMU7/H:](7=M&[&['..F: %HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
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
M9&*YYP2N1]:\^UG4-4DT.[?1_L&F>7XN^S2^3"X,S>>@5V*N,DG[_P#>''%
M'K]-DD2*)Y)'5(T!9F8X  ZDUPNO^)=;T;4],TRZU'2-/$]LTCZG=6DAMY9@
MV!"H\P;..<LQ]JZG62Y\+Z@9"A<V4FXI]W.P]/:@"_;W$-W;17-M*DT$J!XY
M(V#*ZD9!!'4$5)7E?AS7/$F@>$?!UY>KIKZ-=)9V)@B1_.B610J2%R<'G!*[
M>,XR>M&I_$V\2?6KBQO-)BBTNXD@33IX9&GO/+X?#JP"$D$*-K=.>M 'IHO+
M9KU[(7$1NDC$K0AQO"$D!B.N"01GVJ>O-9IM:O\ XI3R:"UG;M/H%M(\M]&S
M^6IEE( 12,DY]1C!ZUH6WB[4+_P+9:Q)>Z-H]R\\EO=37NYHE9'=#Y:[E+$L
MF0"W0]Z .SN[RVL+<W%Y<16\(*J9)7"J"2 !D^I('XU!=ZUI=A?6UC>:C:6]
MW=';!!+,JO*<X^52<GGBO,=7\3S^)?AKK@N9;2XEL-6MK;[39J5BG7SH&#A2
M20<-@C)Y%:]A;ZO+\:-8=[C3V@CL;;(:V8N(2\I55._ ;(R3C!XX% 'HM%8&
MLZW<Z=XG\-Z;"D1AU.:>.9F!+*$A9QMYXY ZYXK!UWQMJ.EP^-7A@MG.A+;&
MV#*WS^8@9M_//)XQB@#O:AN[RVL+<W%W<16\(*J9)7"J"Q  R?4D#ZFN2M==
M\1:?XLT[3=>&FO;ZI;S2Q?8T<-;O$%)1F8G>,-]["\CI7'^)-:\2^(OATNN2
MKIL>BWUW;-';*CB>*/[2FQB^2K$X&5VC&>O&* /8Z*\YUSQ]=1^(]6TRQU+2
M=/&F!%_T^&25KJ5D#[1M9=B@$#/)SGCBI'\9:_J]QX9MM$M;.VDUG3I+N5KY
M7;[,4,>> 1N^\1CC.0<@ T >A451NYKNVT26;S;-;R.#<TLY*0!P.6/<+U/7
MIWKCO#?C6ZO_ !3-HTNJ:1J\9L&O([K3HFC",KJI1@78$?,""#V- '?T5YEI
M?C3Q7+HGASQ%J$6DC3M4N8+62UA23S5\T[!('+8^]@[<'@]<UW'B76HO#GAK
M4=8FP5M(&D"G^)L?*OXG _&@#35T?.QE;:<'!S@^E.KRCX=F#PUXI_L0:E!>
M'6=/2_D:.99,7J<3C@G[P8-_P$U<D\7>+Y=#US7K:+2%L=&N[J-K=TD,ES'#
M(P8AMV$.T>C9(/0<4 >ET5P\OB/Q#J_BE])T'^SK>V.F6]^+F\B>1E\PN-NQ
M6&<[5[C&#UR,9W_"=Z_=:/H@L[*P75[O59M*NDE+>2DD8DRZD'.W*!L=<9'7
MF@#TFBN*FU?Q--KL'AFSGTM-1AL1>7U]);NT6&<JBI&'!R=I)RW%48O'6K0V
M\,FH6UFILM;_ +)U9H@VP!@/+FC)/RKEX\@YZF@#T.BO/];^(%UIA\03Q0VK
M6=E=V^FVCR;@'NGP9"Y!^X@9> ,\'FJ]E\19K2;54OKJQU:"STR345N;"!X0
M"APT3!F;DY&#GUXH ]"GO+:U>!+BXBB:>3RH0[A3(^"=JYZG )Q[&IJ\KU.;
MQ1<:GX'N=<.F-!<ZI',J6B.CP.8)"$.YB'&"?FXY'0YX](U338]6T][*::XB
MBD(WFWE,;,H.2NX<@'H<8..] %I'61=R,&&<9!S34GAED>..6-W3AU5@2OU'
M:O*='NY= ^!&MW&G$PR6KWZP%#S'^_D4$?3K^%7-5\.Z7X3E\%7VBV<-K=G4
MH+*::)0'N8I48/YA'WSD!LG/(H ]'MKRVO5D:UN(IUCD:)S&X8*ZG#*<="#P
M13Y+B&)MLDT:'&<,P%>3:3J7BC1]!\5:OIJZ8=/T_5]0G>"=7:6X5969\,"
MF #CALD=JO:WI(U3Q,_B2?P8GB'3+G2K;R=S0EXB#(S85R"3AUZ=<4 >G AE
M#*001D$=Z6N5LO&WA2U\.Z3=1WD5E874 -I$8RNU%^7;M .-O3'M74JP90P.
M01D&@!:*** "BBB@ HHHH **** "BBB@ HHHH **** "H;NUAOK.>TN$WPSQ
MM%(OJK#!'Y&IJ* .)T_P'>1'2+74O$$E_I>CRI+9VWV58W+("(_,<$[]H/&
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
M=N/]XXXXXIVG>"[]+W2I-9\0-J=MI)W6<'V58CO"E%>1@3O8*3C ')S78T4
M<#+\.M0:UU73H?%$T6E:M=37%Y;_ &12V)7+,D;Y^4$':<@^HQFMG4-!UYW,
M.D>)$TZP,:QI ;!96A 4#Y'W#'3/S!L5TM% &=H.BVGAW0[/2+$-]FM8PB%S
MEF[DD^I))/UK1HHH **** "BBB@ HHHH **** "BBB@ HHHH **** "D=0Z,
MC9PPP<'%+2,-RE<D9&,CJ* .#\*Z99:1\3/$MEI]K%;6T>GV.V.-<#K+D^Y/
M<GDU-\5)&B\)VTBQ/,R:I9,(DQN<B9>!D@9/3DU<T[P)!INNMK":[K<UU($6
M;SKA&694SM5@$&0,G\ZV=;T2UUZSBM;PR"..XBN%\M@#NC<.O8\9'- '$R:;
MJ5]K.O>)[G1VT>V.ARV2P2O&TMPV2_F.(R0  ,#))Y-06>H&/PCX2L(=>U6T
MN&T2WE%GI5BMQ,P\M1YC$H^U >.V3W->DW=M'>V4]I+N\N>-HWVG!PPP<?G7
M-MX"T]3I[V>H:G8RV5@FG"6UG"M+ GW5?*GZY&#R>: .6M?%'B/6/#7@EX-2
M6TO=5O)K6ZG-LIW*BRC=L/ ;Y V.F>Q'%=+X3O-3C\1>(M!U'49-133FMY(+
MF:-%D*RH25;8 #@J<''>K=CX)TG3[31;:W:Y$6CW$EQ:AI,G<^_(8XY'[QO?
MI6E::+:V6MZEJT1D^TZ@L2S!F!4",$+@8X^\<T <9<Z9>S?&T/'K=Y O]CB;
MRTCA(V"< Q<H3M)&2?O<\$"JPU#Q)K7AS6_%-IX@DL192W7V.P6")H2D#,,2
M[E+$ML.2&&,\5V6I>&+;4=>L]:6\O;2]MH_)+6LH431;@VQP0<KD=L'WK,NO
MAWI=U->A;[5+>QOY3-=Z?!<[;>9F^]D8W#=W"L : ->VU&\U3P=#J=A"BWUU
MIZW$$4A^42-'N53[9(%<-9^,+K1_"FMWMYJ6I7.N6-@)YM,U.U2(Q2=-Z;$7
M=$6XX+<#J":](GLXI=.DL49X(FB,0,#&-HQC'RD?=([$=*PK7P1IT<E[+J%U
M?:M+>6ILY)+^4,1 224&U5 !)SG&?>@#GO#^I^)%\0Z5&\NN7]I=*XOVO]/2
M".%MA97C*J"!N&W:2>H[UDC6_%2>")O%[^(78VE^\:V(MHQ'+$MT8B'.W=NQ
MT((P .,Y-=YH_A4:/<0NNN:S=0P*4BMKFY5HU&, <*"V!TW$TUO!>EMX3G\-
ME[G[#-*\K'>-^6E\TX.,8W'TZ4 9$D^N^(?&6NV%AKDFE6^CK D21P1R>=+(
MGF%I-P)V@$#"D=^:G^%&?^%8:'NQGRGSC_KHU7M3\%6.I:Q-J:WNI64US$L5
MVME<>6MRBYVA^,Y )&5(.#UK3T+1;3P[HEMI-CO^RVP*Q^8<G!)/7\: /)?$
M4^O>(_A1JOB:77'2VN7<#3/(C\I(5GV!=V-^_P"7.[..V*]%L-4O9OB)K.ER
M39LK>PM9HHMH^5W:0,<XR<[1W[50N_AAHUY;W=F][JJ:;<RM,=/CNML$<C'<
M65<9Z\X)*@\XK3U?P=9:MK"ZH+[4;&Z,'V:9K*X\OSX@20K\'H2<$8//6@#C
M;/Q'XDU+0/!P@U807>JZA=V]Q<-;HV43SL87&,@(,>X&<C(-;Q3>ZI:^'O'G
MAS4=1DU*.UTV*ZM[F:-%D"R;@4?8 #@KD' X-;>K?#^-(/">CZ6EVNF:=?33
M231W&R6 ,DC*P;@\.PQC/;.>:V$\ Z7_ &1K%A<7-_=2:NH6\O+B8-/( ,*,
M[0  .@ [T 9.M^*;W0M>UQTVRV]AX:COHX"@YEWRC);&['RKQG%:6F6NLZ=I
M#ZMJOBUY8WL6EG\^VB$4#[0V]-H4A5YX).1W%:TWAC3;G5+N^N$>5KNP&G31
M.WR-""QQCKD[SWK,L_ .GV]E-8W&I:M?V,EJ]HMM=W6Z.*)A@A0 .<# )R1V
M- '.:/K^HOXOTS3H=:UF\L=5M+AO.U#3T@VNBJRR0_NUR.3P01T]:S-#OM2\
M(_#GQ)KL>IW%Z\-]=Q16TT4?EB4W)3S3M4,3DY(SCK@#BNZTWP/9Z?JMAJ4F
MIZK?7-A&\5N;N<,$1E *X"@= .>IP,DXI8O NE1IJ]N\UY-I^J&1IK"64&%&
MD;<[(  5)//7CMB@#%\/:AX@3Q/96TDFN7VG7$,GVN74]/2 02@ JR%57Y6Y
M&TYQQS6GXJU#4G\1:#X=TZ^;3_[1$\L]W&BM(L<2J=J;@5!)<<D' %:&D>&F
MTFY65M=UF^5$*)%>7"LBCZ*H+'W8DU)K_AJT\0?9))9[JTN[.0R6UW:2;)8B
M1A@"0001P000: .=U*77K?6-#\*1Z_+YMXMQ<3:G]GC$_E1[<(HQLW$N,MMZ
M#I6/JWB7Q#H.D^,=._M0W=WI"VDUG?2PH'*3-C:X4!21M(R ,@UUEQX'L;FS
MLT?4=5%[9RO-#J0N<W*LXPWS$$8(P-NW& .*3_A ]);0]2TR::]G;4W62\NY
MI0T\I4C;EL8 &T    #M0!F(VOZ5XRL='O/$,U[%J]C<N7-O$AMIH]GS1X7[
MN'^ZV[IR37*Z-)JF@_"B_P!2@UBXED.J&-(Y88BL>;_8[#Y.2P)SG(&>,5ZI
M<Z+:W>NV&L2&3[38QRQ1 ,-I$FW=D8Y^X,5G'P7I9\,2>'R]S]CDN3<D[QOW
MF;SNN.F[VZ?G0!D)+KVL?$;6-.AUQ[+2],2TF$,4$;-(SAB5+,#A3M.>_(P1
M7-WVN>*X_#'B+Q-'X@*_V1JEQ#;V7V:/RY8DGV[9#C<>#@%2,8[GFO3+31;6
MSUO4=6B,GVG4%A68,P*@1A@N!CC[QS6=-X+TN;P[JFB,]S]DU*XEN)R'&\-(
M^]MIQP,].* ,JRN=<T7QW8Z7J6MMJ5MJ-A-.XD@2,02QLF=FT ["'QAB3QUK
M"@\47L.O:!-9Z_JFJV>HW_V29KC3EAM'4JY#0N$!X*\?,V1GDUZ#=Z%9WNMV
MFK3>89[6"6W1<C84DV[LC'/W1^M8=E\.M,LI--QJ.JS0:9,)K&VFN08X" 0
M %!(P<?,20.A'- &'X1L+^T\0^-+EM<O)E@OF#1/%#ME;[.A#-A 01D# ('
MR#S4>B:YKGB.#PKHT6JO8276B_VE>WD$,?F28*H$0%2J\L23M[#&*[&/PG:0
M:_?:M#>7T1OQ_I-JLH\B1MFS>5QG=M [XXZ53?P%IG]GZ1;VMWJ%E/I,/V>U
MO+:8+,(R "K$J58' X*]NU '+ZEXG\1:5X=\5V(U)9]2T:^LX;>_DA4&2.9X
MB Z@;20'920!Z\'FMBUN/$&C>-4T>XUEM62^TR:ZC^T0I'Y4\;(,+L ^0[^A
MR1CK6H/ ND_\(_=:0[W<B7=PEU<W,DNZ::575PS,1ZHHP !@8&*T;S0+2^UF
M+59))TN8K26T4QR;0$D*ECQR&^48(/% ',^!=6O+F\:SUO5M3_MP6_F76F7U
MM'$J-D O"R(-T>>/O-U&<&K6LWFJ:KXZB\,V.IRZ7;1:=]OGGMXT:60M(45%
M+JP4#:23C/05HZ3X3M],U;^U)M1U'4;U8#;Q2WTJN8HR02JA54<D#).3QUI^
MM^%;36=0M]16\OM/U"WC:)+NQE".8R<E&R"&7(S@C@]* /./%%YJ^I^ /$6G
MW^K2O/HVKP6QN(XHU^U1F2%DWC;@,N\9VXY4=B17J\$<FG:1MNM1>=X8V+WE
MPJ*>YW,%"KQ[ =*R/^$'TC_A&9]"S<F"YG6YN)FEW332AU?>S$<DE1GCIP,5
MOW5M#>VDUK<('@GC:.1#_$I&"/R- 'FFD^);Y?%WAZ*#6]6U33]5:5)7OM.6
M"%\1,ZO"PC4X^7IDY!S[UFP_\@;3_P#L?7_]*)*[;3O %AI][I=T=2U6Z.E$
MBRCN;@,D*E"FT *,C!ZG)X'..*M+X+TM;:* /<;(M5.K+\XSYQ<OCI]W+'C]
M: ,KXN02S_#+63%=2P".+>X15/FKTV'<#@<@\8/ YZU7UYO$.G77A?1+'Q%.
M9M1N9HY[RXMXF?8(F?@*H7(QQQUQG(XKLM8TFTUW1[O2[Y"UK=1&*0*<'!]#
MV-9MOX3MHI-(FN+_ %"]GTN626":YE5F8NA0AL*,@ \8Q^- '-^(KV[L9/[.
MA\5ZT]_:V0<Q6&FQS-N^;$DY\L@ X^Z-O0FJZ>(?$&O)X$BM=3&G-K5A-->R
M1P(YRJ1ME P(!R6QU ST.!74:GX,LM2U>?4EOM1LY+J%8+M+2<(MRBYVAN"1
M@,1E2IP>M26/A#3=/;0C"UP3HEO);VNYP<JZJIW<<G"CIB@#E$U7Q6N@^(M/
MM;J?4+_2M42W%U'#']H:V81NQ5<!&D"LP'&#CIFKB>(+1O"/F1>+M2#&^%L9
MI+!6O5?'_'OY0C'[SOG8>/SK?D\)VQ;4I+:_U"SGU"Z6[DFMI@K*ZH$ &01M
MPHR""*IM\/\ 2VT[[.;O4/M7VX:A_:'G#[1]H"[0^=NW[ORXVXQVH Y./QKK
M.F:%XN'VBZNIM-EM8[*;4[80S+Y^U1YBA5!"L<@X&16KXLT+6;3X?^(_M/BN
M]O$.FRNPDMH%.X(Q8 J@PC#C&,CLPK:@\!:0EIK%O=27E^-85%O7NYMS.5!
M(( VD9[8 P, 8J6S\'6T%G>VMYJ>JZI%=VQM7%]<[]L1!!"A0!DY^]R?>@#
M\[4]"T7P5"-6GN_MNIP12//%%D1-;N?+&U!@ J.?O>]51J'B36O#VN>*;3Q!
M)8BRENA9V*P1-"4@9AB7<I8EMAR0PQGBNHMO!EG!8Z7:S:AJ-VNF7BW=L]S*
MK,K*A15)"C*@,>.N>]5;OX>:7=37H6^U2WL;^4S7>GP7.V"9F^\2,;AN[A6
M- &2-7USQ-XETFRLM6DTFRO= CU*810H\BLS@84N"!]X#)!X'3)S55-<\4W7
M@Y#'/=7$UEK$]CJ-W86\;7+01NZ^8D9!7<2$S@'C.!7=QZ#90Z_'K$8=+B.R
M^PHBD",1;@W QUR/RK/_ .$/MX;26"QU35+!I+V:]:6VF4,7E8LP(*E2N3P"
M#CUH M>&+Z#4O#MO/;:M+J:'>OVJ6-8Y"0Q&'4*H#+T/RCITKS[P]-?^%]%\
M=:ZVK7=\-/O[P_9I8X@DTBHA$C%4# G@$ @8[5Z1H>B6GA_318V9E9/,>5Y)
MGWO)([%F=CW)))K/B\&Z=#J&JW'GW;VNJ[S=Z>\@-N[.H5FVXSD@>N/:@#G9
MKCQ'X<_X1S4KOQ#+J:ZG>P6EY:201+&OG# :(JH8;3C@DY'6KGQ1/F:%I-C*
MQ6QOM9M+6]YP#"SY8$]@2 #]:O:=X"T^PN[&:74-4OXM/.ZRMKRX#Q6YQ@%0
M "2 2 6)QVK<UC1['7M*N-,U* 3VDZ[70DCOD$$<@@@$$>E %76?L.BZ)<ZL
MNGV[MI5K+/ !& 4"QG*J<?+D#'%<7)?^)=&T'0_%%SX@DO?ML]J+NP:WB6'9
M.RC$6%#@KN&"6.<<UTVG>"K6RG62YU;6=31$:-(;^[\R-592I^4 ;OE)&6SU
MJ"Q^'NF64UENO]4NK.PD$MG8W-SO@@9?ND# )V]MQ.* ..UWQ/K-U?ZY!I_B
M"\M=6MM16ST_3+2UCD2:/Y,L6:-LGYF).0%QR*Z&3_A(=5\;ZGH5OXDGLK.R
ML+67S([>)I6D;S 3DK@ [<D8[#&WG.#<^&O$,$^O"VTW6TU2\O9Y[.\L-56&
MS4,?D9X_,'(X+ HQ8YZYKT33=#2SU.;5II7EU&ZM8(+EA@(QCW<J,<9+M^E
M'GX\;ZU>^'?"$!EN8[S5C<B[N=/M5EFVP$J?+0@J"QP2<' S@5>CU/Q6OA?7
MYA=7<#:7(MS97>J6R0M=0JNYXI1@ =&7< O4'UKH3X"TI=%T_389[VW;3I7F
MM+N&4+/$SEBV&Q@@[B""""*EE\'6UWI1T[4=3U2_@>X2>7[3.I,NT@B-@% "
M$@$@ 9H Q?"]RWQ'TB[U34V8:3/=H+;3,KF,0MSYI R2SC)4G& OJ<M\3ZMJ
M6F^*BVHZIJ&D:"(HOLUW:6T<L'FEB'%PS(Q4?= ^Z.3SFNKT_0+/3-7U'4;0
MRQMJ#(\\(8>5O48WA<<,1C//.!5#6_!UMK\\WVS5-5%G<!1/81W $$H&.""I
M8 XY"D9H 9\1.?AOXD_[!T__ * :AT"^UNUT'[3JNE:?!;6]@)(VM;MI7?:H
M."IC7&0/4UOZMI5MK.BWFE76\6UW"T$GEG!"L,'![&LS2/"JZ1,K?VWK%Y"L
M9B%O>3J\>,8Z!10!Q U/Q7#X7\/>)7\1M(=7O+/[19_9HO*CBFD7Y8SC<"%.
MTDELY/0X-=-9:WJ$NH>.(GN,IILBBT&Q?W8-LK^G/S$GG-8^L_#<6EEI<>CW
M&IW45GJEM/#9370,-K&)0SE0<9PN<;BQ Z5T.I^!--U35;V^:\U*W%^BI>V]
MM<;(KD*-HWC&>G'!&1P<T 86DZYJVIW'@J&2_9'U30)I[B58H]QEV0X<97 (
M+$XZ>H-8OAN#7]*^%NHZKI>M74]Q;7-S,EK)#"481W+F0<)NRZAN_!/&*]"L
M?">G:?/HLL+3EM'LFLK;<X.8V" [N.3\@].]&C>&+7P_+?/9W-]);W+O+]BD
MD5HHV=BS;!@$9)/4GK0!G:3XAG\1>,R-.N<Z+:Z;%-* H_>S3_.@SC/RQC/!
M_C&:YGXAZ1/K'CBU2RXU&UT2>\LF'43Q3PNF/KC;]&-='\,_#$GA?PDL%Q;?
M9KRZF>YFAWA_*R<(FX$YVH$'X5T$FBVLGB*#7&,GVN&U>U4!ODV,RL<C'7*C
MO0!YEXMUF#Q]H0%KSI]GH<VL7:]0)FB=88S[JWF-CU05N7&H>5HGARQCUW5+
M.>338Y!::59+<3R *HWDE'VH#QT&2>M;FG^!-$TO2M<TZTCECAUIY6N2&&X>
M8I!5>. ,G YQDTMWX*LIY[&XM[_4;"YL[062S6DRJTD(Q\C94CJ,Y !SWH X
M^R\4>)-8\/\ @WR=3%K>ZE?W-I=7#6JDLL0F&[81A6_=@XZ!NH(XK4L]9O\
M2SXNTS5O$3"'2A;R0ZI/;H9(TE7."J@*Q!&!QSD<'I6[8>"-)TVWT>"W:Y\O
M2;F:YMM\NX[I=^X,2,D?O&QWZ<FGZAX,TG5#K1NO//\ ;"PK<;9-NTQ?<9,#
M@@\]^10!R>D>)M4M/$.J6/VW4KZVCT:3483K-HMLZR(V, A$^0Y'4<8JMX6U
MK6-:UWP\;;Q/J-]%-;-<ZO ;.)([=]JE4SY0*@L2N,DD#.:Z*]\#&*TU6]M;
M^\U'6KG2YK".34I5=&5N0I4*% R.P[G.:Q?#VA:]::AH<=E::_IT-J0-0;4M
M46XAEC"$%$C$C\EL$$!0 /PH S=.\6^*-7TRW\06/]M37$]R&33DTY#9FW\S
M:5\S;NW!<G?NZC&,5T]E+K^L?$/7;4:X]KI6DSVQ2VB@C)EWQ*S*S$$[>O3G
M+=1@5HVO@>UL+DM8:OJ]G9F8S_8(+D" ,6W$#Y=RJ3DE0P')K7LM%M;#5M3U
M*$R&?4GC><,P*@H@0;1CC@4 :-%4-*TJ/2()XH[FZN!-<23EKF4R%2YR5![*
M.P[5?H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M *"U[_W_ &_QK,HHY(]@YY=S3_X2+6O^@M>_]_V_QH_X2+6O^@M>_P#?]O\
M&LRBCDCV#GEW-/\ X2+6O^@M>_\ ?]O\:/\ A(M:_P"@M>_]_P!O\:S**.2/
M8.>7<T_^$BUK_H+7O_?]O\:/^$BUK_H+7O\ W_;_ !K,HHY(]@YY=S3_ .$B
MUK_H+7O_ '_;_&C_ (2+6O\ H+7O_?\ ;_&LRBCDCV#GEW-/_A(M:_Z"U[_W
M_;_&C_A(M:_Z"U[_ -_V_P :S**.2/8.>7<T_P#A(M:_Z"U[_P!_V_QH_P"$
MBUK_ *"U[_W_ &_QK,HHY(]@YY=S3_X2+6O^@M>_]_V_QH_X2+6O^@M>_P#?
M]O\ &LRBCDCV#GEW-/\ X2+6O^@M>_\ ?]O\:/\ A(M:_P"@M>_]_P!O\:S*
M*.2/8.>7<T_^$BUK_H+7O_?]O\:/^$BUK_H+7O\ W_;_ !K,HHY(]@YY=S3_
M .$BUK_H+7O_ '_;_&C_ (2+6O\ H+7O_?\ ;_&LRBCDCV#GEW-/_A(M:_Z"
MU[_W_;_&C_A(M:_Z"U[_ -_V_P :S**.2/8.>7<T_P#A(M:_Z"U[_P!_V_QH
M_P"$BUK_ *"U[_W_ &_QK,HHY(]@YY=S3_X2+6O^@M>_]_V_QH_X2+6O^@M>
M_P#?]O\ &LRBCDCV#GEW-/\ X2+6O^@M>_\ ?]O\:/\ A(M:_P"@M>_]_P!O
M\:S**.2/8.>7<T_^$BUK_H+7O_?]O\:/^$BUK_H+7O\ W_;_ !K,HHY(]@YY
M=S3_ .$BUK_H+7O_ '_;_&C_ (2+6O\ H+7O_?\ ;_&LRBCDCV#GEW-/_A(M
M:_Z"U[_W_;_&C_A(M:_Z"U[_ -_V_P :S**.2/8.>7<T_P#A(M:_Z"U[_P!_
MV_QH_P"$BUK_ *"U[_W_ &_QK,HHY(]@YY=S3_X2+6O^@M>_]_V_QH_X2+6O
M^@M>_P#?]O\ &LRBCDCV#GEW-/\ X2+6O^@M>_\ ?]O\:/\ A(M:_P"@M>_]
M_P!O\:S**.2/8.>7<T_^$BUK_H+7O_?]O\:/^$BUK_H+7O\ W_;_ !K,HHY(
M]@YY=S3_ .$BUK_H+7O_ '_;_&C_ (2+6O\ H+7O_?\ ;_&LRBCDCV#GEW-/
M_A(M:_Z"U[_W_;_&C_A(M:_Z"U[_ -_V_P :S**.2/8.>7<T_P#A(M:_Z"U[
M_P!_V_QH_P"$BUK_ *"U[_W_ &_QK,HHY(]@YY=S3_X2+6O^@M>_]_V_QH_X
M2+6O^@M>_P#?]O\ &LRBCDCV#GEW-/\ X2+6O^@M>_\ ?]O\:]HTMWETBRDD
M8L[0(S,3DDE1S7@E>\Z/_P @2P_Z]H__ $$5PXZ*459'7A&VW<NT445YQW!1
M110 4444 %%%% !1110 4444 8OB[_D5-1_ZY?U%>)U[9XN_Y%34?^N7]17B
M=>I@?@?J>?B_C1NWX_LSP[:6 XGO"+N?U"](U_FWXBLM+>:"*"]DA;[.\F%?
MLQ'45 [O(VYV9CC&6.:"[E A9B@.0N> :ZU%I',Y79VPM)X?'TVJ/&_V!2]S
M]HQ\AC*$C!Z'.0*X>I#<3F 0&:0Q#D1[CM_*HZ4(.._]6'.2EL=3<_\ (?\
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
M\*YT/^]=_P#?P?X5UU%'UBK_ #![&GV.1_X5SH?]Z[_[^#_"C_A7.A_WKO\
M[^#_  KKJ*/K%7^8/8T^QR/_  KG0_[UW_W\'^%'_"N=#_O7?_?P?X5UU%'U
MBK_,'L:?8Y'_ (5SH?\ >N_^_@_PH_X5SH?]Z[_[^#_"NNHH^L5?Y@]C3['(
M_P#"N=#_ +UW_P!_!_A1_P *YT/^]=_]_!_A7744?6*O\P>QI]CD?^%<Z'_>
MN_\ OX/\*/\ A7.A_P!Z[_[^#_"NNHH^L5?Y@]C3['(_\*YT/^]=_P#?P?X4
M?\*YT/\ O7?_ '\'^%==11]8J_S![&GV.1_X5SH?]Z[_ ._@_P */^%<Z'_>
MN_\ OX/\*ZZBCZQ5_F#V-/L<C_PKG0_[UW_W\'^%'_"N=#_O7?\ W\'^%==1
M1]8J_P P>QI]CD?^%<Z'_>N_^_@_PH_X5SH?]Z[_ ._@_P *ZZBCZQ5_F#V-
M/L<C_P *YT/^]=_]_!_A1_PKG0_[UW_W\'^%==11]8J_S![&GV.1_P"%<Z'_
M 'KO_OX/\*/^%<Z'_>N_^_@_PKKJ*/K%7^8/8T^QR/\ PKG0_P"]=_\ ?P?X
M4?\ "N=#_O7?_?P?X5UU%'UBK_,'L:?8Y'_A7.A_WKO_ +^#_"C_ (5SH?\
M>N_^_@_PKKJ*/K%7^8/8T^QR/_"N=#_O7?\ W\'^%'_"N=#_ +UW_P!_!_A7
M744?6*O\P>QI]CD?^%<Z'_>N_P#OX/\ "C_A7.A_WKO_ +^#_"NNHH^L5?Y@
M]C3['(_\*YT/^]=_]_!_A1_PKG0_[UW_ -_!_A7744?6*O\ ,'L:?8Y'_A7.
MA_WKO_OX/\*/^%<Z'_>N_P#OX/\ "NNHH^L5?Y@]C3['(_\ "N=#_O7?_?P?
MX4?\*YT/^]=_]_!_A7744?6*O\P>QI]CD?\ A7.A_P!Z[_[^#_"C_A7.A_WK
MO_OX/\*ZZBCZQ5_F#V-/L<C_ ,*YT/\ O7?_ '\'^%'_  KG0_[UW_W\'^%=
M=11]8J_S![&GV.1_X5SH?]Z[_P"_@_PH_P"%<Z'_ 'KO_OX/\*ZZBCZQ5_F#
MV-/L<C_PKG0_[UW_ -_!_A1_PKG0_P"]=_\ ?P?X5UU%'UBK_,'L:?8Y'_A7
M.A_WKO\ [^#_  H_X5SH?]Z[_P"_@_PKKJ*/K%7^8/8T^QR/_"N=#_O7?_?P
M?X4?\*YT/^]=_P#?P?X5UU%'UBK_ #![&GV.1_X5SH?]Z[_[^#_"C_A7.A_W
MKO\ [^#_  KKJ*/K%7^8/8T^QR/_  KG0_[UW_W\'^%'_"N=#_O7?_?P?X5U
MU%'UBK_,'L:?8Y'_ (5SH?\ >N_^_@_PH_X5SH?]Z[_[^#_"NNHH^L5?Y@]C
M3['(_P#"N=#_ +UW_P!_!_A1_P *YT/^]=_]_!_A7744?6*O\P>QI]CD?^%<
MZ'_>N_\ OX/\*/\ A7.A_P!Z[_[^#_"NNHH^L5?Y@]C3['(_\*YT/^]=_P#?
MP?X4?\*YT/\ O7?_ '\'^%==11]8J_S![&GV.1_X5SH?]Z[_ ._@_P */^%<
MZ'_>N_\ OX/\*ZZBCZQ5_F#V-/L<C_PKG0_[UW_W\'^%'_"N=#_O7?\ W\'^
M%==11]8J_P P>QI]CD?^%<Z'_>N_^_@_PH_X5SH?]Z[_ ._@_P *ZZBCZQ5_
MF#V-/L<C_P *YT/^]=_]_!_A1_PKG0_[UW_W\'^%==11]8J_S![&GV.1_P"%
M<Z'_ 'KO_OX/\*/^%<Z'_>N_^_@_PKKJ*/K%7^8/8T^QR/\ PKG0_P"]=_\
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
M.C-ODW$'!#$#<Q P,FKC6'B/1=2\3VEAHGV^WUJ<W-O=_:4C2%GB5&64$[L
MKD;0<Y[5Z%10!Y./!>IV=KX3OKC2;J_-EHRZ=>V5I??9YHV^5@RL'4/@@@C=
MCH><5J2>%YGT;2ETW0)]/9?$%OJ%S!<7@FDV*1ND9B[9. . QZ5Z)10!QGCG
M39=0: P>'K^]NHHW-KJ&GWJ6\MM(>V693M. 3]X>HK?TN'5HO#%K#?7$<FL+
M:*LTP'RF;;R?INK4HH \ETSPWXCN-5\,7.H:5J?VRPO/-U*]O-5$L<A\MU+1
M1!RH7)'15(R!@\UTVE>&;U_#OB_2[Q?LQU:^OFA?<&_=RKM5^#^G6NTHH \S
M\,^&6@ET>VU/PCJ*W5@4+7LFKF6V5T7 D1#*2<]AL&,UT_C;2KW5]*L(;&'S
M9(M4M+AQN"XC2568\GL 3CK72T4 <)XT\-W-YXFTO7(=.N=3MX+>6UN+6UO#
M;3 ,5971MZ!L%2"I8=1Z5$= M4\+30_\(/>R1W-[Y\UHVHJ]R"% $PD:3AAM
M P'R!W[5Z!10!Y%JD/B33-#\*B\BDNKY/$F^TMKNY5I1#Y<VR.249!?&>>>H
MR:T-2\*ZWXR?Q+?7EB=(>\TM-.LH)Y4=V*NTA=]A( +$#@DXS7HMS8VMZ]N]
MS;QRM;2B:$N,^6X! 8>AP2/QJQ0!P4T'B'Q5J/A^/4- ?28-+O%OKF:6XBD$
MDB(RJD01B2"6R2VW@5#+X9U=OA_XSTP6F;S4;R_EM8_,7]XLC$H<YP,^^,=Z
M]#HH \X\5Z+JUU/&^CZ%>PZW';QQ6NLVM['&BXP2LRE@60'/R[6SVQFI-:\,
MZQ>/X^,5J)#JNEV]O9D.H\V18Y0PY/R\L.N.M>AT4 >?)8>(M<U;PU;ZCHG]
MG6VBS?:+BY-RDBSNL;(JQ!3NP=V3N QC%94W@C5V\.Z:SV#S7&GZU=WCV4=W
MY+S0RO)]R16&UL.K#)'<'%>K44 <KX0TJ"TN+Z\3P]?:5+.L:%[Z^^T2S*N[
M'_+1]H&3WYS4CZ1>/\2_[6\K_0#HQM#*&'^L,P;&,YZ<YQBNFHH \I30?% ^
M'Y\ '0\#:;7^UOM$?D>1OSYFW._=M_AV]>]=?I.CW=GX\US4'AQ97%G9PP2E
M@=[1^9N&,Y&-R]?6NGHH Y?QOI.H:C9Z7=Z7 MS=Z7J,5\MLSA//50RLH8\
MX<D$\9%9>N0^(O$%IIVJ1: UK<Z3J4=W#8W%U&9+E C*XRI*(?GXRQZ<XKO*
M* ."&EZUK_B"_P!<NM)DTU$T>73[6VFFC:65W.XLVQBJCY0 ,]R>*%\.:J/#
M?P_M#:_O])N+9[U?,7]T$MW1N<X.&('&:[VB@#S/Q=I5[:V/Q*U*:';:7NE0
MK;R;@=Y2*0-QG(P2.M6+:U\0>(]1\+"^T7^SK32'%W-<FX219W$11%B"G=@[
MLG<%QC%=]>6EO?V<UG=PI-;S(8Y(W&5=3P014B(L:*B*%50  .@% 'ENIZ+>
MZ'\,KN^NHTM]0TC59]7MM[@@@3LP&03]^-BN/]JKL7A;4SX%T&$0>;J4FKVV
MJZAE@I#-,)92<GG:#C'7Y:[Z_P!/M-3M&M+ZWCN+=RI:*1<J2"",CV(!_"K-
M '(6.B:A#J?C::2WQ'J<B&T.]?W@%LJ'OQ\P(YQ7#C2M=AU?PUI-DD\>IZ?X
M:CCNDMKV.W>++!2"[)(K@E#@ <$9SR*]GK+U;PUHFNO')JNEVEW)$,(\T0+*
M/0'KCVH S/ %W8S^%8[:PLI;..PFELWADE$I$B,0YWCA\DD[N^37*7?P_P!1
MU+Q5K-C<0HOAR=;J\M92X)%U<1+&PVYR-I\U@<?Q5Z79V5KIUI':65M%;6T0
MPD4*!%4>P' J>@#RZU\+^)+SX;>)_P"U;,?\))K,10PB5#PD:QHN[.WG:6Z_
MQUNWMAJ]AXZTG6;72Y+ZV.F-I\XBEC5H&,B.'.XC*X4],GVKM** .%B\/:HO
MAKQ[:&V_?ZK<WDEFN]?WJO J*<YP,L".<5U>B6TMIX?TZUG79-#:Q1R+D'#!
M ",CWJ_10!Y9;>'_ !$_PE?PI+HTD5[9-!''(9XBER%N Y9"&R %&?FP><5U
MU_I5[/\ $+2-4CAS9V^GW4,LFX?*[M&5&,Y.=I_*NEHH \OMO#=[:> O#NF:
MAX8O;R]LX7Q-I]]'#/9RD\;7+KP0>2"1QR#7=>&(-5MO#.G0ZY,)M32%1<2
M@Y;ZCJ>F3W-:U% '">!O =AI=I]NU31+1=:%Y<2B=U61PK2L48$9P=I'N*(H
M?$'A?Q#X@DL= DU>UU6X6[@EAN(HS')Y:HR2;V!"Y4$%<\'I7=T4 >>:)X-U
M/1I? T3*DRZ6MXU[*C *CS*3@ \D;F(&!V[52MO#&OZ7IFA:A#IPN+W2M6O;
MA['SD5I89WE&58G;N"NK $CN.#7J%% ' ^,9=0U#P#>:S>:=_95[I,ZZC9QS
M3H[?NL-\Q7*@L-ZX!/4<\XK9\!Z;/I_A2WEO5QJ%^SW]YZ^;*=Y'X A?^ UN
M7]A::I926=];QW%M)C?%(N5;!!&1]0*LT >2>+_#?B?6HO$MG)IFHW\URS?V
M;/'J@AM(H=HPIB#C+Y!^\I!)'(%=G9Z1?1?$2?57AQ9-HT%J)-PYD661BN,Y
MZ,.<8YKJ** /+[7PQK^DZ=H.HQ:;]IO-*U:^N)+$3(&DAG:4;E8G;N"NK $C
MN.#6]X6LM:;QCX@UK5=,%A#?P6J6\9G61@(_,!#;3@-R#QD<C!.#7944 <+X
MIT_7+GQ0CBQU+4=&-F$A@L-1^R!+C<<M*0Z,5*[<$;L8/RYJAX>\*:SI]GX
MBN+0*VDO=&]Q*K>6'CD5>_S9+#IGKS7I-% '->"=*O=(TF^@OH?*DEU.[G0;
M@V4>5F4\$]00<=:X;Q;X:\4:W;^([.73-1O[FXG9M/N%U016D=OP53R@XR_!
M!W(03SNQ7KU% 'G-WJ&J:=\6M5ET_1I-40Z1:B6*&9(Y%/F2[2-Y"D=<\Y''
M6L6YTO6?#EMX/+V<4^KSZY=7LEFLP50TD<KF-7Z9"G&>F?;FO6$L;5+^2_6W
MC%W+&L3S ?,R*20"?0$G\Z+BQM;N>VGN+>.26U<R0.PR8V(*DCT."1^- 'F^
MJ^'?$'B*Q\9:G)I+6=SJ6G1V-C8R31F1@FXEG(8J"2W'/0<UI:WX2U'6=;UI
M0HBMK[PVNG).6&!-OD." <X 8'.,5WU% '%6=YXONO#LVFIH']E7\.GO''>2
MW43QFX"838JDDJ3SE@,>AK$T'P[K!\7^'M3GT?4[9+."=+V?4=4%RTDCQ@95
M?,8!<@\C&<] !7J%% 'D::'XM?P%<^"W\/A/ML\P&H?:HS'%#).SEG7.[< 3
M@*#G(Y!R*U]<\%:EK$OC>V15ABU2RLHK.9W&'>(.2#CD#)4$X[\9KT6B@#@O
M#>BI_;=G=W/A'4[&YM5<BZO-6-Q'&S+M(C7S7)R"1DJ.*T_&M@-0ALT;P]>:
MIY;,\<]C=)!/:R8 5E9G4\Y.<'MR#7544 >53>$_$ ET#6-9L[K6;J'3GLKZ
M"TO_ ")U)D#HX<.@<@?*PR,GGFKMQX8NX=(TS4-%\/2VMW8ZO_:,FG7-Z));
M@%#&Q,A9@'(((RV/EZ\UZ110!POB"+Q#XAT*VO(] :UNM.U2WO8+&:ZC,EPD
M9!8$J2B$Y./F/3G&:J_V9XAUCQ!KVJW6C&QBN]!^PVL3W$;R%]TAP^TD*3N[
M$C&.<Y ]$HH X75?#VJ7/PET[0X;;=J,,.GH\.]1@Q21%^<XX"MWYQQ5O['J
MNG_$NZU&+3)+K3]1L[>!KB.5%^SM&TA.Y6()&''W0:Z^B@#RF;P1J[>'--=[
M!YKC3]:N[Q[*.[\EYH97D^Y(K##8=6&2.X.*UK70K8:1J\G_  @U\WVM8HI;
M6]U%99KE%)/!:5E7;G(^89/IBO0** .3\#6&KV%OJ*WZ7D%@TX.GVM]<K//#
M'M&0S@MQNS@;B0.]9NJ:)XD6_P#&UYHX\BYO[>T6PF\Q07**P<#^Z<' ) Y(
M-=]10!YSX8\/ZA%X]35Y-&U"RL/[*EM6.I:E]JE:4RQMR/,?:" W0]CD#C.'
M;> /$,5AJJ-;+YVD;(_#I\U<R*ERTX)Y^4D>7'SC[M>Q44 >=Q^')[?P+96F
MK>'9M6O+BY>^O4M;E(YH+B1F?>CEE&5+;<JPX'<5J^'/^$HTO0M+MK^RDOII
M;QTF:>[0RVEL2Q0NW25@-H..N>M=?10!S/Q!TF]USP3?Z=IT/G74K0E$W!<[
M948\D@= :6STJ]B^(VJZJ\.+*?3K:".3</F=7D+#&<\!AV[UTM% 'F-OX;N[
M7P3I>FZEX8O+^XAN+J4/8WD<4]HS3.R,C;UZJW.&X[@]M#2]"\1G4?!5WK'^
MD7%A;WB7TYD4E#(%$8)XW' P2!U!/>N^HH \B?0?%L?P\7P3%X?WFUE11?FZ
MC$<T23B0%5SNW$ 9#  <\]!6EJ?A>YM/&6LZE)H6HZO::F8I(FT_4S;M"ZH$
M974RH"#M!#<XZ5Z710!Q5GX<GM/$GA6XL],%GIUAIMS#)#YP?[.S^453).6^
MZW(STJEXHTC5KKQ&;K0]$O+/5?-A5=8AO(U@EB!!831[LO@;@ 4)Z8->A44
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
M0JAW<<<@^M<-;_#K6OM&EFYL=&DN['58[R?67F=[J[19=V,%/D.WMN(X 'J
M#H[_ ,>7T-YKD&G^&KB]CT5\74WVE(U*^6K_ "9&6;!/R^PYY JS<^-FEO=,
ML]$TW[?<7]@-1C$URMN/).,8)!W-ST[=S3K7PW>PGQ@6>'_B<2E[;#'@&!8_
MFXXY4],\5BZIX1U>Y\(Z1H1T;1[]K738K=;N:Z>*2TN%0*9$(0DKP",%3QS0
M!TFLZWK=@I>Q\-O>11P":5WO(XL'DE%'.YACV'(YJG-XY6XM]$&BZ;+J%[K%
MM]LAMVE$(CA 4EI&.<<L!P#DUA:GX&UFZU#==P:9K\3Z=#:1RZI*P^RRHI#R
MB/:P;>2&Z@Y&,XYJ:R\(Z_H-OX7O]-6QNM1TO3#IUW;33-&DJ':<HX4X(9.Z
M\@]J 'ZWXK\4VVO>%X+;06B%\TXN+22ZBS(R(_R;L' &T.&'4$# J\WB2PTC
M7/%5Y??;(AIUE:SW :X,D>&63"QIT5LK@G^(D=*-8TGQ->MX=UA8=,DU;3+B
M:26U$[I"R2(R860J3D KR5Y(/ Z5!JO@B\UN?Q:+F>&"/6K*TAA:,EC')$')
M)&!QN9?J,]* +EKXQOX]4TVUUSP]+I<6IL8[2;[2LO[S:6"2  ;&(!QU&1BL
MZX^)-S#:ZGJ">&KF32]*O);6\NOM" @1R%"R)U? P3TQG&3@U9&D>)]?U719
M/$$&FVEKI-Q]J/V2X>5KJ8(RJ0"B[%&XG&2>@J*;P;J3^ _%.B"2V^U:K=WD
M\!WG8%ED++N..#@\\&@#H/%MW%:^#-8O)#.88K*25OLTIBD("D_*X^Z?>LFX
M\77-KJ=CH>EZ)<:C=S::EXA:Y5%5,[?WCL/8<\DD].IK6\2Z1<:OX*U/1[9H
MQ<W5C);QER0NYD(&3CIGVJG8>'KRV\8VVK.\)MXM%2P8!CN\P2;LXQ]W'?\
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
M\ (5A)(S X/3KTYQZFLN/PWJECI6N6_]FZ5JJ:CK$UVUI=RE4>!P,#.Q@'!
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
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "J[V-G)<K<O:P-<+]V5HP6'T/6K%% !1110 444
M4 %%%% !1110 4444 ,BBC@C$<4:1H,X5%  SSTI]%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %5WL;.2Y6Y>T@:X7[LK1@L/H>M6** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BN%'Q!NXTN+^YT'9HL&I/I\EY'>!W0B;R@YC*CY=V.
MC$C/>NG?Q'HD>K+I3ZO8KJ+$*+4W"B0D]!MSG/M0!IT5D:AXI\/Z3=FUU'7-
M.L[@ ,8KBZ1& /3@FI;OQ#HMA>PV=YJUC;W4^#%#+<*KOGI@$Y.>U &E148N
M(6N&MQ-&9U4.T08;@IX!(ZXX//M6'XP\4Q^%-%:\%JU[<MN\FU1]IDVJ7<YP
M<!45B3CMCN* .@HJO877V[3;6\";!/"DNW.=NX XS^-5+7Q'H=]J$FGVFL6$
M]Y%G?;Q7",ZXZY4'/'?TH TZ*Y#PIXQ'BG6M52UO-*DL+25X8HX)M\[A2H$I
MP<;&);''8<U:NO$>HS:U>:;H6D17S6&P74UQ=^0BNR[A&N$8LVT@G@ 9'- '
M2T4@R5!(P>XI: "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** /._"_@P7B7L^L2:EY2ZW=7,6GR
MML@;$[-&^W:"PZ,,D@\'%9/B5];U.ZN[(V5]&\.M6\D%M:Z63$\*S1GSVGP0
M21DG:01T(P":]:HH \9O;AO[5\1F]$\7A]-<2ZNKJ&P,Q4PB(\3!^!E!GY"5
M^89]+FJ:3/\ VOXJLM4GUI+75Y@\1L-+%TEQ"8E4+Y@C8HRD$8)4#@CKFNZN
M/!/A^ZNYKB6RD/GR^=-"+F402OG.YH@VQB2.<KS704 9%FMI%KTD"Z=<?;([
M*(/J,D Q*F6 3S.[ @DCMNSWKEO&OA_Q%=2:WJ=C)8W$3Z3+:06\D4C2QJRD
MR"/:<%W.WM_"H^OH%% '.Z;9ZL_P_BLIVCAU-M/,2F,,@1BF$Z\@CC/N#7':
M= ]_8>"]'L]"O[&^T>XADO))K-HHX%2,K(!(1M?>3CY2<YR:]3HH Y?P5936
M2:]Y]L\!EUFZDCWH5WH6&UAZ@]C7%:YHD=OJ?BV.YT;5[K4K^7[1I%S9I,4W
MM"JC#J=D;*Z\EL<8ZCBO7:* *VG1W,6EVD=ZXDNEA19G'\3A1N/YYJS110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
G%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 ?__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>18
<FILENAME>a2024insidertradingpolic005.jpg
<TEXT>
begin 644 a2024insidertradingpolic005.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBFR2)%&TDC!40%F)[ 4 .HJKIVIV.KV:WFG7<-U;.2%EA<,K8X."*M4 %%
M0W=Y;6%J]U>7$5O;QX+RRN$5><<D\#DTZ>9+>"2>3=LC4LVU2QP/0#D_A0!)
M15;3]0M=5T^WO[&836MP@DBD (#*>AYYJS0 45%<W,%E:RW5U,D-O"ADDDD;
M"HH&22>P K%;QOX6569M?TX*JAF)G4  ]"?8T ;]%%% !15+5=6LM$TZ2_U&
M8PVL>-\FQF"Y..=H.![U/]LMOMWV+[1%]K\OS?(WC?LSC=MZXSQF@":BBB@
MHJKJ.I6.DV;7FHW4-K;(0&EF8*HSP,DU%8:WI>J2R16&HVMS+$ 9(XI0S(#T
M)'4"@"_103@$^E9EKXATF\L$OHKZ(6SSFV5Y<QYEW;-F&P=V[C'K0!IT444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !0>E%-D
M3S(W3<R[@1E3@CZ&@#R?P]J&I:;\*O!;:9=BWDN-0BM9-T2NK))*X.0>?R(^
MM;T>J>)X_P#A+]+LYUU/4--,+6+RQHC,)$#%2  I(PV,XSQFMF+P1HT.C:=I
M,:W*V>G7"W-LHN'RD@)8'.<D DG!XJ:;PEI<]SJ5RQNA-J+1/.R7+J=T1!C*
MX/RD8'3\<T <=JOB&XE\#^(+VUU>[EN+-H0UGJ5A$DULQ8921=@5@P((..W!
M-;\^HZCK'BG7=(MK]["WTNTA;,4:,TLDH<Y.]3\H"@8&"23S5^Y\&:1>:?J%
MG<K<RKJ+(UW*T[>9+LQM!8'@# X&!^9J2[\)Z7>ZF-1E%RMR8!;S-%<.@GC&
M<+(%(#8R>OJ1TXH X;PWKE_:^%O >BV*W ^VZ:\\TELL;2A8U7"KYGR\EQDG
M/ X'.1IW>K^++;3-!6ZD-E>W&MFP<R11.)[<B0I(RKD*V%4X4CG/MC?'@C1D
MTK3=/C6ZC73,_8IH[EUEA!&" X.<$<8/'Y59N/"NFW-OI\,GVHK87(NH6-RY
M;S>?F9B<L>3USUH FMM)FET.?3-;O/[5$XD25WB6+?&Q.%(7 X4XR,9ZUS-O
M8VNH?$OQ387<"2VL^D6<4D1Z,I,P(KNJR[?0+&V\076MQ^?]MNHUBE)E8J57
M[HV]!C)_,T <[!-X@U/QAX@TVVUW[+:Z?+:O$#:QR$JZ;G0G ^4X(SUY'/'-
M2;Q+?0ZUHCV^L/?6][JCV4ZI9!+785D(\N0KDLI0 D.02&X'0=?9Z'9V&L:A
MJD'G?:K_ &?:"TI96V#"X4\# XXK+A\!Z';_ &41I=A+.Y^U6J&ZD*P/DGY%
M)P!\QX]Z .,\6ZCJ/B'X>^+[]K][>WM+N6SBM$C0JR12*A+DJ6W,<G@@#CCK
MGKS<W+?$V?3Q/B!]%$RD1)OC?S2O#;<D=\'(SVI]]X!T'4!J2317(AU%_,N8
M([J18GDXR^P'&[@<XZC/7FM%?#UDNL_VOON3>_9/L?F&9O\ 5YSTZ9SSGKF@
M#A]$\1>(WTGP;J]YJJW"ZK>FSN;;[,BJ05E(<$#(8&,=#CGIW+KOQ#K]W>7-
MO:ZE/;ZBFNBR73X;>-L6FX RY9&/W#OW$[1TQ750^"M'M].TJPB6Y6WTJ?[1
M:+]H<['YY)SD_>;@^IKDCX6\0I;7WV1]9L]7GO9IXYH-046*EY2P;RRY.W:>
M5VY)S]: -SXJ@CX7:V"2Q$*<GO\ .M0:I;ZC::S=>-KRSAMX])T>X2.W2;?)
M.>'.\@ !1LX'/))XKJ=<T2R\1:1-I>HK(]I-CS%CD*%@#G&1SU JY]FC:T^R
MRCSHC'Y;"7YMZXP=V>N>] '$VVM:S8W7A&:[U#[;%KH,=Q#Y2*L3F$RJT14
M[1M((8MP1SFL2RN[BQ\(P2V\BKN\7/"ZO$CAE>^93]X'!YX(P0:[K3_">E:9
M/:2PI.YLHVCLUFG:1;92,$(">..,\D#CI4 \$:.-,73O]+^SK>_;P/M+[O/W
M;]V<Y^]\V.F: *,%[K/B/5?$$%AJITQ-,NDM(%6!) [!$=VD# D@[\ *5Z9Y
MK.N=<URVO/$.AG4W.JFZMQI+F&/B&;H<;?F"E9=Q/9.,&NGG\)Z7/K$VIXNH
MI[C9]H6"YDC2?:,*752 V!Q[C@Y%4;#2KG5/%J>(=4TE;&6RMWM;93,LCON;
M)<E> ,#"]_G?..* .FB1HXD1Y&D95 +L "Q]3@ ?E3Z** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M *K7^H6FF6C75].D%NK*ID<X +,%&?J2!^-6:SM?TB'7_#^H:3/Q'=P/%N_N
MDCAOJ#@_A0!9N[^UL!";J=(O/F6"+<?OR-]U1[FK%>:>&]4F\9:SX>2Z&9-#
MM'GU!#SB]RT"@^A&R=OQ%5?#%]XMUR+2M=B34"UQ>YNO,NX?LH@\PJR+%G<"
MHZ'&[*\]: /5:JW^HVFF6ZSWLPAB:1(@Q!.6=@JCCU) KA-(MO$&K:=XEO[;
M7[K^T$O;^ST^&5@((0LC*F1@Y(/0GH,#'K7DUNYM/#MQ;13ZO:ZI:ZI8174-
M_.LSQB2:,';(N0R,I/?UX'2@#TVBO-+VZU#4[/QAK#:_>Z?-HMQ-%:00R*L4
M8BC5E9U(^?>3DY[$ 8J6!]6\3^(IH)M8U#3(1H=G=F"T<(5GD,N3D@D8QT[X
M&>E 'HU9^K:[I>A0QRZG>Q6RR-MCWGESC)  Y/'I6'X4O;_7/#GA75KG5#%+
M):^9<P*BXNV,>.>XP?F^7^5;>KKJ+6ZC2'L$O^=IO$9EV]\!2#UVT 6-/U"S
MU6PBOM/N8KFUF&8Y8FW*PZ=?KQ6?=>+- L=672[G5K6*]+*OE,_(9ON@GH">
MP/)K"^&D\,/A>:UEVQW5MJ5S;W+&0%);CS"S&,X'RDMP,9'3MFN;N3 WPH\>
M?:=IN3J&H"3/7S?,_=?CCR\?A0!ZU145KY@M(?._UNQ=_P#O8YJ6@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@"E9:1I^FW%W/96<,$MY+YUP\:X,K_WCZFJ:>$M CU4ZFFDV
MRWAD\[S N/WG]_'3=[XS6S10!0.B:8UA=6+6,)M;IWDGB*Y61G.YB?<GFJ]M
MX7T.TLFLX-,@2!YDG=<9+2(058D\D@J,9]!6O10!C7WA+P_J>I?VA>Z1:SW1
MV[I'3._;]W<.C8[9SBM%;"U2^EOE@074T:Q22XY9%)*@^P+-^=6** ,Z'0=*
MM_[.\JPA3^S59;/"_P"H#+M(7TR.*35_#^DZ\L2ZI80W/DDF)G'S)GK@CD9P
M,^N*TJ* ,Q/#NC1V-G91Z;;):V4RSVT2Q@+%(I)# >N23GWJ*?PIH%UJXU:?
M2;62^#*_G,G)9?NL1T)'8GD5L44 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !112!U+E PW 9(SR!0 M%%% !1110 4444 %%%%
M !12,ZHNYV"J.Y.!2T %%%(75652P!;H">M "T444 %%%% !112%U#!2P#-T
M!/)H 6BBB@ HHI-Z[]FX;L9VYYQZT +1110 44A=0P4L QZ#/)I: "BBB@ H
MHHH **1G5%+.P51U).!2T %%%% !1110 44PRQB41&11(1D)GDCUQ0DL<N[R
MY%?:=K;3G!]#0 ^BD5U?.U@<'!P>A]*6@ HHHH ***165UW*P8'N#F@!:***
M "BBB@ HHHH **** "BBB@ HHHH ***8)8VVXD4[_NX/WOI0 ^BBB@ HHHH
M**** "BBB@ HI%=7SM8-@X.#G!I: "BBB@ HHHH **** "BBB@ HHI-ZAPA8
M;B,@9Y(H 6BBD#JS,H8$KU /2@!:*** "BBF++&[NB2*S)PR@Y*_7TH ?111
M0 444@96) 8$@X.#T- "T444 %%%% !1110 4444 %%%% !1110 44C.J#+,
M%&<9)Q2T %%%% !12*RNH96#*1D$'(-+0 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 55U*_@TK2[O4;IBMO:PO/*0,D*H)/Z"K54M7TV
M'6=%OM+N"1#>6[P.5Z@.I4D>_- '/Z;XGUIM..LZSHUM9:.;-KP21WADEB0+
MN D0H!DK_=)P>*I1>-M:@ATK4]5T&WM=&U2:*&)X[LO/!YO$;2)L P21G#'&
M>]6-/\/^))]%?0->O-,DTO["]DTEK&XFG!38&.[A#CDXSD^E5(?"7B6]M-(T
MC6K_ $U]*TR:&4R6R.)KKR<&,,#\J<@$X)SCC% #+_Q]K,*>(+JS\/0S6&@W
M#QW4LEYL:1%56/EKM.6 .3D@=,$YXOZ=XOU.77]*L]1T:.TL]9BDDL)%N?,D
M&Q0^)5V@*2O/#-C&*'\'W;:!XRT\7,/F:[/<2PMSB,20K& W'8J3Q5R;PW<2
MZMX4O!/$$T9)5E4YS)NA\L;?QYYH P'^(6M?V/J&N1>'(6TG3+F:&Z=KS$KK
M'(59XUVX( &3N(YR!TR8=1N[<>)O&UZ\9N+8>&X)2BR&,R)B<X##E<CN.167
MH.A>)->\*ZSI-M?Z?#H]_J=[',\D3?:(4,[AU3'RMN&>3C&3UXKK;[P9//=>
M(VMYX4AU/1DTV!6SF-E609;V^<=/0T 22ZQJMIH6ER:3I^FK:O91R;]1U%H@
MI*C$8.UBQQ_$<?C5+_A8,]UI'AB[TS1C<SZ\TB) ]P$\IT1B<M@Y4%3DXS@9
M )XJ*\\$:F=4TZ]@&CWHM]+CL#%J43.D#*<F6, <D]"#C.!S4NB^!KS2[7P=
M"]W _P#84MP\Q4$>8)$D4;1V^^.OI0 \>/IK#2M??6M,6+4=&EBB>WM9O,2<
MRA?*V,0#\Q8#D<59NO%.KZ!H6H:IXDTBU@BMHU>+['>>;YCLVT1G<JX;)49Y
M'/M5;5_ DVK2^*BUZD/]K-:26KJI8PR0 8+#N-RC\*DU'PYXA\4^'=1TKQ#=
MZ7 )XT$!L8W<+*K!P[;^HRJ_+CIGF@!VB^,[FZ\16^C:G!IJS7<#SV\FGWWV
ME04QN1_E4AL,"#R#@^E:WB77F\/6]A=-;"6VFOH;6X<OM\E)#M#].<,5&..M
M4O#^D:M9WXEU#3_#ELBQE=^G0L)';CG) VCKQS]:TO$^B+XC\,:CI#.$-U R
M)(?X'ZJWX, ?PH Q(OB!:'Q'XETR>W,<.BVWV@7&[B8*H,H QQM+*._6JECK
M5SJ'B33YET=(]:N?#INU62]<1IF1/W3 *1U89?;D8Q6;>_##4+[1=)@EU. 7
MXGG.K3A2!<Q3R!Y57C_94#/85V)T*7_A.XM>62,6Z:8]EY7.[<95<'TQA<4
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
M2*W=TZ,40*2/;B@#,\0>(KZRUFPT/1K"&\U.[CDG/VB<Q10Q)@%F(5CR6
MKCM!\4R:!8^,-5U'3_*O)-=6!;/SUP9GBA55\SIMSSN(Z<X[5UOB#0=5F\1:
M?X@T*>S6^MH)+66&\#>7+$Y5NJ\@AE!Z<UAGX>:C=Z)K,&H:E:2ZA>:I'JD$
MRP'RDD18\*R$\KE"N,G@^M $R^-M4N#J>E"VTIM6CT]KVV>SU RP,@8*P+;,
MJRY!QM(.1TJ#2/&FJZ9\-](U;6[:VFN[U+:&S*W>/M+R*,-*S(!'W8XW8 -;
MNCZ'J*"[34;#0;-)K=H0=,B;>2>I+$#CVP?K6(G@;6;GP1I^A7]SIAN-'F@D
MT^58G>.3R@0!,K=F4D$#IG- %JV\>S*NMV][;6#WVFZ<VHH;"\\Z&>,!N-VT
M%6!7!!'<&HW\=:W;>&X-<N_#D:PWL]K'96R7>9I!,V/FRH53RI R?O<D8J[%
MX<U6YT36;*ZL] L9+VRDMHCI\3?>92,NQ XY' 'XU/J7A>YO?#&A:4D\2RZ=
M<64TCG.UA RE@/KMXH S4\7>*7URX\/_ /"-V0U9($NT?^T#]G$+$CYFV;MV
MY=N N#UR .6_\)/:Z]8>#-4ETV19+W4FB6/[2R_9Y524,3MXD *,,'@YS701
MZ',GCNXU\RQ^1)IL=F(^=P99'<GTQAA6'I_@>\L]*\,VCW4#-I.J37TK#.'5
MS,0%XZ_O1U]#0!7N_'^M1VVNZA:>'89=-T.ZFANI9+S:\JQGYC&NTY(7D[B!
MV&:OS:S:1>-+J>*S=YT\/"\6<W# -'YC$)Y?W0<C.[KSBE_X0^[_ .$6\6Z3
M]IA\W6KB[EA?G;&)EPH;CMWQ3SX2NCK$UY]HAV/H*Z4%YSO#,=W^[S]: *&F
M^.]7G3P]?ZAH,-II.MO'#!(MWOF21T+(63:!M;!QALXP2!TJ/4_'VL00WM_I
M^C6,VFVNI#3"UQ>M'*TGF",MM$;87<WJ3CG%:+>$+H^&O"&F?:8?,T2>TEF?
MG$@BC*D+QW)XS7F45S#IUYJ>LI+HUQK4>J3RPZ-?6TCWSMYIV ;7 W8^ZWEG
M QSQ0![O(\ZV;ND2-<",E8]V%+8Z9QTSWQ7#O\3K=-,\*7AL3_Q.Y1'.N_\
MX] &6-R3CD+(ZKSCK7>(Q:-69=K$ E2<X/I7G/\ PK&9YO%"RWT1M=0AD33$
M4'-HTC^:Y/\ VU"$8[+0!#X]\0R:EX>U^"&R+P:5JMA DB/DSR^;$[J < 8W
M*.O4GI706'BS4(=>N-*\1:9;V#K8-J,4EO<F9?*5@KJV57#+D=,@YJF/ ]\W
M@)-&FO('U.6_2_N[G!"22?:!,^.,]!@?05KZCX9;4O%BZG-(GV-M)GT^2(9W
MGS'0Y';&%- &!I_Q)EN9=(N;FST^/3=6G2"!8K\2741D_P!6TD>W !XR Q*Y
M&:3PYK'B?4-5\5V^I069LK:Y>+*W3,T'[A"$0>6-RG.221R3P<<V/#GA+5]#
M_L^RDM?#<UI9;46]%LPN71>%)&,!\ ?-N//.*OV/A[5]/\1Z[+%/9/I6K/Y[
M!@XGCD\I8\#^$K\H.>M '+>"?%&KZ3X/\'K>:+$FCW8@L([@769@[#".8]N
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
MPN3GG+A\>V*Y;Q%XWO\ 0M3DD37=&NEBO8X'TJ&V<R"-I OS2A\"0!LX*@4
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
MM=)9I GR.S^85+]63=DA>/J:[74=3LM)LS=ZA<QV]N&5#)(<#+$*!^)(%6J
M./U/P1/>:IK%U9ZY-8P:S$D=]"MNCLVU-@V.?NY7@\'VQ5F#PPFD7&EZE%+-
M<R:1I#V$<"H 9QA#GKP3Y8&/>NGHH Q_"UMJMIX;LHM<N3<ZGM+W#\<,S%MO
M'7:"%SWQ7-VWPXFM[;3M/_X2"<Z5IM^E[:VOV9 <K)YFUWZL.2,\=<G.*[RB
M@#!@\,10/XB87+G^VI-[_*/W7[I8^/7[N:S&\"RVR:)-I.M2V.H:78+IQN/(
M619X0%X9#WRH((/'/6NGU+4K+2-/EO\ 4+F.VM8@#)+(<*N2 ,_B0*M=: ,+
MPMX:7PQ:WT(OI[U[R\>\DFG WEV50<XXZKGH.O2L#4?AQ->VVL:?%X@GM]+U
M2Z>[EMUMD9Q*Q#']X>=N0#C&>V<5WE% &3;:$EMXIO\ 7!.S/>6T-N8MO"B,
MN<Y]]_Z5R/B7PK)I?PGET/3A=7M[#,)+*2&/$B3-<>8K\9VA2W)] :[?5=6L
M]$T][^_E,5LC(C.%+8+L$7@#/5A5V@#/T+28=!T&PTJW_P!5:0)$#_>P.2?<
MG)_&N3N/AQ-+:7>FIX@GBTF>^-\+46R%A(91*09.K+N' X/3DXQ7=%T#A"RA
MR"0N>2!3J .4O?"%Y_;M]JFC:_/I9U$(+R-;=)0[*NT.A;[C;<#/(X'%61X8
MG@\6G7;/5I85G@B@O+=X5<3B/=M.X\J?F.<=:Z*B@#C?^%?Q1:)86EKJ<]O?
M:?>S7MI?)&I*-([LRE3PRD.5([U*G@AIK;6WU/5I;W4M6LC8O=F%8UABVL J
M(.@RQ)R3DUUM(2 "2< =: ,&?PO%-_PCN;IQ_8D@=/E'[W$31X/I][-.\1^&
M_P"W'L+JWOI;#4M/E,MK=1H'V[EVLK*>&4@\CCMS6GIVI6>KZ?#?Z?<)<6DP
MS'+&<JPSCC\0:M4 <A_P@OVC3=>34=6EO-2UJU^RS7AA5!'&%(540< #<3UY
M)Y-:=SX;CN;_ ,/W1N74Z,SLB[?];NB,?/IUS5^?5;*VU:STN6;;>7B2201[
M2=RQ[=QSC QN7KZT_3=2LM8L([[3[F.YM9<[)8SE6P2#^H(H SO$_AX^(;.T
M2*]>RNK.[CO+>=8P^V1,@94]1AB,4EIX>:#Q(FN3WS3W7]FI82?NPH<JY<OQ
MT))Z=JTK[4[+3?LWVVYC@^TSK;P[SC?(V=JCW.#4EY=PV%E/>7+[(((VED;!
M.U5&2<#D\"@#E3X!A72(K:#4IX+RVU*;4K6\1%+122,S%2IX9<.5(/7VK=T>
MQU2S68ZIK!U%WQMQ;+"L8&>@&2<YYR3TXQ5VSNX;^RM[RV??!<1K+&V"-RL,
M@X/(X-34 >>?\(]KEW\0O%%Y8:K=Z0DL5I&DOV99(IQY;!B-W&Y3CD'C/(-7
MX_A\FF_V.^A:K+87&FVLEH))85G\U'8,Q(.,,6&<CU/&*ZC5=4M-%TJYU*_E
M,5I;1F25PI;:H[X')JVK!T#*<@C(H Y"T\!16NEZ=9'4IYC9ZN=5\V1%W2.6
M=BK8P/XSR/RK0\1>&YM9OM+U&RU-].O].:0Q2B%95*R+M8%3]!@]L59TCQ+I
MFNW-S#ITDTPMV*-*;>18F()4A'("O@@@[2:UZ ,GQ#H%OXDT273;F66+<4DC
MGB(#Q2(P977W! -9^F^%;N/7(-8UO6I-5N[2)XK4?9UA2$/C>VU<Y8@ 9ST[
M5TU% &3X<T)/#NE-81SM,IN)I][+@YDD9\?ANQ^%9-[X.NEUZ[UC0-=GTB>^
M"_;(A D\4S*,!]K?=;'&0>?2NLK,F\0Z7;76H6T]VL<FG6ZW5T74A8XFW88G
M&#]QNGI0!BW7@RZ>33K^T\07<6LV4<D)OYHDE\^.1MS*Z8 P"!C&,8%8/BCP
MA<6'AH^4]]J5]>:O!>:C?0Q!IU5<?/'$!@A0JJ$PV 2<'%>CP3Q75O%<0.)(
M94#HZ]&4C((_"JUUJUG9:C86%Q*5N;]W2V3:3O*(7;D# ^4$\T <!HVE:CJ\
M.M: D^I#PW=:<T*W&H:<EK*D[Y4[$"1EEVG))7KCFNPN/#4=Q>>'K@W+J=&9
MF1=O^MS$8^?3[V:TM1U*STC3YK_4+A+>TA ,DLAPJ@G S^)%5IO$.E6UW?6T
M]VL<EC:K>7)92%CB.[#9QC^!ORH Q;'PAJ.CR26^D>(Y;32GG:<6AM(Y&BWL
M694<]%))Z@XS3-3\ 6VK3ZE?7-_+_:EQ/%+:7BH-UB(N8UC'H"6)_O;CFNJ@
MN[>YAAEAF1TGC$D1!^^I ((]N1^=34 -0,$4.P9@.2!C)^E.HHH **** "BB
MB@ HHHH **** "BBB@ HHHH *SM?U/\ L3PYJ>JB/S#96LMP$_O;%+8_2M&H
M[BWBN[:6VN(UDAE0QR(PR&4C!!_"@#SJ2]\2:%IGA_Q!=>()+\:A=6T5Y8M;
MQ+"%G('[HJH8%2PQECG'-:&@S:_K7B[77FUQXM,TO4O(BM(X(_W@\I&*NQ&=
MHW<8P<DY/2KNG_#_ $ZQGL2^H:I>6NGN)+*RNK@/#;L!A2!@$[1TW$X[5MZ9
MHMKI-SJ4]NTA?4+G[5-O8$!]BKQQP,(* *'B^_2QTVW!UBXTQY[A8T:TMA//
M,2#^[C0JWS'&<[3@ _4<,WB_7;7P;XQ:.^NI+K2+B%;2YOK58IMCB-L2)M R
M-Q&<#((->A:_X=MO$$=IYMQ<VMQ9S>?;7-JX62)\%3C(((()!!!%98^'^E'2
M]7L);K4)UU=XY+N:6<-(S)MP0<<?='&,=A@<4 9N[Q%I7B^RT>Y\0R7J:O87
M+!VMHT^RSQ[,-& /N_/]UMW3J:JZ3XMU;6;?PKI:3^3K$EU*FKD(I*K;964$
M8PN]]@&.S<8KMKK1;6[UW3]8D:3[38QRQQ ,-I$FW=D8Y^X,5SOACPP]EXZ\
M4^(9[,VWVV9(K52X.Y%1=\@ /&]@..ORT 1_%-R?"UK:.[)9WNIVEK>,#C$#
M2#?D]@> ?K70ZG%I^D:1)J*Z?;M_95O)-;JL:@QA4.0G'RY&1QZU9U;2;'7-
M*N-,U&W6>TN%V21MW'7J.A!P0>Q%8NF^";:PN8I9]8UK48X598K>^N_,B4,I
M4Y4 ;OE)'S9ZT <O)J?B;2O"VC^,+C7WN_M<EJ]UIQMXQ!Y<[*-L9"[PR[Q@
MECG'-4?$7BG69K_Q!;V'B"[M-5M+U+73=,M+6.1;A2L9+%F1LD[FSR F.177
MV7P[TNSDLT-_JEQ86,HFM-/N+G=!"R\K@8W$+V#,0*Y.\\.:_!>^(3;Z;KJZ
MC>WDL]E=:=JJP6:@@!&=/,'(P"V48DYZT ;LY\0ZCXYN_#]OXCGL[.UTNVF:
M6.WB:9Y"TBELE=HSM!(QV&,<UG6'BK7M:T;PEIRWRVNH:M-=Q75_'"I8);%@
MQ12"H9]HZ@@<\5VNEZ$+34?[7NIFEU2:RAM;EQ@1L8]QW*,<9+-^E9[> M).
MBV6FQ37L#6-Q)<VMW%*%GA=V9FPV,8.\C!!!'6@#F]2UO6]!MO&6CS:H]_)8
M:/\ VA97DT,?F)N#C:X"A6P4R/EZ'G-7VOM:\0>*(M&L]9ETN"UTJ&\FE@AC
M:2:60D ?.I 0;22 !G/6MB+P-IJZ5K%G/<WUU+J\1AO+RXE#3.NTJ #@*  3
M@ 8YIVH^"[*^O;6]AOM1T^[@MA:&>RG"-+"#D(^00>>01@C/!H S?A:LZ>&+
MU;F1)+@:M>B5T7:K-YS9('8$]JK%O$>O^+_%&G6OB.33;33G@%L(;:)VWO K
M?,74Y3.3CJ<]0!BNJ\/>'K'PQIC:?IWFBW,TDP$K[R"[%B,GDCGOD^YKE/\
MA![C4O&?BG4+B\U/38+UK=(I;*Y"?:(Q"JL&&#C# C. >N#S0!%X<\8:IK=W
MX(DFD6--3L+R2\B1!MDDB**&'&0,EC@'O5?6?%.O6^B>+IK2]1;FQURWM+-G
MC4JD;& %2,<@[VYZ\\'I747O@?2[BRTFWM);O36TE2EE-92A9(U*[67+ @@@
M#.0>E0P_#[1X-'OM,66]:&^O([V9Y)]\C2H4.=Q!/)C!.?4].P!EZ^GB70K'
M3D?6=5O;-IY'U&^LK.)KB)=HV!8PA&S=N)(5F Q5FW\03S>(?!]M9:O]OT[4
M+*[DEG\M!]H,8CVL< ;2-S9 QSG(KH=9T1]7:%H]7U/3GB##-E*J[PV,[@RL
M#TX.,CG!YK+F\!:4VFZ3:6<]]8/I._[)<VLV)5W_ '\E@0V[J<CK0!E?\)'<
M^1XL^W:V]A'9ZLEK;3QVRRR(ICB(1$VG<Q+$#(8\]#BLNS\4:Q;VGC6U%_J,
MW]FZ4+VRGU*S6&>-RDO5=BAAE 02OJ.:Z5/AUHT>E7=@DU^/M-ZE^;@W&Z:.
MX4*!(K$'G*YYSR3VXJ6'P+I\:ZP9[[4;N;5[/['=SW$P9F3#C*X4!3AST&.!
MQUR 8-G?>(].U+PG=7VNM>Q:X3%<VIMXTCB8PM(IC(&X8*X.XG.>U.^&NFWU
MOJ'B6:;6[NYCCUFXB>&2*(+(^V/]X2J ANV 0/:NLE\-V,QT7<TW_$G</;88
M<D1F/YN.>&/3'-1Z=X8MM*UV^U2TO+U%O9#--9F0& RD %PN,AB%'?'M0!S7
MQ T^\N_%G@XV^KW-EOOI(U$4<;;&\F0[QN4\X^7!R,=L\U.LFM^(?%6L:3;^
M(+G3;;14MXO,@AB:2XF>,.7?>I 4 @;5 SS71>(/#EMXBAM!-<W5K/9SBXM[
MFT<))&^"O!((P0Q!!%4+[P3:W6H'4+?5=6T^\E@2"YFL[@*;E5&%+Y4@L,GY
MA@\]: )/ NM7FO>%8;K4/+:\CFFMIGC7"R-'(R;@.V=N?QKG/"6F7T?Q"\83
M/K=W+'#=0^9"T406;=;J5W$("-N0!M(SM&<\UW.D:39:'I5OIFGP^5:VZ[47
M))ZY))/)))))[DU0B\+VT'BBYUZ"\O89;H+]IMDD'D3,J;%9E(SD+CH1T% '
MF?A2?7M"^'OA'6$UMGM9;FVM7T[[.@B\F239][&_>,YSG';%=-?:OXCDG\;P
M:.3+=65S:K;)'$A=(VBC:3;D89L%B V><#VKH(_!FF1^&=-T!7N?L>GRPS0D
MN-Y:-PZY.,$9'/%22^%;5Y]6N(+Z_M+C4YHII9K:8*R-&@0;>,8PHR#D&@"+
MP;J4&H:;<>5K%[J+PSE)!?P+#<6[;1^[=0B_7.._4US>L7T]C\7YC;Z)=:LT
MGA^-?)@,0V_OY.6,C*,=N_TKL-"\/6V@B[>.XN;JZO)1+<W5TX:25@H49P
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
MI!'<PHA1RBL!EU'1@0>":R[R37]8\?ZIHMIKTNFV%M86\X\BWC>3>[2#@N"
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
M]CB#6[1%,^3Q@ [P/GWXQGDUO'P%I3Z#JFESSWLYU4@WMY+*&GE(QC+8P
M  ,#TK7N-%M;G7['67:3[59PRPQ ,-I63;NR,=?D&.?6@#'\"ZEJ%]IVIVVI
MW7VNXTW4Y[$7)0(TJI@JS!<#.&P<#M7/ZQ=S6'B;X@7ELX2>#P]!+&Q4-AE6
M<@X/!Y'>NXTG1;71C?FU:0_;KM[R7>P.'?&<<<#@54O?"FGWUSK,\KSA]7LE
ML;C:X $8#@%>.#^\///:@#F]3U>:>#2H$\0ZK;7LNG1W#6FE:<L\A)'^L?*,
M%3/ 'RYP>?3"_M+5O%-O\-+X7B6FIW4EUON1"&VD02!F"'C) .,\ GH0,5VU
MSX(LIKR"[M]0U.QFCM$LI&M)PAFA7[JME3R,GYEP>3S4,GP[T9M)T?3DGOX8
M](9VLY(9]LB,V>=P'.,\?KD9H Y;6/$&O:'I'C;3)-4:]GTF&VN+2]FAC\S;
M*>5<!0I(*G!QT-7M:NIK#Q9XXO+9@D\'AJ.6-BH;#+YY!P>#R.AK>'@#2FT7
M5M.N+F^N7U8J;R\GE#3R;<;1G;@  8  P*O7OA73[^[U:YF:</JE@+"?:P $
M8W\KQPW[P\\]N* .'GL]2U3QWX0N5UV[M9+C199?W4,)"$"'< &0\,3DYZ8X
MQ5F\\5ZU8Z=X@T0W0?Q!'J<=GITK1KS'<$&)\8P=J^9GC_EGS74W_@ZRO3I$
MD=Y?V<^E1&&">UE"N8R%#*V5((.U>W;C%9UWX8?4/BS9:_)9E+6PTXJLY<8F
MG9F"C;G^!6?DC^.@#L8U*1JK.78  L<9;WXIU%% !1110 4444 %%%% !111
M0 4444 %%%% !115#7))(?#^I2PNR2I:RLC*<$$(<$>] %^BO.'UB]_X0_X<
MS"_F\^]N[%;A_-.Z<- Q<,<_,"<$Y[UF74&I:AI7CO5F\0ZO#+I%Y=?88H+D
MI'$8XED&0/O DXVG( S@<F@#UJLW1M;M=<ANY;5956UNYK-_, &7C8JQ&">,
MCBN+6:\\6^++'3;K4[ZRM8]"AU QV-PT#2S2,06++R57;TZ9/-<S9ZAJ6F>%
M4TZQN;NYDO\ Q9=6DUS;R)'-,NYV.USA59RO48ZG':@#VRBO*[S_ (2;1?"W
MC"5DU2QT]--,MBUYJ"W$\,P#;]LBNS;<;2,G@YQ7<>%])DTW35EGU.^O[FZ1
M)9I+J8L-Y'.Q>B+S]T<<"@#<HKR#Q3K$T<=_KFAR^))6LM22%KU[U5LU83*C
MQ"$N-Z#)7.P\\Y/6MY[*Y\0_$7Q%IMQKFJ6ME:VMH\5O9W1A^9P^6R.1C'0<
M$GG.!0!Z#6;K^MVWAS0[G5KQ)7M[< NL0!8Y8+P"0.I]:\RT[5M7UW3_  +:
MSZY>0&]N+ZVN;FWDV-<I%O"G/JP0<]<DD8/-0^(Y+FR\/_$#P^U_=7ME8+92
MV[W<QEDC,I!9"YY(&T$9Z!J /68M3@FU:XTU5F\^"-)7)B8(0V<8;&">#P*N
M5YKXH\1ZIHNJ^-KBTGD;[#HMM-;1,2R1R,TH+A>F> 3Z[16O_9EIX6T"]U:[
M\3:U)!]@8W$TMT9N< ^;&K [6] O'S=.E '9UFZ!K=MXCT2VU:S25+>X#%%E
M ###%>0"1U![UPGAVZO['X@Z?9"+7K:PO]/GE:'6+U;@NR-'M=0)'*'#$$<=
M1QQ7-:5;W>C?""P\4V6N:C]MM9E,5L+@BW93<;#$8APV03R<MD]>U 'L%CK=
MM?ZSJFEQ)*)]-:)9F8 *QD3>-ISSP><@5I5Y/KVL7NA7'Q)U#3V*W2RZ='&X
M RF^-$+#/&0&)YXXYK:\.6/B*Q\46S"TUB'29+>1;P:IJ2769!@HZ8=BI/S
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
MAT)1%'7H7IWBR6&^\0)I4'_"175\EH)FMM)O5M4B0L0)'<NF6)! &3]WIWH
M[BBN8^'>IWFL> -'OK^5IKJ2$B21L98JQ7)QWXYKSP2ZI%\+9_&7_"2:J^J6
M=Q(T,;71\G"W!01-'T?<.[9/(QP * /:J*X"VM+S7/B9KL<^LZG!8Z:ME+%9
MV]P8T+LI)W8ZK\O*]#DYSQ6!YNH:A\-M1\=/X@U.WU:/[1<11)=,MO#Y<C!8
M3#]T@A0#D$DGK0!Z]17G3)>>)/B ^GW.K:E8V9T.VNVL[2Y:$F1GD!.1\PQQ
MG&,X7/3%8^FZSJVJ6N@>'9]7NUAN-7OK*74HY-LT\-ON* ..A; !8<G:>>:
M/7:*\SD@UZTU?Q-X5T+5[J9O[+AN[.6\N#*]M*SNI3S&R?F"Y&<XSFJ5]XCF
MTCP;K%OIHUNTUB&XM8+F#4;K[1);><X7?'([,I##=@YP#S@4 >LUFZQK=KH@
ML3=+*WVV\CLX_+ .'<D G)'''-</:?\ "2Z!<:C?QV.K1Z7%I<\KQZIJ*79-
MP@W(4(=F&1N!' Z5CW6ERIHW@36I]?U*]N+_ %6PEN$N+C?%([_/E$/"8Y "
MXXZYH ];N[RUL+<W%Y<16\(95,DK!5RQ"@9/J2!^-3UPGQ;L4N_!)=I[F+RK
MRUP(9F0-NGC7Y@.N,Y&>AP:@U_3+H>*O"OAVVUS5[>QFM[UKETNV,TP4Q, 9
M"<YR<9Z@9 QF@#T*BO*_%T^U-:BTJX\4W5YHUD-\]OJ"Q06KB+<I<,Z^:Q&&
M;A^OX5;,FH>)/%/AVSFU>_M+:Z\/&\NH[.8Q>:^Z+N.5Y;J,''&<$T >DT5Y
M;:KXDU#PC>V%C>7MZVEZ_+;2XN_*N;FTC)^03<8?YEYR,A<9&:M-K6DW?AS3
M;&VN/$\D\U[-;I8QW)2\:2,,7CDE9@0J#G._ICDT >D5!>7EKI]I)=WEQ%;V
M\0R\LK!54>Y/2O)8-?UJU\+ZOIYN[^T=?$,&F1SW<ZS7%I#+Y1;,@+ D;FP2
M3C(YXK2^(GAB+3?AGKP35]8G18XY5CN;YY-I!P>3\Q4[LE22,J" * /0[K4X
M+2_LK*19C+>,ZQ%(F9057<=S 87CIGK5RN)OXY]#\4^#=-MM0OY+:>XN_.^T
M73RM*! S ,2?F /(!Z5RGGZC=_#"Z\>MX@U*'5U$MU'&MRPMH]DA A\G[I&
M%.1DD]: /8:*\\>VO?$GQ U"QN=6U6RL8]*M9S:V=RT.)':09W#D8QR!C.!G
M.*V_AWJ%YJ?@73KF_N&N+D&6%YG^\_ERN@)]R%&: -S3-3@U:S^U6RS+'YCQ
MXFB:-LJQ4\, <9'6KE>1KJ.KWWA/PVBZS?6\UYXGGM);B.7,ABW7(VY.> %&
M,Y P/05T_A9;C2_&WB#03J%[>6,-O:W4'VR=IGC9_,# .W)!V X)XYH W=<\
M3Z3X=,":C<,LUP2(+>&)Y99<==J("Q ]<8J?1M=T_P 06;W6G3-)&DABD5XV
MC>-P 2K*P!!P1U'>N6TTH?C3K@N\?:!I5M]AW=?)W/YFW_@>W-6/&-W<3:[X
M=T"WOIK*#4[F47<]L^R7$<1<1AARI;CD<X'% '945Y3JVI:GX4D\7Z7I^K74
M\-MH\=[:R7DQG>VF=G38';).=H*AL\^U6_#ME>OXH>]MI?%$>E6^FMYBZO<3
M /=$XX1S\V%W$D#:#C% 'I=%>/:2=5M/"/@OQ+)X@U:YOKV]LX+A)KDM"\4K
M;"ICZ9 (.[[V><U-<7'B/Q'J?B=[.#6VN+&]DL[!K+48[>&W**NTM&SC>23N
M.X$8.!0!ZW17D_C7Q#K_ (7DTR[2]V7FI:<(;^U9FDCL7&T&[4#("J7(/8_+
MUQ7<:K;W%C\/K^WL+FXNKJ+3)5@GDD+R2N(SM8MW)/- %9OB)X86\:W%_(ZI
M+Y+W*6LK6ZOG&TRA=@.?>NIKF? 1T\?#G039F+[)_9\62,8SM&_/ONW9]\UR
M\4-WXDL/%6M7.OZG8W&GWMU;VJ6MTT45LL/W2R#AR<;CNSP>U 'IU%>607.J
M^+M8\)P7.JW^GPWWA]KV\CLI3$97W1="/N\MG(YQD=":NQ:;<:]XX\3Z9<>(
M=7M[.PBM/(AMKQHBK-%RY8<]1G'0DDD&@#T:BO(_#FL:KXP_X1?2M1U2[MX9
M=-N+NXFM)3#)>-',(E^=<$#;\YVD9S2:MJFL:7X;\::7::Q>.=*O[*.ROI)"
M\J"5HBR%^K;=Q'/)!P: /7:@O+RUT^U>ZO+B*WMTQNEE8*JY( R3[D#\:XK6
M+*UT.ST[1GU+Q-J-Y?7#O%#;WVV>X*H-^9"R[(QUP&49/X5QNJ&\U/X5^)X-
M0N-30Z7K(@A2>[W2K'NA(21U8B3'F'&2>@]* /8KC4X+74K*PD68S7GF>44B
M9D&P G<P&%Z\9Z]JN5Q&H?:-"\6>$=-M;V_FMG2^:5)[EY&F*QAE#$GYL$\9
MZ5RCW&I#X6IX_7Q!J3:R56[\H7+?9CF0#R/)^[C!V],YYS0![%17GK6%WXD^
M('B*PGUO5K2RM;6T:."SNFBVNZO\V1R,;>@X/?.!6Y\/]3O-8\ :1?7TWFW<
MD&))2.7*L5W'W.,T =-17E6FZGJ/A>'4$UPZNWB1-.NKF-IKMIK.^,8W;HUS
MA"/E^7:I />E\-1>*9G\.ZK;PZT_V@QR:C/>ZE%+;SPNF69(@YV$$J5VJ..#
M0!ZI17G_ (1M+GQ+%)XCO=;U2*Z&I3*MM#=%((HXYB@B,7W3D*,DC=\W4<50
MFUF_3X;>/+LZC<+<VE_J$<$QE(:$*WR*ISE<9& * /3ZS/[?TY5U%YYC;1:?
M(([B:Y0Q1@D Y#-@$<CD5QMW:WVO?$&WTN36]3M+!=!ANI(K.X:(R2>:ZYW#
MD>^.N!G@8K"\9M<:GX3^(J7-[=F.QOXS BSL%5?)B^3&?NY8G;TSS0!ZM=:G
M!:7]E9R+,9;QG6(I$S*"J[CN8#"\=,]:N5Q-]'/H?BCP9IEMJ%_);3W%WYWV
MBZ>5I0(&8!B3\P!Y /2N0T^Y\7>(=)DUW3K767U5[R0P.-2B2S1$F*^48"XX
MVJ025W9YSTH ]EHKSO6I+W2/&4NI:[)JXT:2>W6QNK&\*P6Q.U2D\((R&?\
MB(888#BM+XCZIJ&G:1IEOIQN!)J.IPV;M;.J2A&#$A&8@*QVA03TW>M '945
MY=)I?B]--U^*R75["V%FEQ8_;-16XF6ZC8L45U=FV.H (8XZ^M2-XQNM:FOM
M?TF60V&C^'C>&!6.R2ZE0R*C@?>V*G3L7H ]-HKRSPU#XIDG\/:G!!K3K/L?
M4I[W4HI;>>)T)+)$'.PABI4*HXX-9ETVK+X%\0>*O^$AU;[=INHW1M(Q<D0H
MD=P1L9.C@C(^;.!@# % 'LU% Y&:* "BBB@ HHHH **** "BBB@ HHHH ***
M* "D90RE6 *D8(/>EJ.XE,%M+,L3RE$+".,?,^!G SW- '-V7P[\+6%S;W%O
MIA$EM*)K;=<2L(&!S^[!8A1D_=& >..!6JOA[2UL]4M!:_N-4>22\3S&_>LZ
MA'.<Y&5 '&*R]4\5W-G'HD-KHLTVIZON,5G/*L)B"IO?>WS $#C SS6SJ&K6
MFCZ4VHZG)]F@38)#@OM+,% ^4$GYF H S]1\&:#J@LOM-FX:RB\B"2&XDB=8
M\ ;"R,"R\#@DT#P7X=70Y-%32XDTYYC/Y*LP"R$YW*0<H<]-I&.U3W^NK8^)
M-'T<VY=M26=A*&P(_*53TQSG=6O0!@P^#M%ATV_L##<SP7\?E7/VF\FF:1,$
M8W.Y8#D]".M;D<:Q1)&@PB*%4>@%.HH YBY^'WAB\N;B:?3W?[1-]HDB^TRB
M(RYR9!&&VAL]P,_G5"X\ VNK^,]:U75H=]O<P6\=L\%S)%(-H<2*2A!VG*\9
M(./:NVK(\3ZZOAKP[=:N]N;A8"F8PVTMN=5ZX/\ >S0!AZ[X%M-4OO#%M%9P
M+HVEF820*Y0J#%M39MY!#8.001US6I#X*\/P:)=Z.MB6L[Q_,N0\TC/,V0<M
M(6WD\#OVK?HH SWT/3);V]O)+1))KZ!;:Y+DL)(EW84J3C'SMVYS659> ?#5
MA#<0Q:>SQ3V[6K)/<2S 0G&44.QVKP.%QT'I72T4 8&E^"]"T?4(M0M+68WD
M,;0QSSW4LSK&<?+EV/R\# [<XZG-6T^'/A2RN;>:WTO9]GD$L<7VB4Q"0=',
M9;:6']X@FNIK*\2ZTOASPWJ&LO 9ULX6E,0;:6QVSVH <_A[299-4>6RCD.J
M!5O1(2RS!5V $$X'R\<8JOI'A+2-#N1<6277F!#&GGWLTP1#CY5#N0HX'2M6
M2ZBALFNYFV0I&97.,[5 R>GM3;&]M]2T^VO[23S+:YB6:)\$;D8 @X/(X(ZT
M 9NL^%=)U^99K^*X+B/RCY-W+"'3.=K!& 8<G@YZTW4/!^AZDMF);-H6LH_*
MMI+2=[=XH\ ; T;*=O XSBMRB@##N?!^AW>BPZ1/9L]I!)YL69Y/,CDR3O$F
M[>&R3SG/-1OX)\/R:(=(>R9K4SBYRT\AE\X=)/,W;]W'7.>W2N@HH YZV\#>
M'+.TU&VAT[$>I0""]+3R,TZ#=]YBV2?G;YLYYZ\"M*\T;3[^UM+:YM_,AM)H
MIX%WL-CQD%#P><$#KU[U7N==6W\5V&A&W+-=VLUP)MW"^64&,8YSO_2M>@#(
M_P"$9TD>(FUY;>1-1=0LDB3R*LF%*@L@;:Q ) )!(J"7P7H$VBV6DFQ*VE@<
MVGES2)) ?59 V\'GUK>JG;ZI97>I7NGP3;[JRV?:(]I&S>-R\D8.1Z4 9O\
MPAVC?V6=/\N[\HS"X\PWTQF\S&-WF[]^<<=:O:/HNGZ#9M::= 8HVD,KEG9W
MD<]69F)9B>.2:@\,:ZOB7P[:ZNEN;=;C?B,MN*[79>N!_=S6O0!A7/@[0KJP
MELY+(B*2\:_)2:176X8DF17#;E.2>A'6IM'\,:/H1NCI]H8VN]OVAWE>1I2
M0"Q<DD\GGJ>]:YX&:IZ7JEGK6F6^I:?-YUI<+NBDVE=PZ=" 10!C?\*_\+?\
M(TGATZ2ATI)O/6W,K\/G.=V[=W]>G'2KNL^%]*UZ2.2^CN-Z(8\P7<L&Y#U5
MO+8;A[&MBB@#*B\-Z1;WUA>0V21S:?;M;6I1B!%$<94*#CL.HJS=Z597U_8W
MMS!ON+!V>V?<1L9E*L< X/!(YS5RB@#)/AK2&TO4M--I_H>I22RW<?F/^\:3
M[YSG(S[$8[55U#P3H.J7/G7EK-)E45XA=2K%*%^Z'C#!7Q@=0:Z"B@#-?0-*
MDN-1GDLT=]2B2"[WDLLJ*"%4J3@##'H.]9NF> _#FD7UK?6E@_VJTS]GFEN9
M96B!4IM4NQPNUB-O3OC-7?\ A(;:Y\/2ZQI<-QJ42%U6*VCQ)(R.48*&QR&!
M_*M93N4$@C(S@]10!SS>!O#YU"2]6UGB>67SY(H;R:.%Y,YW-$K!"<]>.>]:
MUMI5E::C>ZA!#LNKXH;B3<3OV+M7@G P/3%7** ,'3O!FAZ7J4=_;6TQN(@P
MA,UU+*L(;[WEJ[$)GI\H''%:5QI5E=:G9ZE-#NN[)9%MY-Q&P. 'X!P<[1U]
M*J1:ZLOBZZT#[.0T%E'=^=NX8.[KMQCMLSG/>M>@#+/AS239:K9FT_<:L[O>
MIYC?O6= C'.<KE0!QBJE_P""]!U*>">XM)!)# +8-%<RQ;H1TC?:PWK[-G]:
MT-;U:#0="OM6N59H;.!YG5.K!1G ]S3-#OK_ %'34N=1TU=/F<Y6$7 F^4@$
M'< .><8]J .?\4>"H=0\!KX4TBU@@LGFB4J[G$,0D#NRYR2W!P/>NOAACMX(
MX8D"1QJ$11T4 8 I]% &0_A?1GT6]T=K/-A>R22W$7F/\[2-N<YSD9)SP1[5
M7U+P7H.K:@][>6;M-)&L4VRXDC2=%Z+(JL%<#/\ $#6_61I^NK?^(]9T<6Y1
MM,$!,I;(D\U2W3'&,4 17W@[0-3\/V>A7FG+-IEGY?D0-(_R;!A><Y.!QR>>
M^:LZSX?TS7X(8M1MS)Y#^9#)'(T4D38QE70AE_ UIT4 4-)T:RT2V>"R68+(
M_F.TT[S.S8 R6<DG@#O4 \,Z4OB)M>6W=-1=0LDB3NJR84J"R [6(!(!()%:
MU% '-6O@#PU97\5W!IQ5H93-#";B1H(I.NY(BVQ3SU X[5LZKI5CK>FS:=J5
MLEQ:3##QMD9P<@Y'(((!!'(HLKZ2\FO(WL;FV%O-Y2O, !,, [TP3E><<XZ5
M<H P=)\&Z%HM_P#;[*S<7IB:%KB:>261T8J2&9V)/W%QGICC&34=CX'T#3;R
M.YL[:>'RG,D<"WDWD1MZK%OV#KZ5T5% &'<^$-"N[*ZM);+,5S>&^D*S.K"?
MC]XK Y4\#[I%2Z/X9TGP_-=3Z;:LD]T$%Q+),\CS;=VTLSDDGYCSU_(5?O[V
M+3M.NKZ?/DVT3S2;1D[5!)Q^ K.\,ZO?:YI$6H7FEC3TG598$^T"4M&R@@G
M&T\].?K0!G^ ?##^%O#KV]Q%!'>75U+=W*P'**[MPJGT"A1^%7M6\):+K=^E
M]?6TAN5B\DR17$D1>/.=C[&&]<]CD5!X=\::5XFU/5-.LEN([G393'*LZ!=^
M&9-R8)RNY&&>*6X\9:7;^-+7PJ5N'U"XC,@9$!CC^5F"LV>"0A.,'M0!JZ7I
M=EHNFPZ=IT @M( 1'$"2%!)/<D]2:XWPM\,]+L-,M6UBR274(KF2X<)<2&%V
M\UF1V3(1F"E1DKGCV%=]5.#5+*YU2\TV&;=>6:1O/'M(V"3=L.<8.=K=/2@
MM]*LK74[S488=MW>B,7$FXG>$!"\$X& 3TQ6-+X \,S:A)>2:<2TLWVB2$7$
M@@>7.=[1;MA.><E:Z6B@#B]3\#0:WXZN=7U*+=:'3HK>%X;AXIDD5Y"V&0@@
M$,!UYK8G\'Z!<:#;:(VG1K86K!K>.-F1HF&<,KJ0P;D\@Y.3ZUH:7?2:C8)<
MR6-S9,S,/(N0 XPQ&2 2,'&1ST(JIXFUU?#FBMJ36YG"S0Q; VW_ %DBQYS@
M]-V?PH @M_!F@VNF7=A'9OY5XRO<2-<2--*RD%292V_(P,<\=J6V\':#:Z=?
M6/V'SX;_ !]K-U*\[S8&!N=R6..W/':KNN:Q;>']#O-6O%D:WM(C+((@"Q ]
M 2.?QK-_X3723X-7Q3'Y\FGL%RJH/,5BXCVE2>"&.",]C0!8TGPII.BS/-:)
M=,[1F+-S>33@(2#M D9@!P.E4+7X=>%K*X@GATP[K:99K<-<2LL#!MP\M2V$
M&><  'O74T4 4]5TJQUS2Y]-U& 3VDX DC)(S@Y'(P000#D>E5;7PWI=G+I\
MT<,K3:>DL=M++<22,JR$%\EF);) ZYQCC%:U8?B'Q1;^'I]/MWL;Z]N;^1XX
M(;-%9B54L?O,HZ ]Z (M3\#^'M7O[B\O;)WENE5;E4N)4CG"C"^8BL%<@="0
M:OV^@Z9:7MK>06VRXM+3[%"^]CLARIVX)P>47D\\=:AT#Q+9>(DNA;QW-O<V
MDGE7-K=1>7+"Q&1N'/!'(()!K8H PI_!^BW%O+";>:(2W;WK/!=2Q/YS##,&
M5@1D=@<>U1R>!_#SZ9;:>+%XXK:9IX9(KB1)DD;.Y_-#!R3DY)//>K7A?75\
M3>&[+6$MS;K=*6$1;<5PQ'7 STJFWBH_;/$-M#I=U<R:,T*^7;D,]QYD:O\
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
MWH \NO=+L(7\?:%8KOT.WTE+G[.)&:.VNMLAPO/&0J,17=>!--L],\%:2EG
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
M]Q=O:07UM+<Q_?A296=?JH.15B2:*$*99$0,P4%F R2< ?4FO$-/U2SU#5_
M]Y8Q^'K)I=0RMCIL7^DV\;12 K*X./0$%1D_0UW'Q:-L/!]N;P,;7^T[/S@N
M<E/-7=C'/3/3F@#L;;4;&\65K6\MYUA.)#%*K!#Z'!XHAU&QN'=(;RWD:-!(
MZI*I*J1D,<'@$<@UYBKZ'<>-[J7PG]B:Q3P[.M\]@%\G)8>4#MXWX#^^*I/H
MVGZ=\$]!NH+%([>X6PEUB:-,R2VQ9&EW,/F*\\CL/:@#UBWU73KR&6:VO[6>
M*'_6/%,K*GU(/'XUR&B^-M4UFPO-5M;;29[-;DP06XO?+F"B;R]\C$;1D L
M.O &<UGP+X?U#XE:2/"ZZ=/:C3KE-5^PA&A:)MHB1]ORD[MV ><9[5@6UC:6
MWP4$T%K!%+)K"K(\<85G"ZEA02.N!P/2@#U&#Q5I$_B.ZT);I!>VR1LP9U 8
MN6 5><EAM.1CC(J/Q'KTFB7.AQI'&Z:AJ*VDC.2-BF-VW#W^05S%M#H=C\9=
M6%[%I\%U<V5I)9^<B*\DF^4,4SR6SC..:?\ %;^SOL_A@ZNJMIPUN,W =25V
M"*7.X#^'U[8SGB@#MH=5TZXM_M$-_:R0;Q'YB3*5W$X"Y!QGGI4[3Q),D+2H
MLL@)1"P#,!UP.^,BO)FT72_%/B#Q;8^&6MAIDVDP*TUGM\D7ZN[1LI7Y<@!,
MX_&M;P%J<OC77YO%%Q$T8L;*/38T9<;;@@27) ]FV+_P$T >AB>(SM )4,RJ
M&:,,-P!Z$CTX-,%[:&V%P+F'R&.T2^8-I.<8STSGCZUY[\1K^;PGK=EXFM48
MO=65QI3;1G,I4R6__CZL/^!5@:#IDMAX@TWX<.7E@TS4!JS.>0UNL:NH_P#
MAS^5 'KIU/3UOA8F^MA>'I;F9?,/_ <YK-OO$BZ3_;=QJ4,4-AIL*RK,MRK/
M-E"S#R^"IXP,GYL\5Y/XFUBSO[2[FMX= TZYBUU%6V6+.HM(ERNZ4L"-I/+'
M(/RG&>:Z36;2.]O_ (I0O;K.?[,MV1&0-\XMY2I ]0>E ';?\)$EW9Z7=Z4E
MO>07EPD4C&Z1#"K*6)QSN8<?(.>?:M"75=.@D6.:_M8W:3RE5YE!+\?* 3UY
M''O7FKS:--X;\ MHKV31#6K03?9-N!+]G?=NV_Q=,YYJL^A:5?>'OB??W=A!
M/=I>7BI-(@9HPENCKM)^[AB3QW^E 'JMYJ-CIZHU[>6]LKG"F:54#'T&3S4E
MO<P7<(FMIXYHCT>-PRG\17B^L:O'!XAL9+ZWTV[:?PS;(/[6=E0,Y<LZ$1OG
MMN!P3\N#7H'A2YT3P[X4\-Z3'JEK.+F(06TT RES(JY8KCCL>O\ .@#K:***
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MN_X2O0?^@I;_ /?5'_"5Z#_T%+?_ +ZKQ&BCZC#NP^MR['MW_"5Z#_T%+?\
M[ZH_X2O0?^@I;_\ ?5>(T4?48=V'UN78]N_X2O0?^@I;_P#?5'_"5Z#_ -!2
MW_[ZKQ&BCZC#NP^MR['MW_"5Z#_T%+?_ +ZH_P"$KT'_ *"EO_WU7B-%'U&'
M=A];EV/;O^$KT'_H*6__ 'U1_P )7H/_ $%+?_OJO$:*/J,.[#ZW+L>W?\)7
MH/\ T%+?_OJC_A*]!_Z"EO\ ]]5XC11]1AW8?6Y=CV[_ (2O0?\ H*6__?5'
M_"5Z#_T%+?\ [ZKQ&BCZC#NP^MR['MW_  E>@_\ 04M_^^J/^$KT'_H*6_\
MWU7B-%'U&'=A];EV/;O^$KT'_H*6_P#WU1_PE>@_]!2W_P"^J\1HH^HP[L/K
M<NQ[=_PE>@_]!2W_ .^J/^$KT'_H*6__ 'U7B-%'U&'=A];EV/;O^$KT'_H*
M6_\ WU1_PE>@_P#04M_^^J\1HH^HP[L/K<NQ[=_PE>@_]!2W_P"^J/\ A*]!
M_P"@I;_]]5XC11]1AW8?6Y=CV[_A*]!_Z"EO_P!]4?\ "5Z#_P!!2W_[ZKQ&
MBCZC#NP^MR['MW_"5Z#_ -!2W_[ZH_X2O0?^@I;_ /?5>(T4?48=V'UN78]N
M_P"$KT'_ *"EO_WU1_PE>@_]!2W_ .^J\1HH^HP[L/K<NQ[=_P )7H/_ $%+
M?_OJC_A*]!_Z"EO_ -]5XC11]1AW8?6Y=CV[_A*]!_Z"EO\ ]]4?\)7H/_04
MM_\ OJO$:*/J,.[#ZW+L>W?\)7H/_04M_P#OJC_A*]!_Z"EO_P!]5XC11]1A
MW8?6Y=CV[_A*]!_Z"EO_ -]4?\)7H/\ T%+?_OJO$:*/J,.[#ZW+L>W?\)7H
M/_04M_\ OJC_ (2O0?\ H*6__?5>(T4?48=V'UN78]N_X2O0?^@I;_\ ?5'_
M  E>@_\ 04M_^^J\1HH^HP[L/K<NQ[=_PE>@_P#04M_^^J/^$KT'_H*6_P#W
MU7B-%'U&'=A];EV/;O\ A*]!_P"@I;_]]4?\)7H/_04M_P#OJO$:*/J,.[#Z
MW+L>W?\ "5Z#_P!!2W_[ZH_X2O0?^@I;_P#?5>(T4?48=V'UN78]N_X2O0?^
M@I;_ /?5'_"5Z#_T%+?_ +ZKQ&BCZC#NP^MR['MW_"5Z#_T%+?\ [ZH_X2O0
M?^@I;_\ ?5>(T4?48=V'UN78]N_X2O0?^@I;_P#?5'_"5Z#_ -!2W_[ZKQ&B
MCZC#NP^MR['MW_"5Z#_T%+?_ +ZH_P"$KT'_ *"EO_WU7B-%'U&'=A];EV/;
MO^$KT'_H*6__ 'U1_P )7H/_ $%+?_OJO$:*/J,.[#ZW+L>W?\)7H/\ T%+?
M_OJC_A*]!_Z"EO\ ]]5XC11]1AW8?6Y=CV[_ (2O0?\ H*6__?5'_"5Z#_T%
M+?\ [ZKQ&BCZC#NP^MR['MW_  E>@_\ 04M_^^J/^$KT'_H*6_\ WU7B-%'U
M&'=A];EV/;O^$KT'_H*6_P#WU1_PE>@_]!2W_P"^J\1HH^HP[L/K<NQ[=_PE
M>@_]!2W_ .^J/^$KT'_H*6__ 'U7B-%'U&'=A];EV/;O^$KT'_H*6_\ WU1_
MPE>@_P#04M_^^J\1HH^HP[L/K<NQ[=_PE>@_]!2W_P"^J/\ A*]!_P"@I;_]
M]5XC11]1AW8?6Y=CV[_A*]!_Z"EO_P!]4?\ "5Z#_P!!2W_[ZKQ&BCZC#NP^
MMR['MW_"5Z#_ -!2W_[ZH_X2O0?^@I;_ /?5>(T4?48=V'UN78]N_P"$KT'_
M *"EO_WU1_PE>@_]!2W_ .^J\1HH^HP[L/K<NQ[=_P )7H/_ $%+?_OJC_A*
M]!_Z"EO_ -]5XC11]1AW8?6Y=CV[_A*]!_Z"EO\ ]]4?\)7H/_04M_\ OJO$
M:*/J,.[#ZW+L>W?\)7H/_04M_P#OJC_A*]!_Z"EO_P!]5XC11]1AW8?6Y=CV
M[_A*]!_Z"EO_ -]4?\)7H/\ T%+?_OJO$:*/J,.[#ZW+L>W?\)7H/_04M_\
MOJC_ (2O0?\ H*6__?5>(T4?48=V'UN78]N_X2O0?^@I;_\ ?5:T<B31)+&P
M9'4,K#N#T-?/=>\Z/_R!+#_KVC_]!%<V)P\:233-Z%9U&TR[1117(=(4444
M%%%% !1110 4444 %%%% &+XN_Y%34?^N7]17B]NL37,2SL5B+@.PZA<\G\J
M]H\7?\BIJ/\ UR_J*\;L)8;?4+::XB\V".56D3^\H/(KT\%_#9P8OXT=/JNF
MVUO9:@TVG6]M;)C[!<Q2,6F)(QR6(8%<D\<5R**7=47JQP*ZFXU6T2/5'?5G
MOTO(V6*V,3#8Q/RL<\#;[5SQ6WCM()H[AC=;SOBV8" 8P<]\UTTKI:F%2S>A
MTRV6FOX@?PX+&/ #1+=[F\WS0N=W7&,CIBN0KK&U/2DUN3Q!'=,9V4R+9^4=
MPE*XY;IMR<YZ^U<G12OU\OOZA4MT"BBBMC(*T]"L(;Z]D-T6^S6T+W$P4X+*
MHZ#ZG K,K3T/4(=/OI#<HS6UQ"]O,$^\%8=1[@X-1._*[%0MS*XEYJ-E=6[Q
MQZ3!;."/+DAD?('HV2=WUXK0O/L.@F"S.FP7=P84DN)+AFX+#.U0I&, CFL^
M\M-+MX':WU-KJ4D;$6 H .Y8GV],U?NY=+UO[/=3Z@;*Y6)(IT>%G#%1C<I7
MU '!Q6;MIO;Y_P##EJ^NU_D.ETNR'B/1Q#&WV+4/)E\IF)VAFPRYZGD'FH=?
MTN)-1MWTV$K!>?+'&"3MD#;67GW'ZTY]7M'\1:7-'O2QL#%&C./F**V2Q [D
MDG%6=.UZSMX;TSAFEAG>YL#C^-@5Y]!]UOJ*GWU9E>X[HC\2Z?86-A8?8HP'
M#RPS2AB?-9-@)_,MTK0.G:=-K7]DG2XXX?LRR&[1G#1GR@VXY.W&?:N>O+V&
M?0=.M5<M/#),T@(/&XKCGOT-6M?UZ>^N##;7LYL?*C7RMS!<A #Q]0:.6;25
M^_YAS1NWZ%>"U@?PQ>731@SI<Q(KYZ*0V1^@HT:U@N8=4::,.8;)I(\G[K!E
M&?U-3:9-8R:%=V%W>?97DGCE5C$S@A0P/3ZTVQN+/3VU:(7/FI-9M%%((R-[
M$J>AZ=#U]*MMZK^NA*2T8[P];V6ZXO\ 4XO-L[<(A3)&YG; Z>@W'\*C_LM;
M7Q9'IDXWQ"[2,\_>0L,?F#^M31ZQ!8Z%;65O!;W$CR--<">(L%;HH'T'\ZEN
M=7M+S5=%U)RL<T1072(A 4(XP1ZY7'Y4O?YF^@_=LD7)M%L6\3Z<]O#G3;JX
M\IHBQ.QU.&0GK[CV-9>F65H(=1U&[B,T%GM58-Q4.[$A02.<#!)J_H>OV=IK
M=R+UF-A+<_:$8*24<,2K8]QD'ZUGZ7J%HL6H6%ZSQVU[M(E1=QC=22IQW')S
M4KG2:?D/W79^I5O+RUO%C\O3H;64-\S0LVUAZ8)//OFMWQ+9-I\U[%#X>CBL
MT;:EWLEX'&#DMC]*PKRWT^V6/[+?M=R%LL5A**H_'DG\*T_$#Z;J%_>7]OJV
MXRMO2 P."?;/2J?Q*U[?/R$MG??Y&*UHZ6,=V9(BCN4"!_G!'<CTYJUX?MH;
MS7[&WN$WQ23!74G&14<]@D&DVMVTI\ZX=]L6/X!QNS[G(_"GZ#=0V.NV5U<,
M5ABE#.0,X%7)MQ=O,A*TE<U=1L83HMW<W.E#3+B*5%MR-Z^>"3N&UR<X'.14
MEKI[#P]IUQ::"FH2S&7SG*R-C#8'W6&./Y5GKJ<5UI%]97LSLP<36CMEMK9P
MR^P(/TR*F$VGWF@Z=;2ZG]EFMO-WJ87;.YLCD5DU)*S[^?8T3C>_EY=R/18[
M:5=6NIK**4P0>9'"Q;:I+J,<'/0^M/U+3H9H-(GM[46<]^61H-Q*C# !AG)
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
M>ZM[N,R6T\4R!BA:-PP# X(R.X/&*#=6XNUM#/$+ED,@A+C>5!P6V]<9(YH
MEHHHH **** "BBB@ HJ*YNK>SA,UU/%!$"%+RN%7). ,GU) J6@ HJM8W]IJ
M=J+JRG2> LR"1#D$JQ5A^!!'X59H **** "BJU_?VFF6;W=].D%NA4-(YP 2
M0H_,D#\:LT %%%% !1145M=6][;K<6L\4\+YVR1.&4X.#@CCJ"* ):*@O;VV
MTZRFO;R9(;:!"\LCG 51U)J9'61%=""K#(([B@!:*** "BBB@ HHHH ****
M"BBB@ HHHH **BGNK>U\O[1/%#YL@BC\QPN]ST49ZD^E2T %%16]U;W:,]M/
M%,JN49HW# ,#@@X[@]14M !1110 445FP^(-(N-:ET:'4()-1A7=);JV64<=
M??D<>] &E115:*_M)K^XL8IT:ZME1YH@?F0/G:3]=I_*@"S144MU;PS0PRSQ
M1RSDB)'<!I"!DA1WP.>*EH **CGN(;6%IKB:.&)>KR,%4?B:;;7=M>1^9:W$
M4\><;HG##/U% $U%%4?[9TS%V3?VZK:2B&X9Y HC<@$*2>A.Y?S% %ZBBB@
MHHHH **** "BBH;N[M["SGO+N58;>!&DED<X"*!DD_A0!-138Y$FB26-@R.H
M96'0@]#3J "BBB@ HHJM9W]I?B8VDZ3""9H)=ASLD7AE/N* +-%1?:K?[7]D
M\^+[3Y?F^3O&_9G&[;UQGC-2T %%%% !1110 4444 %%48-9TRYABFAO[=HY
MIF@C;S -\BD@H,]2"K<#T-7J "BBHK:ZM[R'SK6>*>+)7?$X9<@X(R/0@B@"
M6BH+R\M]/LI[R[F6&V@0R2R.<!% R2:([ZTEG6".YA:9XA,L8<;C&3@-CKC/
M>@">BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "J6L",Z)?
MB6[^QQFWD#W.<>2-IR^?;K^%7:J:IIUOK&DW>FW:EK:[A>&4*<':P(.#V/-
M'C?A@)_:7@J"\T6'18;5F%KJT<)7^TVV,BJ/E!3S 2Y#\MCBO9=1L(M3L);*
M=YEAE #F&5HV(SDC<I!&>AQV)KF+;P/=&72X]4\0W6H6.ERI-:V[01QY=!A"
M[*,MM_#)ZYK932=0BM=3CCURY\Z[N#-!,\:/]E4X^101@@8/7UH Y_X86L%E
MI6O6EM$L5O#KU[''&HP%4.  /PKK-5U*#1](O-2NFQ!:0O-(?902?Y5A^%O"
MEYX:N+QGUZ>]@NYI;F2&2WC0>=(P+/E1GL>.G-:/B308_$NCMI<\[Q6TDL;S
M! "9$5PQ0^@.,'VH \N\":GI^E>+=(G35[&ZNO$]K(VI107*2&.[W&9-P!./
ME=X_^ BN@N_$'BZYC\67EA>:;;VN@W,JQQR6S2-<!(ED*,=PVC!ZC))/;'/4
MZ]X3L-:LX(HU2RN+>YBNH+B")=T;HP(_ C(_&FQ^%(([#Q':"YD*ZY+++(VT
M9B,D2QD#UP%S0!F6WC*6+7(O[2\N'2K[15U.U?&"C(,S(3WPK*WTS6SX1O\
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
M1Y G^NW$>8N02#CG(P*N7>L>+-0U_P 4V>E7NG6=MHQC:)IK8RO*6@638?F
M"Y)^;D\CCCF5?AP4MH=/77[L:3;7ZWUO:"&/Y7$OF[6?&YESG'3KWQ706WAR
M&VU'7KP3NS:P4,BD#$>V(1\>O S0!@:5XSN[K4O#<UZD,.FZ[I)GCP.8KE0'
M=2W]TH21_N&MGP9JU]KWAU-7O51%O)9);5%7!6W+$1Y]25 .?>N8\9>#7;X=
MZ)X8T\74]Q!<6UM!=1+AH5P4>5\=%\LN#]17H5K;0V5I#:VZ!(88UCC0=%4#
M 'Y"@#BY=1\5:QXM\0Z3I-]I]C;Z9Y!CEFMC,[L\0;:1N  SG)Y/3 K-A\:>
M(=?M?!Z:3]BLKC6X;K[4\T9D6!H=H9E7(SSNP">XR>*G7PSK5YX\\5WEIJU_
MH\5Q]EC21(5>.=1" Q7</O*>-PZ9.<UOV/@JPTV?P\UG)+'%H<$T,,9P?,$@
M4$L?7Y<_4F@#,34/$^LZ[J.CZ?JEE9_V/%!'<W3V1D-U</&'.%W@(@!'&2>>
MO%5=)\<:G=MX9N;V&"&UU"XN--O50$B.[0L$*D_PL8W&#ZBMK4/"5R^NW>KZ
M-KEQI5Q?1HEXJ0I*DNP85@&'RL!QGIP.*;=>!-/E\$Q^&;:XN+=(666&[#;I
MDF5_,\W/]XMDGZF@# N/$UYJ5M9ZA);64UC-XHBLK'S8 ^(58H903T8NKD,.
M@J_I7B34KOQK=:;J&IVNGO'=21P:7-9D-<P*/EDCE+ ,3]XX!P,C'>M9O!MD
M-"T'289I(H-'N+>XB( )D,7][ZG))J.;PE=7VM6EWJ6NW%W:65V;RVM6@C0I
M)A@H+@9*J&.!QVR30!SEIXHOH=(6TTRUT^WU#4?$5UI\+B#;%&JNY:5E4C<V
MU/49)J^?$&O:)JNK:+J=U:WTT6CR:I9W<=OY7W#M9'3<0>2I!!'&:NR^ ;5]
M)-I'J%S#<IJDNJ6UW&%WP3.[-P""&7#$$'J*EMO!A+ZG=ZIJT^H:E?V9L3<M
M$L8AA.?E1%X')R<YR0* ,/3_ !'XI@7PIJFJ7.GRV6O21P/:06[*T!DB9T82
M%OF/R\C '/'K75^+M>;PSX5O]72$3RP*HBC)P&=F"*"?3<PS[5!)X2@DTOPY
M8FZD"Z'-#+&VT9E,<;1@'TR&S6EKFC6GB'1+O2;X,;:Z38Y0X9>X(/8@@$>X
MH Y=M2\3^']=T6UUC4+&_MM7D>V)AM#$;:;877;\YWH=I'.#T-5?AC:ZK%/X
MDDO-2@N(?[9ND=$M/++2AES)NWG (&-N./6MFP\(7*ZO8ZCK.O7.K/IX;[&D
MD*1*C,NTNVT?.^W(R>F3Q6IH6A1:&NHB*9Y?MM]+>MN &UI""5'L,4 <IXWB
MUJ3QSX033=6BLTEEN$57MC* XA<EF^==P(X XP><GI55+;Q#<?$SQ-#I&HV5
MHXL;$S7$UL92S 2[0J;@ "=V22<8&.N1UGB/PX^N2Z==6VHRZ??Z=.TUO<)&
MLF-R%&!5N""&-3:?H*6'B#4=8-S)+-?P6\,BLH 'E!AGCUWG\J .3T[Q3/KG
M_" 7UQ8V8GU&2X$I,6XQ,D+Y,3'E<E?R.*M>%?$FI:IK\]KJFIVMK>))*'T2
M2S,<J(K$(Z2%OW@( )(!'/:K^F>!K;3(/#D27DKC0Y)GC)4?O?,5U.?3&_\
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
M-='>H9?4K$2I/N* .\HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M6/: 5)QA@=HSD=NU7+7PM86MWI=T);N6?38YHXI)IS(S^:07+D\DDC\*VZ*
M.,?X9:&ZF(W&I?8Q<BZAL_M1\F"3?O)1<=SG@Y W'&,U=U+P/IFI:M<Z@UQJ
M%NUXBI>PVMR8X[H*,#S .>G'!&1Q7344 8-CX0TO3O[#\CS_ /B2PR0VFY\_
M*X"MNXY.%%,/@W2CX4D\-_O_ + \K2GY_GW&;SCSC^\?RKH:* /+M4\,ZN/$
M7B"\&CZK<37TJO9W6EZN+2-%$:JOF+YBDL"#EMKY&/3%>@Z';W]KH-A;ZK<+
M<W\=NB7,R]'D"C<?SK0HH Y:T\ :/:Z#=:&9;V?3)R/+MYK@D6V&++Y1&"N&
M.0<D\#TJW8^%TM([E)]7U>_6>!H"+RYWA5/7   S[D$^];U% &)/X5TZX\)0
M^&I/._L^&*&%</\ /MB*E><?[ S5M]&M9/$,.MMYGVN&V>U7YOEV,RL>/7*B
MM"B@#GO^$-TK[-Y'[_9_:O\ :_W^?/\ ,\ST^[GM5N'P]8PR:RZ>;G5VW7.6
M[^6(_E]/E _&M:B@#EW\!Z;C33:WFHV4MA9+8)-:W&QY(!C".<<\C.1@YZ&A
MO 6CCPY9Z)#)>0065T;NUFBG(FAD+,V0Q!S]]ASG@UU%% &*OA?3_MTMY/YU
MS+-IRZ;-Y[[A+"I8_-QRQW')[UGZ=X!TO3[JRE:\U.[AL&W65K=W1DBMB!@%
M5QR0"0-Q..U=510!C)X8T]+'6[0>=Y6LR2RW7S\YD0(VWCCA15Z#3K:#28M,
MV>9:QP"WV2<[D"[<'UXJW10!REA\/M*L+BR;[7J=S;6#B2RLKFZ,D-NPX4JO
M4[0>-Q..U;=EHUK8:MJ>I0^9]HU%HVGW-D91 BX';@5H44 8FM>%[/6;VWO_
M +3>65_;HT<=W92^7)L;!*'((9<@'!!YZ4G_  BUF\.F)<75]<OIUW]LBEN)
MR[M)M9?F)[8<\# Z5N44 9D.A6<&JZIJ*>9Y^I)&D^6XQ&I5<#MPQKDM5\!"
M2_\ !UA9"[32](BN$-S%<!)H2441D$8).1V!'J,5Z!10!S"> ](70[[2Y'NY
MQ?SI<7=S--NGF=65E);';8HP !BI-4\&V6I:M+J<-]J6G7D\:Q7$EA<>5YZK
M]W>,$9&2 1@C/6NCHH XSQ;X363X:S^&=!T]2"L<5O'Y@7ROW@)D+$Y)7ENN
M21WS6RWA;36TW1;';(L&CRQ2VH1L?-&A1<^HP36U10!G0:+:6VM:AJL?F?:;
M^***;+?+MCW;<#M]\UD'P'I*Z1I-A;S7ML^DJ5L[N";;-&#PPW8P0>X(QP*Z
MBB@# ;PG:3Z5'87=[J%XJ7D=YYMS<;W,B,K*,XP%RHX  Z^M7SHUH?$0UP[_
M +8+0V?WOE\LN'Z>N16A10!RUKX#T^ST&[T6#4-5CL+@J4C6[(-L ^_;$0,J
M"3SUXXKJ:** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HK)L?$^@:GJ#V%CK6GW-XF=T$-RCN,
M=> <\=ZT+J[MK&VDN;NXBM[>,9>65PBJ/4D\"@":BJ&E:YI6NPO-I.I6E]&C
M;7:VF60*?0X/%7Z "BJMMJ5C>W%S;VMY;SS6K!+B.*0,T3'H& Z'ZU:H ***
M* "BBB@ HHHH **** "BJ>J:I9:-I\E_J$WDVL94/)M+8+,%' !/4@5<H **
M** "BFR2)#$\LCA(T4LS,<  =2:BL[RVU"SAO+.=)[:90\<L9RK*>A!H GHJ
MGJ>J66CV1O+^;R;<.D9?:6^9V"*, $\LP'XU<H **3(SC(R>U+0 444R::.W
M@DGF=8XHU+N[' 50,DD^E #Z*AM+NWOK2&[M9DFMYD$D<B'*NI&00?2IJ "B
MJUYJ%GIYM_MES%!]HF6"'S& \R1NBCU)P>*6^O;?3=/N;Z\D\JVMHFFEDP3M
M11DG Y/ [4 6**C@FCN;>.>%MT4J!T;&,@C(-24 %%%("",@@_2@!:*** "B
MJ=QJEE:ZE9Z=-.$N[P2&WCVD[P@!;G&!@$=:?8:A9ZI:+=V%S%<V[%E66)@R
MDJ2",^Q!% %FBBB@ HJG=:I965[96=Q-LN+YVCMTVD[V52Q&0,#Y03SBKE !
M1110 4453?5+*/5XM*:;%]+"UPD6T\QJ0&.<8X+#OGF@"Y1110 4444 %%%%
M !1110 456L]0L]0-P+.YBG-M,T$WEL#Y<BXRI]",CBK- !115:\U"ST_P"S
M_;+F*#[1,L$/F,!YDC?=4>I.#Q0!9HHHH **0$'H0?I2T %%%% !1110 445
M%/<PVUM+<3RI'#"I>21C@(H&22>V!0!+145M<P7EK#=6TJ2P3()(Y$.5=2,@
M@^A%2T %%%% !15:74+.'4(+"6YB2[N%9X868!G"XW$#OC(JS0 4444 %%%%
M !1110 4444 %%%% !115*ZU>QL]4L--GGV7=_YGV:/:3OV+N;D# P/7% %V
MBBB@ HHHH **** "BJU_?VFEV,M[?W,5M:Q#,DLK;549QR?QJP&4XPP.1G@]
MJ %HJM9ZA9ZB)S9W,4X@F:"7RV!V2+]Y3Z$>E6: "BBB@ HHJGIFJ66L6?VN
MPF\Z#S'BW[2OS(Q5A@@'A@10!<HHHH ***IKJEDVL/I(F_TY+=;EHMIXC9BH
M;.,=5(QG/% %RBBB@ HHHH **** "BJ>EZI9:UID&HZ?-Y]I.-T<FTKN&<="
M >H-7* "BBJ>EZI9:UIT5_I\WG6LI8))M*YVL5/! /4$4 7**** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ JAKAM1H&HF]N#;6GV63SIP<&--IW,/
MH,FK]5M0L;;5-.N;"\C$EM<Q-#*A.-RL,$?D: /(-!>^6Y\#V^O:8NG:59R;
M=-OXH@&NY"A2)9%!S#O4[B#G<<=*]@O;:TN[5H[Z&&:W!#LLZAE!4Y!.>."
M?PKF[3P'!#/IYO-;U;4;;39%EL[6ZDCV1NHPK$JBLQ7MN)J?4_!D&K:+JVE7
M.KZN8-2N3/(PN 6B!Q^Z3*D"/C[N#U/K0!C^#;>/5/&>N^*["!8-)N8HK.U9
M5VB[,9.Z;'ID[5/<"NNUO58-#T.^U6Y/[FT@>9AGKM&<?4]/QJAH?AJ30Y@W
M]O:M>PK%Y26]TT7EH.,$!(U((Q@<XP:MZ_H5KXCTS^S[V29;8S1RR+$0/,",
M&"-D'Y20,_SH \E\#ZQI6D^+-!D@U."XO-?M9(]65">+LL9D8^IR\D8^@KTK
MQ[JUYH7@?5=3T^01W=O$'C9E# '<!T/'>KVOZ!:^(K".UNI)HO)N(KF*: @/
M')&P92"01VQTZ$UG?$/3;O6/ &L:?8P-/=3PA8XE(!8[@>] &4;_ ,0^'O%N
MAVVJ:PFI6NKB=)8A:I&+>1(S(#&1\Q7 (PQ)Z'-<[I7C/Q+J=EIVN6S:K</=
M7*%M,31V^RBW9]IVS;,[E4[MV[!(/%=OI?@JVL-8M]3N-3U+49;2)HK-+V57
M6V5N&VX4$D@8W,2<=Z9I_@E-)ECCT_7=7MM-CF\Y-.22/RE^;<5!*%PF?X=W
M>@"AI=UXBUCQQKL/]LK;Z5I5[$B6Z6R,TP:%&9&8C(7DX(YRQYP *SM#\5:C
M:C4)O$6IW4>K6MI<7,NBS6:11E4R0T$@7+K@8SN;KSBNVT_0[;3=0U:]ADF,
MNIS+-,&885E14&W X&%'7/-9=IX*MX]1BO=1U74=7:"&2"W2^:,K$D@ ?[J*
M6) QEB>* .:?5_%.E>&]'\67FMI=17DML;K31:QK$D<[*N(V W[EWCDDYQ4M
MW?>*M2U7Q@MEKZ6%MHTB_9D6TCD9SY"2;7+#[N<].?F/. !6O9?#RQM&L89=
M5U6[TVPE66TTZXE0PQ,OW.0H9@O8,Q P*V(?#=G!-K<JR3EM88-< L,*1&(_
MEXXX4=<\T /\/ZC+KGA32]3<"*:]LHIVV#A&= 3C/H37F]W\0M=M/#VBDNCZ
ME9W<W]NXC7_46\@CE.,87.]&R,>U>H:1ID.BZ-8Z7;M(T%G EO&TA!8JBA03
M@ 9P/2L1/ 6C+J^O:B?/9]:@,%S$SCRU5E"OL&."V 3DGD"@#D/&NK7^L>%_
M&KQS(VG6=W9V=FI48,JR1M*Q(Y(W.%Z_PFMV+4M<\/>+X=/U;5AJEI=Z;/=X
M%LD1ADB*9";>JD/T;)XZUHP^ M*@\$_\(JL]X;,N)'G9U,SMYHEW,VW!)8>G
M2M:YT*UN_$%GK,K2?:+6WEMT0$;&60J6R,9)^0=^YH \_DU[Q3:^!K7QW+K*
M212>5<R:2+9!"()'4;%?&_>%8'))Y'2NY\72ZK;^%-2N-$D":C!"9H<H&W%/
MF*X/]X K^-8]O\.-/@2"S.J:I+HUO,)H=*DE4P*P;<H^[O*@X(4L1Q794 <,
MOBNXUW6;8:1,HTV/13J-U\BMN:48A0DC@C:['Z"LO1==USQ!#X7T:TU%=.DN
M-#74[R[BMXR[<J@1%(V+R23\O88Q74>'/ ^D^%['4K2P:X*7\A:0RN&**1@(
MO PJC.!SU-0-X!L8[/1X['4=0L;O2;;[);WL#IYK18 *N&4JP. ?N]>F* .1
MU_5=2N?"GB#1M6N$N[K2=8L(A=K&(_.C>:%U+*. PW8.,#VK3\;^([S39=7D
MTWQ)=K<Z?;^<+"TTG[1'&0F[$\FQMN[']Y, Y[9K?'@32_[ N-*>>\D^U7:7
MES=/(#--*CJX+'&/X%&  ,=,5%J?@&SU*[U61=5U2TM]64"^M;:1%CF(39G)
M4LOR@ X(!QS0!SM[%J>K_$;PO>P:Q+9&[T>:=4C@C<1#]R64;@<AB1R>1CBJ
M]]XO\07]WX@FTRXU2)]-NY;6SL[71VN(9VBX/FR;"?F;(^5EVC!YKL[[P;;7
M4FCS0:C?V5SI4)MX9[9TW/&0H96W*0<[!T YZ5'-X+0:E>7>FZYJNEK?2>;=
M06CQ^7))@ N-Z,58@#)4C- &%KGB'6+;5[674;^[\/:1+9PR1W"62S1BX8G?
M'.S*3&!\H'W<Y/S5W&KS-!H=_/$5W);2.I(!&0I(XZ&L?6_!ZZ[YL-QK>K1V
M$\:Q7%E'(GERJ.,$E"RY[[6&:W;BSBN=/EL3E(9(C"=G!"D8X_"@#SRVUGQ#
MJ(\#V%CJ<5C_ &IHS7-W*MJC$,J0G*+C:#\Q&,;1GH<"E37O%7_",ZQ!#-)>
MW^EZS]BFN[>U1IFML(S2+%]UI KXP!CC.*ZRQ\)6%A<:'-%+<EM&LFL;<,RX
M9&" E^.6_=CI@<GBF'PE'$FH?8=5U&QFOK\W[S0.FY7*!-H#*04PHX(//?I0
M!SLWB%WT;P[/8ZU_:JSZ]#:2SSVJ)(JG=N1DVC:XP.=JFLG7KOQ%XC\'>,]4
MBUA+6PM?MMG'I_V9&62*)61V9_OAVPQ&#@<<&NQM_ NG0VEM$]U>S2Q:H-6D
MN)'7?/< 8R^%QC&!A0.@JK?_  XT^^;5(QJFJVUAJ;O+=6%O,JQ/(PPS_=+#
M/4C.">H(XH P;GQ+J U'3-!M+K4;*W@T>"ZEFT[3OM<KN_RJN"C!5 4G.,DG
M':GR^(O%MQHOAF 2?V=J=_J<ME--<V>W?$J2%9?+;E20JL!QSQTXKJ+WP9;S
M7-G>6.I7^FWUK:BS%S:LA:2$=%=75E;!Y''!)JPWA>"4:.;J_OKJ;2[EKF.:
M9U+R.5=3OPH&,.<  8P* -"UM+R'2%M9]1DN+L1E3>&)%8MSAMH&W(X[8XKR
M[P]+K.@?##Q-J\.M22R6\FH-#&]O%M259G_>?=Y)()P>.>E>O5R8\!60L-;T
MX:EJ/]G:L)M]KO39 TIR[1G9D$DGJ2!D\4 5)[C5]*\,I=ZSXM$%Q>RQ%6@T
M]9#&6!/DP( 2Y/&"P8\'CTP8O'6KV'A[Q:3/->W&ES6T5E/?V1MI"9]JCS(]
MJ_=9LYP,BNZUOPS;:U86-NUS<VLMA,D]K<V[*)(W52H/S J>"001CFL^+P!I
M9LM:MKVZOK_^V507DMS*I<E!A67:H"D<8P,# P* ,&33]9T_XF^$4U36_P"U
M4:&]*.]LD3HWEIN'R8!4\8XR.>356U\1^(+CPMX5^PWEO;7>IZO<VDTIME*B
M,-/@A!@9&Q3QC)'/4UU6G^!X+36['6+K6=6U*^LD>.%[N5" C+@C:J@>^>I/
M4GBI+3P3IMG9Z/:QS7132KV2]@+,N6=_,R&^7D?O6Z8Z#F@#F;KQ-X@\/67C
M.TGOTU*XT>"WN+2ZFA1&Q,&!#*F VTJ2,#GI5GPEJVI:GXREAMO%,VMZ+!9+
M))-]EA11.S$>665!R -V!R.AJWXT\(RWFE>(+K2XY;C4-42UCEA\Q5PD+YS&
M3C#X9B"3C(%0^&K36T\3PS0)K]OHRV\@NH];NDF:20E=GE@,S#'S9)(!XH N
M>*_^1W\#_P#7[<_^DTE<]=>+KZTUO39K+Q%=:I;W.K1V4T0TK99A'<H0D^SE
ME/\ MG.#7H&H:);:EJNE:A,\JS:9*\L(0@*Q9"AW9'(PQZ8YKG8/AM80+9VX
MU;5CI]C>+>6EB94\J%U?>!PFYESD88G /'/- &)K7BWQ#967B/2+297\01ZI
M'!IK&)<>3,OFIQC!PBRC./X:OVOBW5O$-WYGA_RWCB\/B^,# 8>[F'[F-B>1
MC8^<$=>:Z&X\(:;<^,[7Q2[3B_MH3"J*P\MN& 9AC)8!W .>AJ#0_ ^F^'M/
MU6TTZXO8O[1E:5YA*/,AR,!8R!P%[ YZ]Z *?@76)M1%Q#>ZW>76HQQQFYL;
MZR2VEM7.<X"JN4/8_-TZFJ/B.VU&\^*NCPZ;J L)&TBY\RX\H2,J>;%G8&^7
M=G')!&,\5T6C>%X]*U2?5+C4K[4M0FA6W^T793*1*20JA%4 9)).,FH]<\(6
M^MZQ:ZL-1U"QO[2%X8)K215VAB"205(;IC!R.>F<$ '(CQ9X@TRRN9;Z]2YC
MT+7$L]1G$*K]HM)%7$A 'RLID4G;@?+76>']6O=8\2>('\T?V393)96R!1\T
MJKF9L]3RP7T^4U6N?"MKI/@37--M;>YU.:]BGDF\YP9KN9UQDMP 3P.  ,"K
M_@K0CX;\'Z;I<A+7$<6ZX<G):9CN<D]_F)H YKQ#XFU&7QG=Z):7>I6-M8VL
M4KRZ=IGVN2220M@-\C!5 7T!))YXJ#_A(?%E[:>#[4R#2M1U.>Y@NS/9\[8T
M<AQ&W*DA0P!XR1G(XKJM5\*1ZAK U>SU._TO4#"())K,I^]C!) =75E."3@X
MR,U+_P (S;O<Z+<SWM[<7&DO(\4LSJ6E+H4._P"7GACC&,<4 <==>*=>T'1O
M&%M<7\=]=Z--;K;WLL"J=DX0Y9%P&*;C@ <X'%2>'];U&ZUO6'B\7G4="L]/
M$@OYK6%8HYSNW!F15W;0H8@$8S@U>\9^$9;C2]:N-+BN+F[U2YLY;F)951U2
M%EYA)P%?:N02>M5-*T/4M5U&[L[F+7HO#=U826]U#K-TLLDDC$ &/#,RX7=D
MDX.1QWH CT'Q/?GQII6GC6;_ %6PU*VG<R7FE_9%5D"L&B;8N]2">/FQP<\U
MD:+XMUO7[S06M/$[/>7MXW]H:7!:1,MI  YSN*E@/E4;B3NW<5V=KX'6RO;3
M46UC4M1O;""2&S%[(GEJK+MP0B+GH,GJ<<DUQWA_0O$NFV.B6%C;>(K*_MI8
MA>-=7L;V"QAOW@1-[94C(4  CCD8H O77B77(M.U(Z?<6\-T?%JZ;$[VZE1&
MQ088 #=][D_>]ZO-K>O^'-5U_3KS45U<VVB'5;62:%(2KJ74QG9@%25!SU'K
M6ZW@G36253-=8DUA=9/S+_KE*D+]W[GRCCK[U7\7^%GU*TUK4-/3SM5NM(?3
M8X)6 B922WI][+'G..E '.^%=>U;6/%&DQ6OBN75;)[)[G4HULXD6WE^7;&6
M" KDLWRD[AMZUU'C+4;C3_\ A'_LY0?:-:M[>3?&K?(V[.,C@\=1S7/>'M/U
MV'7=)^Q1^)+:QA5AJ UJ\29'780JH S'=NP<C P#ZXKMM8T2VUO[!]I>5?L-
MY'>Q^60,NF< Y!XY]OK0!PMUJ7BN^_X3&ZL]>2S@T2XD%M"MI&YDVPI)M<L/
MN\]OFY// %=WI=Y+K'ANRO@WV>6\LTF!4 ^6SH#P#UP3WJK%X7LHK?78%EN-
MNM2/)<$L,J6C6,[...%'7/-:.FV,6EZ7::? SM%:PI A<@L550HSCO@4 >6^
M'7UC0OASXLU>+6I99+:74FAC>WB 65)7/F<+R21G!XYZ5T<ESJ^F>%DOM:\6
MB">^>(HT.GJYB+ GRH4 )<GC!8,>"<>EX> [);37+$:EJ(T_5Q-YEIO39"TI
MR[1_)D$G/4D#)XK0UGPQ:ZSIEC:-<W-M)82QSVMS RB2*1 5!Y!4\$@@C!S0
M!P@\9ZU;^&?&Y6^N9Y]&BCEM+J]L1;S8=,X>,JHX(.#M&0:W;:]\1:1XQT*S
MU/6(]0M]9AG+PBV6);>2- X\LCYBN"1\Q)[U<_X5]I[Z?KMK<ZCJ5R^MQI'>
M7$TB&0[00"N% 7@],8X&!6S>:#:WNKZ5J4DDRS:8)1"%8!6\Q-AW<9Z#C!%
M')^$M>U*?59;;Q#K$]KJP25Y-*N;-(X54-P\,@ +J!U.YNO.*S].\5WZ>*-
MBA\07FL6.IS202M+I/V>WXC9@T,FP9Y7IN;(/7O746_@BW%_'=ZEJVIZL8(9
M8+=+UT(B20;7Y1%+$CC+$G%0:?\ #ZTL;C2)'UG5KJ/2'S8P3RQ[(EV,FTA4
M!;ANI)/ YZY *GARY\1>* ^NQZZ+.R^WRQ1:>MHCH88Y"AW,?GWMM)R#@9'!
MK$\*V^JZ=I/CF]?6I+D6][? PR6T05Y5C4^8<+U_V?N^U=;;^"+>RU22YLM8
MU:UM);K[9)I\,RB!I2VXG[N\*3R5# 'GC'%/C\&6L-WK,D6HWZ6NKB0W%F'3
MRA)(H5I%RNX-@>I'M0!@66LZUKEQX=T.RU$::TNA1:G=W45O&SL6VJ$16!51
MG<3P>P&*IWOBSQ'8>'=;M/MD$NK:5J]M9)>-  LT<KQ$%T' .UR#MQ[8-=1<
M^![-X]*:RU'4-/O-,M19P7ELZ>8T( &UPRE6'R@].O(Q2KX$TL:%)I;3WC^=
M>)?7%T\@,T\RNKAF.,?P*, #@8&* ,RTO?$FE>+[G0[C4TU=I](DO[8RVZ0[
M)D=4V?)CY#O'7)&.M/\  FLW>H226^JZS=RZLD"O=:9>626[V[9Y9,*-T>>
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
MN".#4M>,:'<WWAGX)6FHZ=>WTEU>R16R!I%<6^^<H3&K84'!/4XSC-='I/\
MPD=CJ=X1;:]%I!TZ5G;5[F"5TN%QM*%)&."-V1TX&* /1**\ETR;6K+0/!'B
M*;Q#J-W<ZG<VEO=03./(:.52,!,?>'!W9R3G/6MS18-0\5ZIK>H3:]J5F;#5
M9;*VMK60+$B1;1\Z$$.6Y)SV(QB@#OJ*\AFU+Q/KTWB*ZTZ'Q"U[9W\]II_V
M*>W2TC,1PHD1Y 7W$98E3PW%;W_$U\4>,[W3+G5;[28]-T^VE\FQE"%IY=Q9
MB<'<%VXQR* .PT76;77M-%_9>9Y)EDB_>+@[D<HW'U4U;ANK>X>9()XI6A?R
MY0CAC&V =K8Z'!!P?45Q_P *%=? -NLDOG.+N[#28 WG[1)DX'3-<YH<$OAV
M/X@:W!?ZA<RZ;=7#)!-/NCE9;:-@SC')[9] * /6**\PF&JZ!I7AKQ GB+4;
MZYO[NTBNX)Y0T$ZSD!@B 80C.5V]ASFNP\87UO8Z(OVB]O[4SSQP1#3P#/,[
M'B-,@X)QUXP,\B@#?HK@O =_J#>(_$6DW1U46UHMM+;Q:K(DD\?F!]PW*S94
ME 1DY'-1^,YM1T_7CJ&H7&LP^&X[5<3Z3* ;64,=[S)]YEQMYPP&#D<YH ]!
MK/O]9M=.U+3+"<2>=J,KQ0;5R-RH7.?3A36)HVIW%U\0O$5JUTTEG%9V4L$9
M;*KO$NYA]<#\A7"VTU_XAT?X;R3:K<17=S>W8>\4AI,".8'!((R5& >V<]J
M/9:BN;JWLK=[BZGB@@3&Z25PJKDX&2>!R:\W)\2P7/B_PSHVJ75[/:P6MQ92
MW4P,T?F$^9'YA'4JAVD],UE>*)+74OA?KT$5]K\-U87$)N;349LRQ,S)A6/.
MY"#N')&>0>U 'L5%</KZ0::FEZ)_:GB6[NI?-DC@L9U^T3J,$L\AV[57( ^9
M>O>N:BUW7KCP79PKJ=[:WB^*!I8N)@C3K%YI4"3&59@" >H..] 'KC,%4LQ
M &23VK/NM<TZTTV'47N1):3O&D4L"F57+D!2-@.021STKBTM;VS\2ZYX9?6]
M4N;*71TODEGGW30R;W1@KXX!VCCZXQ6/I NM"^#GA^\L]3OO-NI=.!#S9$:M
M*BLB#'"D$@B@#UVL_P#MFU_X2+^P_P!Y]L^R?;/N_+Y>_9U]<UYYXYU:5?\
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
M^VGU<Q$WLEL+1G+'!C#%@,=.I/-9%KX$T.STLZ9''=-9>?'.D$EW(ZQ-&^]
M@+?*H;G Z]ZO:WKJ:+/I$30-+_:-\MFI#8V%D=MWO]SI[TDGB*VM+"]OM3@N
M=/MK6Z^S>9<1_P"MRRJKH%R2K,P /USB@"CJ7@'0-6N[V>ZBNMM\/]+@BNY(
MXIV"[0S(K!2P '..PK5@T/3[;5(M2BA(NHK,62OO) B#;@,=.O?K4L]\\.IV
MEF+*YE2X5V:Y108X=H& YSD$YXP#T-7* .6N]*U/4?B'IVI2VT,.F:7;3I'+
MYVY[AYA&"-F/E"[#U/-):_#SP]9SVLD4-T5LYQ/:0O>2M%;,#G]VA;:HSVQ7
M544 8DWA/1Y[6^MY+=C%?7B7TX\QOFF4H0>O',:\#CBM6\M(+^RGL[J,2V\\
M;12QMT96&"/R-344 <X/ ^B_V%'H\BWDUM#*)H'EO)6E@=0 ICD+;DP!@ $#
MKZFI!X.TIM&OM+N'OKNWOE"W#75[+*[ = &9B5'TQ6_10!1O](LM2EL);J,N
M]C.+BW(8C:X5ESQUX8\&FQ:+8PZCJ-^D1%QJ"1I<MO/SA 57CMP3TK0HH IZ
M7IEKHVE6NF6492UMHQ%$A8MA1T&3R:P;;X=^';6>UDC@NBEG.+BT@>\E:*W<
M-N_=H6VKS[>W2NJHH RT\/:;'!JT*PL$U5WDNQO/SED"''/'RJ.E4K[P5HM_
M#IR-'<P/IT/V>VFM;J2&58L %"ZD$@@#K70T4 9FA^'],\-V<MII5L+>WDE,
MS(&)&X@ GD^PJ:RTFST^\O[JVC*S7\HFN"6)W,%" X/3A1TJ[61X7UU?$WAN
MRUE(#;K=(6$1;<5PQ'7CTH I6O@;1K&]6>T-_!$LWGK:17\RVX?.[(B#;<9Y
MQC'M53Q%X TG5X]5NHX9A>7L#!XDNI(X9Y0A"-)&#M8CCDCM77T4 <G;^"K.
M^\-^'K;55GBU#2[..%9[2Y>&2-O+574.A!P<<_2K=MX'\/V>F_V?;V1CM?MJ
M7_EB5O\ 7(5(;.<]47CO^-=#10!2M-)L['4-0OK>,K<7[H]PQ8G<50(..W '
M2LA/ VC17SW,!O[=))OM#VL%_-' TF<EC&K!>3R1C![BNDHH YW4O ^A:KJD
MVH7,$XEN%5+I(KF2..Y"\*)44A7QTY'3CI6OI>FVNC:7:Z;9(8[6UC6*)2Q8
MA0, 9/)JW10!@6W@W1;5M3"02M;ZEO\ M%K).[P$N<N5C)VJ2>I IFD^"=&T
M:_AO8%NYY[=#';-=W<DXMT/!6,.Q"\<<<XXKHJ* .6\<>&W\46FD6GDI-;PZ
MI#<7*,^W,2APV".<_,.G-6++P3H=G:ZC UO-=?VC'Y5W+>7#SR2I@@*78D@
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
MDU32K2\6'_5>=$&V?0]JAN_"7AV^L;:RN=#T^6UM<BWB:W7;%GJ%&.,]\=:
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
M]-M8!9*ZVPCB \D.<OM],GKZU /"GAY=8_M<:)8#4=V_[3]G7?N_O9QU]^M
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
M6XR0WW05P%*%\ ].:71I;)_'^IHVH:*EH_AR7[3-HB>7%&!(O);)!958G/&
M1Q0!ZO;:A97KRI:WEO.\1Q(L4H8H?0X/%%MJ-E>22QVMY;SR1'$BQ2JQ0^X!
MXKQQ;F:S\,Z_X<T,:1J%U;:$7M]6T9 ':,$+Y<@7.)",L,-S@G K6\+V5A<^
M(/#][I^O^%P;:"18[72K8Q33QM'C8^96.%(#'(X(]: .R\6>*X- T:[N;62U
MN+VV>$-;&4;@'E1,D Y'#9KI*^?9V\,M\*;:.Y6T;Q:+Y3< @&[6?[2/-+X^
M8#&>6XQCVKUGXD?;?^%=ZW_9_FF?[/SY/W]FX>9C'?9NH W[;4K&]EDBM+VV
MGDCXD6*56*?4 \4'4]/6:.%KZV$LK%(T,J[G8'! &>2#QBO-W;PO<>*O!O\
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
M.<>]4-;1X_!NHI)+YKKI\H:3&-Y\LY/XUY/IC^&IO#W@"/P_]D/B$7MH\WD
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
M(&>II^J^+O#VB78M=3UBTM9R QCDD *@]"W]T>YQ0!K?9X1&L?E1^6IR%VC
M.<YQ]:;):6TLWG26\+R[2F]D!;:>HSZ5S>M_$'0M \0Z?I-[>0QF[B>5IFE
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
M.X_><9^4=6X]*LZ=J=CJ]C'>Z==PW5K)]V6%PRGUY% %JBBB@ HHHH ****
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
M;VW]GW,,ICMW9;6=G7;(5P60.BGKTS@UG:S:2:KX:\>ZI9V4XTS5+JS^RQM
MR&?8T:R2!",X8]\<[<U[)10!QU_9B#XH>&Y+>VV0IIMY"S1IA54&+:IQP!UP
M*J?$B2ZT5M(\5V%K+<SZ;+)#)%$A9GBF0KT'7#B,UWE% 'BNF>&K_2=;T[P4
M\$[V%[-9ZO=3%28]T49\Y6/JTL41Q_M&NHLM-5]5^(\LEF"UPRQJ[1\R)]E7
MY0>XR3QZUZ%10!Y)HEP/#^H>$M9UN&X2P/AB&TCG,#R"WN,JS!@ 2I9<#)_N
MXK7\.:I;Z!IWB;Q+=V]S;:1?:L);2(PE7<.(X]X0X(WOSR,XYKT2JE]IEIJ3
MVK7<7F_99Q<1*6.!( 0"1WQG(SWP>H% %NBBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "J]_?6^FV,MY=,RP1#+%49S^"J"2?8"K%8?C"76
M8/"M])H",^IJJ^4%4,V-PWE0W!8+N(![XH AM/&NE7@O42/4([FSA$\EK-83
M),8R<!EC*[F&1C@&H_ WBY?&/A^"_-I/;3F-6E5X)$CR2?N.P <<=1G%<[X6
ML+Z3XARZFT&NFQ;2#;K<ZNH5VD\U6("@#:,>H'?'%:WPS%W9^#[31K_3;VSN
MM-3R93/'M20[FYC;/S# !R/44 2:-XZAU7QCJN@FQO8_LDJ1Q2FSF"MF/<Q<
ME<)R#MR1N&",YK'\#_$:QO/#VC0ZM>W$FH73^0]TUJ_DF8L=L9D"[ Q&.,UI
MZ4+O3/B5X@6?3;QK?53;26]W''NA CAVL';/RG*XQWR*P+?0-43X-Z'IG]GS
M"^AO;:22#9\Z 709B1[+D_2@#LM6\::-H][-:7#W4LMN@DN?LUI),MLAY#2%
M%(48YYYQSTJ_?ZQ;V>@RZO'ON;=8?.0V\;2F0$<$!020<CIVYKSV\T>YTWQ7
MXB:^A\2R6FIS+/!)I!W(ZF-49' Y4@KC)X((KO--TR*T\)6VF6<,T$260ABB
MN&!>,;,!6()&1T.": .;LO' USP9I^KI/+I$TLUJDK36$CHS2,!L3<!N!SC>
M,@9S6GJ7Q"\.Z5>WMG<7%PT]BP%VL-I)+Y"E0V]RJG"X8<_7T-<E;6FJ7GPO
MT/1CHNHP7VF7>GQSQS0XW>7*F]E.?F4!<YZ8K932+[S/B*39R?Z?Q;';_KA]
MD5?E]?FR/K0!M6'CC0-3U>'3;6ZD>2X#_9I3 XAN"HRPCD(VN0.N":;=^.]!
MLKZ:VFGN-EO*(+BZ2UD:W@D./E>4+M4\C.3QGG%8?]CWXL/AP@LI0VGO']J
M7_4@6K*=WI\Q ^M<]#X=DLX-7T/6;+Q7<1W-[<.HTYMUM<Q2N6!)Z*><$,1R
M* /5]1U&STC3I]0O[A+>T@7?)*_11_GMWK'T[QKH^I7,EK&+V&Z6 W"P7-E+
M#)+&.K1JR@O]!D^U5_'FCWFI>$/L^FP?:)[6>WN%MBP'GK%(K%,GN0O?OBLY
M)+SQ3XXT'4XM'U#3[/2([AYI;^'RFD>5 @C5<Y..23TX'- $?P]UZZ\2W^K:
MA<WVJ,!<SQ1V<UF8K>*-9-J;6* EP%Y&[(R<@8K<U3QOHVC7<L%Z;U4@95GN
M5LI6@A+8QOD"[1U'?C/-0^ K"ZT_1+V*\MY()'U2\E57&"4:9BK?0@@UQ?C:
M'Q+JUMXHTZ:VUZ61]R:;!8QH+1X-@(+OC);.[*DYZ "@#OM7\9Z-HNIC3+F2
MXDOV@6X2VMK:2:1T)894(#G[C9]/Q%:6D:M8Z[I4&I:=.)[2=<QN 1G!P00>
M00000>XKG;'3;M/B6U^]M(+;^P(+<3%?E\P3.2N?7!!J;X?V%UIOAN6WO+=X
M)/[0NW5'&#M:=V4_0@@_C0!%:>,=-TWP_'J&L:TMQ%-?S6B7"VC1C>K/B/:,
MG("$9[D>]7;/QMH5Y8ZE=FXEMDTQ0UXEW;O#)"I&02C '! XXYKCK+0=470_
M#D,FGSA[?Q5-=RJ4Y2(R3D.?;YE.?<5JZGI)D\5>*9[[1[J^TN[TJU@:.!>9
M\/+N"\C+ ,#USTQSB@#1U/Q9!/X4U._M;J[TAK5$8W%[IDF8PQ&&$; ;P>1Q
MTJ[K'C'1]#OTL;N2XDN3%Y[I;6LDQBBSCS'V [5SW-<'>67B+4?!'BO38H=8
MNM.,4*Z8NIQ 73-NS(O9F487!89Z]:WY9+_PWX^UO4#HFH:C;:M;6WV>2RC#
M['B#*8WR1L!W @GCD\T .\*>,XA\/]-UC6KV2XGO+B>*'RHC)).1-($5$098
M[5'0=!DULCQMH7]B7>K2W,D%M92K#=+/"\<D#DJ '0@,/O+SC&#FO/+;PSK-
MKX8\'WEQ8ZG$VEW-]]LMM/8"XC6:1]KI_> XZ<E6XK0U30%OO!'B)],T[79;
MS4)K3S/[47,LXCD3E5/. N>H'3VH [_2?$%EK6F3:A9I=&WC8C,EK(C.  VY
M%8 L"",$#FN?\/?$:RU;2M6O[RUN[2+3GN&D=K24)Y43$9W%0-^!DIU'/'%=
MJ!@8%>716>IIX+\;^'6TB_%W*VHS6\GE9BG65F*!&SRQW=/8T =;;^.=$NM/
MGOK=KV6VC=8T=+&9O/+9QY0"YD'!Y7(XJ6T\9:)=:;J%^UQ):Q:;_P ?B7<+
MPR0<9&Y& /(Z>O:LSQ"=;T_P?H\6D174>Q[>*]^QQ*\\5OMP_EJ01N!VCH2!
MG KC9/#>M:EIOC5K>QU1S=FPFM!JA42W0A;<RGTSMP <'D9Q0!T\?C>/5_'O
MA[3M-FNX8)H+J2ZMKFT>%G 5#$^'4''WL$>]7K'QIIFG^&=.O]7UH70O)Y8(
MKI+-H_-=6?Y1&,D$!"H_O$#'6LY;J_\ $/Q!\.:FF@:E96-E!=I)->Q",[W5
M,+MR2 -O4\$GCI6;HN@ZI#HW@6*;3YU>SU>ZFN%9.8D;[1M9O0'<OYB@#LK/
MQIH=YIFH7YN9+:+33B\2Z@>&2#C(W(P#<CIQSVI-*\::5J^L'2H(M1BO1%YQ
MCN;":+"'HQ+*  <'&>N*XCQO8W4 \>7,ELXAOHM-BMFP1YSAR"$]7!(QVSC/
M%:OA:XEB\:'_ (2"/5DUR\LC';/>10)&T$;;F5?)=ANRX)+8[8H [2WUBRN=
M8O=*CE/VRS2.2:-E(PKYVD$\$<'ITQ6/:^)K75]8T1]/U4"SOH;EDMVM&S<^
M6RJ6#G&T*3Z?,#6'\0M-UR'5+75_#EI)/=WEI+I-QY?_ "S63F.4^R-DY_VJ
MMR^&Y+'Q1X2MK""0:?I^F7=J9U7B/*Q*F3ZG:3^!H T/^%A>'?M8A^T7'D&?
M[,+W[+)]E,N=NSSMNS.>,YQGO45GKTL'C'Q;%?W+?V=IUO9RQH$W>7O60O@*
M,DG:..?:N-%EK$_PRC^'Y\/7\>I!5M'NC&/LJJ) 3,),X(P-V/O9XQ6[J%IX
MBL=6\<ZAHMJYO)K.R%C(R@B1D5P^W/!8 ]#WQ0!T%EXUTF^ENH4CU"*YMH#<
MM;3V$T<SQ9QN1"N7&>. 3FN?LOB -=^']UK"RS:+<1 %[B73Y98DS+L&W< )
M,@8.#P3STJOX9LK^7XC6^J-#K[V2Z3+ USJZ*C>89(SM"@#;P#V .#CI6;'I
M^K2?!W4?#!T;4$U*T;;AH?DFS<EP8VS\PV\\4 =[J_C'2-&OVL9C=W%TD8EE
MBL[22X,*'HS[%.T<'K27GC;P]9:?IU_+J :UU+/V22*-G\TA<X 4$Y[ 8SGC
MK6$D]]X5\9^([N;1-2U"VU5H)[:>QA\TY2,(8WY&WD9!/'/6L[1?"^JZ:G@2
M.YLSOMKV]N;I4^9;;S4E95)''!<+]: .YT+Q%IWB*&=[%Y0]M)Y4\,\+12Q/
MC.&1@"."#5K5;BZM-(O+BRMC=7<4#O# #CS7"DJN?<X%<>UW)X5UOQUXAO;.
M8V>VTDAVC'GE8MI52>IW87ZUW$,AE@CD:-HRZABC=5R.A]Z .3T";7K:ZGF\
M0SO#8V.G1,\TNP+/,X+S.<?="8"@= ,]:S+KX@6VJ>(_"]GH]Q=Q1WEXWF+/
M:/$+F#R7(9"ZC<NX+R/;UKIO&>E7.N>"]9TNS(%S=6DD<63@%B.!GMGI^-<B
M]UJ>OZSX-,?AG4[*'3KHM=R7,018CY#KM49RRY_BZ?=]> #>@\7Z=I>E7U_K
M&M)+;QZI+9B86K1B%@Q C(&<[<$;^]6G\:Z1'IUI=NM\&O'9+>U^Q2_:)2OW
ML1;=V .<XQ@CUKCSH&IOI8A;3IF)\:_;2I3/^C_:-WF?[N.<UI^-M)O#XMTC
M7$CU:6QAM9K6?^RF_?Q%F5E;;U93M(..>E '0CQEH7]@2:TUX4M(Y?(</$XE
M67./+,>-V_) VXS6)KGQ*LM-TB.\M;'4))3>16TD$UA/&T89E!)&W(.ULK_>
M/ R>*Q[K07CT.TU72-+UJ9[;7H]4NK>_(^TW(5-C,JD]<$$ X)*_2M/Q3=W_
M (E\(RS6>@ZG&;2^M9UAN(@DTZQRH[[$SG@ ]<9[4 6;OQ2Z^+=)=)+J+2I=
M)O+N:"2V9)"8VCP2C+O! +8&.<UOMXETI;#2KW[3N@U62.*S94),C2#<O &1
MP"3GICFL,QW.J>/=!U==/NX;,:9=I)]HBV&-F>+:K#L2%)Q7-^#-*NAXZFT2
M=,Z9X3>8V;9SN-S\T8/ND9=?Q% 'H6M^(=.\/Q0-?22>9</Y<$$,32RS-C.%
M102>/RJE%XVT*71+[5C<R16^GMMNTF@=)8&XX:,C<.H[5G>*H+VR\7:!XBAT
M^YU"TLXKBWN(K5-\L?F!=LBI_%]W!QS@US.LZ-JVN:)X[U:+2;N ZO!;P6=G
M*F)I!$,%V09QG=@ \X6@#T71-?L?$%O)<:?Y[0(^T22P/&L@QD,A8#<I[$<5
MB6WC+3=,T87FL:TLZ2ZC/9QS+:-'\ZL^(]HR20$(S_$<8ZUUB*$C55 4
M=*\OLM!U1+705DT^<&#Q7<W<@*?<B)GVN?8[EY]Q0!VNF^,-&U.TU"Y2>2W7
M3AF\2[A>!X!MW LK@$ @9!KG'\>P:MXQ\+6&E3W<4-W+.T\5Q:/#Y\0@9D==
MZC*[@#D?C53Q/X9U76+[QU#:6SC[?I=HEL[?*LSH9"4!Z9Z#_@0J=[S4?$7C
M'PC=Q^&]3L;6PDG-S+=Q"/RV>!E"@9R1GC=TY&,]@#6M_&.FZ7H+:CK.M+/
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
MHIU#PY:>++UM'O+II=<>:"W@4;YHW6%=ZYZC[Q_ UW% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% %/5-*L=:
MT^6PU&W2XM9<;HVSV.001R"" 01R*I:5X5T?1KQKRTMY6NF3R_/N;F6X<)G.
MT-(S$#(' ]*V:* "BBB@ HHHH **** "BBB@""ZL[:]1$N8$F1)%E57&0'4Y
M4_4$ BIZ** "BBB@ HHHH **** "J5AI-CI<MY+9P>7)>SFXN&+%B\A &>2<
M< # X&.*NT4 %%%% !1110 4444 %%%% !1110 52T_2;'2Y+R2S@\M[RX:Y
MN&+%B\A !/).. !@<#'%7:* "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@"G>Z59:A<64]U#YDME-Y]NVXC8^TKG@\\,1SZU<HHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MJ]_<M9:==720O,T$3R")/O.5!.T>YQB@"Q17G&B^,]<NKGPS<3W6CWUMKQ.;
M2RB=9;4!"Q;<7.X*1M;(7!-=WJG]H_V?(-)^RB]) 1KK<8UY&20O)P,\9&3W
M% %RBN1\,Z[K$WBG6/#^KR65V]A%#,MW91-&O[S=\CJ6;##&>O2M3Q?J]QH'
M@_5M6M%C:XM+9Y8UE!*E@.,@$''XT ;5%><^(?&$[>+-$T&WU:?3//MFN+F6
M"Q,S,YV>6@W(PVG<22.F "17>W]_:Z78RWM[,L-O$,N[9..<=N3R0,4 6:*Q
M--\7:)JWVL6MV^^SC\V>.:WDA=$YPVUU!(X/(%5M/\>^&-5O[:RLM4666Z&8
M#Y3A)#C<5#E=I8#JN<CTH Z2BLC_ (2C1?[!N-;^W*-.MF=9IBC#8R,58%<;
ML@C&,<]JNWUTUMI=S=Q@%HH&D4,#R0I(R.M %JBO-K;Q5XSMO!MIXNO(='OM
M->U2\N;6UADAGCB*AF*LSLK%0<X(&<=:ZF/7HI-?VC4K8V)TI;X0"%_,VEC^
M]W]-N.-N,YYH Z"BN>L?'7AK4;6ZNK75(WM;6$333M&Z1JA']Y@ 3V(!R#P1
MFK&D>*M&UR>:"QNG\^)!(\4\$D#[#T<+(JDK[CB@#9HKFK?Q_P"&;MY%M]0:
M78CR!EMI2LBK]XQMMQ)C_9S57PS\0M)U[PHVNW+_ &!(8Q)="57"19)  =E
M?./X<\G% '7T5B:/XMT37KJ6UL+MFN8T$K0S020OL)QN"R*I*^XXINB>,=!\
M1W+6^D7_ -J=8O-)2)PH7C^(J!GYA\N<C/2@#=HK+UKQ%I7A]8#J5T8WG8K#
M%'&\LDA R=J("QQWP.*KIXQ\/R:"^MKJ<8TZ.40R3,K+Y;E@NUU(W*<L,Y Q
MG)XH W**SM&US3_$%D;S3)FFMPY3>T3QY( / 8 D8(((X-<]<:[K^M>)-1TG
MPV=/MK?2]B75[>Q/+OE9=WEHBLO0$9)/?&* .RHKGI/$:Z!I5HWBF>VAU"9V
MC6*Q227SB">8T +GY<$C!QGKWJ:'Q=H,^A3:TFI1_P!GP,4ED964QN"!L92-
MP;) VXSR..: -NBN;M?'OAR[&H>7>3J=/@:YNQ-9S1&&,#))#(.W..I["I=-
M\:^'=7U1=.L=266Y=6>,>6ZK*%^]L<@*^.^TG% &_17-W7CWPS9:A)97&IA9
M(I1#+((9##%(?X7E"[%//0D8JV-3*^++FQDU"U$$5@ER;8Q,)$R[#S"_W=OR
MD8Z\9H V:*\_U'XBZ??:IX>M- U,.UWJB13!K=E$T!23)0NH#+N"_,N>W/-=
MIJ.JV6DI;O?3B%;B=+:-BI(,CG"C@<9/&3Q0!<HK#U_Q!:Z?;W]JFH0VNHPZ
M?)?!I87D6*->/,8+U /;.3@XIM[XLTG1K6P_M*^#7%U$'C2WMY)'E&!EEC0,
MP7GN.* -ZBN.USQ6LVDZ!J.@7\<EM?:Q:VKR*H.Z-GVNI##*GMV(]JT+_P ;
M^'M,OWL[N_:.2.18Y'^SR&*-SC >0+L4\CJ1UH Z&BN3/CW3T\=R>&'CF#K#
M&RS"&4YE9RNS 3 & #OSCG':KEQXW\.VNI/83:CMF2402.(9#%'(<81I0NQ6
MY'!8&@#H**Q;SQ9HUAJPTN>Z?[7\F]([>201[_N[V52J9[;B*MZWJT.AZ+=Z
MG<!C';QER%5F)/0#"@GKCG''6@"_17G5]\14N_!FC:]8S_81+?V,=]YT1"Q1
MR,ID7<Z@$ $_,/J#72V?B[2-:M-1_LK4%\^SA+R">"1#&""5<HP!9>,Y'7UH
M Z"BN9B\8Z78Z-I,NI:B+BYO;19U:SM)7\U=H)D$:JS*G(Y/3-='#+'<01S1
M-NCD4,K>H(R#0 ^BO+W\<>*K;P]J/BF5-'FTFQOIH)+189$G,23&/*R%RI;O
MC:,UV>K^,="T.Y6VO[QUN#'YIBAMY)F1/[S!%)4>YQ0!NT5R>I^(W?6?"!TJ
M]CDT[5;F42/&%998Q [K@XX^8 \8Z8J>T\3V=IH]_J.K:O:/!;W\MMYD4+IM
M(?:(MIR7<'CY>O:@#I:*P;#QEH.I7%M;VU\?/N9'BBBE@DC<NBAV4AE!4[2#
MSC(Z9K2M]4LKO4;W3X)P]U9;/M"!3^[WC*C.,$D<X'MZT 7**QM9\5:-H$\5
MOJ%TRW$JET@A@DFD*CJVV-20ON1BF3>,O#UOH=MK4NJP+IMT_EQ7')5FPQQP
M.#\K=<<C'6@#<HJGI>J6FLZ=%?V+N]O+G:SQ-&>"0<JP!'(/45E/XW\/1ZJ-
M.>_99S/]F#&WD\KS<XV>;MV;L\8W=>* .AHKG=4\=>'-&O;BSOM1V75N 9H4
M@DD9%*AMQ"J?EP1EN@SS6A::_I=]?QV5K>)+<2VBWL:J#AX&. X.,$9]#Z>M
M &E15/3]4LM52=[&<3)!.]O(P4@"1#AAR.<'C(XKBK;Q9)JWQ/O=(BU>>TL]
M/6-5MEL25N7PYDWR,GR !1@@J#V)H ]!HK T[QKX>U74(K*SU#?--N\@M#(D
M<^WKY;LH5\?[)-8/C;XBZ7I&AZW!IVJJFL6D+K&P@9HTF R$+E3'O_V2<^U
M'>T5A7_BO2=&2UCU&Z<7,\/FB&&"2:0J.K%8U)"Y[D8HO/&?AVPTZRU"XU2%
M;2^!-M*H9A+@9P, \X[=2>.O% &[17.7?CKP]9002S7<^V> 7"JEG,[+&21N
M=50E!P?O =#4%_X@E?Q3X1BTV[233=56YDD* ,)56(.A!QD<G/% '5455U+4
MK+2-/FO]0N8[:UA&9)9#@#M^>>,=ZS](\6Z)KD\\%C=L;B!!))#-!)#($/1M
MKJ"5]P,4 ;5%8>A^,-!\23M%I%]]J98A*66)PNTX_B*@9Y&5SD9Y%2ZQXFTG
M0IH8;^XD$TRLZ10P23.5&,MMC4D*,CD\4 :]%<?>_$/2['Q=9Z(ZRLEQ:FX^
MT)#*V"2FQ0 AR"'SG.!C!J_>^-_#VGZ@UE=7[1R)((7?[/(8HW.,*TH78IY'
M4T =#17)GQ[IZ^.Y?##QS!UAC99A#*<RLY79@)@# !WYQS[5<N/&_AVUU-K"
M74=LR2B"1Q#(8HY#T1I0NQ6Y'!8&@#H**9,Q2&1AU"DC\JXWPYXT@C\":!J6
MOW<CWU_;!\0VS2/*P^\0D2DX&1G P,T =K16-9^*]#OUTUK74$D&I-(EKA&&
M]D!+J<CY2 #PV#Q4B^)='=-6=;^,KI!(OC@_N<+N.>.>/3/YT :M%8$WC308
M+J"V:\D:6:..4".VE?8C_<,A52(\_P"UBMV21(HVDD941 69F.  .I)H =17
M-6/C[PWJ.HVUA:WLSW%T"8 ;.95E7^\K%-I7_:SCWI1X]\,G418C4QYAF^SB
M3R9/),N<;/-V[-V>,;NM '245GP:YIMPNHM'=*1ILC1W>Y2OE,JACG(Z8(.1
MQ6==>-_#]I!9S27LC"\@%S"D-M+*YA/20HJEE7W(% '0T5A7WC/P]IUA97UU
MJD2VU\I:UD4,XF &?EV@Y/(P.I/ YJO<^/\ PS:>6)M082R0)<)"+:5I6C?=
MA@@7=_"V>.,<XH Z6BN>G\0V]T?#]SINJVGV/4IRJ%HF<W*[&;:A'W3\I/S>
MA'7BH;GXA^%;.ZEMY]659(9C!-B&0K"X;;B1@N$&> 6(![&@#IZ*P]9\7Z'X
M?G$&HWCI+Y7GLD4$DQ2/.-[!%.U>#R<#BM'2]3M-9TV'4+"1I+6<;HW:-DW#
M.,X8 ]O2@"W17-6_BBRLK/4[S5]8M#;6^IM9K(D+QK"25"QN3G+ MRW"\]L5
M9TOQCH.LF[%EJ )M$$LXFC>$I&<D/AP,KP?F''O0!N45S+^,-,U'0M4N]*O_
M "FM;1K@7%U9S+&J[21( 5!=>,_+G-37GB_2-%L]/.J:@IGNX1(@@MY',@ !
M9PBAF5>>IZ>M '045Q7ACQI;W'AW5-:U74XFLHM6N;>VG51AHA)MB50HRQ(Q
MC )/O6Q;^,=!N=,O]02]*0:>NZ[$L$D<D(QG+1LH<<<CCGM0!NT5EZ-XBTOQ
M +AM+NOM"0/L=Q&RJ3_LL0 PX/*Y%8\OCW3X/'C>&)(Y@X@1Q,(96S*S[0F
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
M,8=36U,9\R" NHW2*/N_=+'/3=S53QS-XBU?3O%.F31Z]YP=H["PL-/#6\\
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
MM/!' .[(QBNGUO3;Z7Q#XNECLKAXY_#*00NL3$22?OOD4XY;D<#GD>M>AT4
M>?7&EW:Z7\.4BL9@UG<P&=5B.8%^S.&W<?*,X!SWKCM,O&2Q$VKMJ,7AJWUN
M6^WV]@KPAA<LRGSQ(6,>[!)V9Z\XKW*N67X>^'U_=^7>&R\WS18&]E-MNW;O
M]5NVXW<[<8SVH U;#7;;4=<U72H8IA)IAB$TK >6QD7< ISU QG('45SOB87
M&E^.M$\0R6-W>:=#:7%K+]E@:9[=W*$/L4%B"%*D@'%=;:6%K8"86L*Q>?,T
M\I'5W;JQ/K_0 =JLT >1:SI6HZSX>\=:I!I-ZD6KRV:VMI);L)I5B**TACQD
M9YX(SA<D5ZXJJBA54*JC  & !2T4 >2:IH6KP>/];\4V^GW%Y%I]];S+8M&2
MMU']F1'>+/#2I@[<>XZFNKTBVED^)6LZH;.=+>?2[-89I863)W2EEY'!&5R.
MHXS7844 >0:)8:CH-AX+U:[TF_DMM..H0W,$5LSS6_FR'9)Y8&XC QP. U:J
M:!/XN?QM>&RN;*SUBUAMK0741BDDDB1L2E#RHW,N,X/RUZ510!X>T7BK^ST\
M?+HE_P#\) \K6C67D,)1";81@E<9P)UW_0YKUSPYI":!X:TW28\$6END18?Q
M,!\S?B<G\:U** /+(;BZT'1O%/AZZT'5+N_OKR\DMF@M&DBNUG)*$R ;5P"
MVXC&*U-/T/4--\1^!H)HI91I^BSVUS<*I*+(%A !;H,E3C/7%=_10!B>+KK5
MK+PKJ%SH<!GU*- 84";S]X;B%_B(7) [D 5Q&B07UYX[N-0#:_>VK:%+ +O4
M[(6^9/,0[%41H?7J.><$XKU*B@#R^#1[Z/X;> K5=.N%N+74-/DGA$+!X0&^
M=F&,KC)R3ZG-5M1TNZ_X6._A..(G1]5O(M>F(^ZJQY\U"/\ :E2$_P# C7K-
M4(]&LH]=GUH1L;Z:!;9I&8D"-26"@=!R23ZT 7Z*** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH *HZSJ]IH.DSZE?,RV\ &[8I9B20J@ =220
M!]:O5D^);>.Z\/W=O-I#ZM#( LEFCJK2+D9P6(&1U'(Z<'- %23Q=;6NC2ZG
M?Z;J5C'%/% 8KB$!R9&55(PQ!&6'0\<U?FUNS@U^+1I"XNI;5[L-CY!&C*IR
M?7+"O/Y/#_B6_P#!>N64<%]Y(NK:?2;/4[E'N-L3H[HSAC@$J0NYB1WK0^PZ
MWXE\9?VA=:+<:5I[Z+<V*O<2QM*)'>,Y*HQP.#CD_=.<<4 ;ND^-++7+B-+.
MPU3[+.'^SW[VI%O-M!.5;.0" <%@ >U<SX$^(4$GA;P_%JB:I++=%;9M2E@)
MA:=B0$+DY))XSC&>,UK>#;C7K'2M*\/7WAN>W^PVPMI[TSQ& A$VJT>&+-NP
M."!C)],'*M_#.L)\*_#6D-9,+^TO+.2>'>N45)PS'.<'"\\&@#N];U>WT#1;
MO5;M)7M[5/,E$2[F"CJ<>W7Z"H;O7[*#4--TX.[SZFDCV[1*& 1%W%R>PY ^
MI%7[NUAO;.>TN$#P3QM'(AZ,K#!'Y&N!\ ^&]<L;Z>XU^+:^FV:Z3IS[PWFP
MJS$R\'C</+'//R4 :.F>-+*U\+:%,\^HZQ>:E$6MDCME%Q< <LQ12%4 8R<@
M=*I>*/&":A\/=9O-)EO+&_LIH89HI5,4]NYECR"/=6Z@D$'K67H6@:_X9L_"
M.J'1YKR2QTN2POK*&2/S8MS*P=-S!6Y7!&>AI^I^&M=U?0?%^H-IK6][K4]H
M;>P:5"Z1PL@RY!VAB QP"<  9H [#7/%L&A23"72=7N8;>/S9[BVM=T<2XR2
M6)&[ Y.W.*R=8\>R6'B;0K&RTN[OK'4;:6X,MO!O:0!4*>7\PZ;LMD=Q69XM
MTSQ%J.L:W;O8ZO>V=Q:K'I8LM0%M!&2A#^< ZL3N.>0P(XQ4LFEZSI2^ ]0C
MT>XO6TG3WM;RVMY(Q(C/#&H(W,%(#(0>: -O_A);+3-0\47&H:I.;;36@WQ2
M0*%M]\8(6,K\SEB1UYR<"K&E>,;/4M632YK#4M-O98C-!%?P>7YR#&XJ02"1
MD9!P1GI7+ZYX3UG4+OQ;/:VRF2:^T^]L5DD 6X\A$+(3VR5(Y[X[5IQ1:MXE
M\9Z)JMSHESI-GI"3L?M<D9>:61-FU0C-\H&3DD9XXH DMOB;HET+::.UU,64
M]P+;[<UJ1!'*6VA6;/K@9&0,\D5U.IR/%I-Y)&Q5U@=E8=00IYKSY?#&L#X-
MP:)]B;^TENTD,&]<A1>B0G.<?<YZUZ%J,3SZ7=PQKND>%U4>I*D"@#A/!OQ
MM9?#OAN'48]3,EY##;_VE/ ?)EN2HRN\G))8$9Q@GO71'QKI(\+W6OM]H%M:
MS/;RQ&/]Z)5D\O9MS]XMC'/<5Q=EI7B;4/"WA?PI>>'I;(V$MI)=7S3QM$(X
M<-\N&W%SM QC .>2.:?=:-</\7/[$BVG1[F6+Q#<(#]V6,&/:1Z-((W_ . F
M@#TZXN%M;26YD60I%&9&6-"[$ 9("C))]AUK#TSQ?:ZCK"Z5-I^I:==R0M/"
ME] (_.12 Q4@GD9&0<'GI5_Q"FJ2>'=13171-4-NXM6?&!)CY>O'7UXKA- T
M357\;:)JDFEZU!!;6EQ%<S:KJ G9I7"?=3S&"C*GE<9]!@4 ;5K\3=$NQ:S1
MVNIBRGG%M]N:U(@CE+;0K-GUP,@$#/)%;">*],:UUNX=I(ET61TO!(N"NU ^
MX#/(*D$'O7'KX8UD?!RVT0V3?VDEW'(T&]<A1>"0G.<?<YZU7\;:/<S_ ! L
MM,M-OV+Q/&B:D@/(6U<.6_X$A\O\J /2[&[2_P!/MKR-)(TN(EE5)!AE# $
MCL>:XG0/'J6W@31-5\023SW6HW$MLAM[?<SN'DVC:H[A,# ZX^M=\  ,#@5Y
MEHWA?6;7PWX'M9K)EGT[5I;B[3>I\J,^?ANO/WUZ9ZT =+!X\TF33M6N[J*]
ML&TG:;NWNH-LJ!AE"%!.=W;!J'6?$I?PCJ%\\>KZ"T#1 RRVJ-( SJ 54DJP
M.<'G(SZU4O=%N3XB\6W=SHC:GI]_96<*6XD0&XVF02 ;B,$!@><>QK"FT#Q'
M>^#/$>G0VFI"RFDM?[+LM1N$DN$"NIDRVXX7@;0S$\'UH [/5?&=AI6K/IHM
M-1O;B&)9KG[%;&46R'.&?![X)P,G Z5A>$?&*V_P]T"[U&2\U'4-0,J010KY
MDUP0[GC)' 4<DD #O4\D6M^'O&^NW]GH<VJ6^L);M"\,T:"&2--A63>00IX.
M0#WX-<U#X+UBV\.^#Y[K3KNXFTD7<=Y96-Z8)MLK9#1NKKG&T<;AD&@#MI/'
MVC6^@7NKW2W5M'83I;WD$T6V6!V90-RYZ?.IR"1CIFM?1=776K$W:V-]9KO*
MJE[#Y3L, A@,]#G^=<+>^&'N_!NIII?A_4;2\O+ZTD=-0O1--,L<L9+DM(^
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
MFNH[22!0DB*Z 2,WW@>1@="#FF0_$;1YG@E^RZDFFW$P@AU1[;%L[D[1ALY
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
M?:.E;/CC0;OQ!X=\G3GC34;6XBO+0R_<,L;!@#['!'XT )I>D>)[*]@GOO%
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
M!,+K49;(."7W!&C(,B''S9&!@8ZFO8DECD9U2169#AP#DJ<9P?3BH+S3-/U
MH;VQMKDI]TS1*^WZ9'% '#^'8)?$:^#-<LK""QL-,%W"\"2;E"[3$AB.!N4[
M<@\<&C6_ 5[K2>+49[5?[2O+6ZL_-RR$PQQC;(,="4(/7@YKT%55%"JH50,
M 8 %+0!P&G^#DNK;4;6?PAHVA+=6$MH;FSF$LI+C:< 1KA<9/)SP.*A\+^#Y
MM+N=-BN_!OAZ.6S #ZI#-EW*K@.B>7D,3@\D8YY->BTUW2*-I)'5$4$LS'
M]2: ./\ &ZFSUCPIKI_U-CJ?DS'LB3HT6X^P9D_.IO$)\6WD6H:58Z1I;VUU
M&T45[->L BLN"7B\LDD9/ .#QTKJ72*XAVNJ2QL <, P-/H X)?">K>&K[0]
M0T%(-1>QTI=)N8+F8PF6-2&5U;# $,#P>QJC/X'UR2P74)!87.J2ZU_:UU8/
M(PMY%";$BW[>=H"D$KC<.E>ET4 </IGA6YU+Q'JVKZ]I5A:VM_:1VLFG1R^>
M)RK%O-E.U06Y '!X[U)K/@U;*'2+GPI86-M<:5>FZ6U_U4<P=#'(N0#M8J1@
MX/05VE-CDCE3?&ZNN2,J<C(.#0!QFGZ5XD@U+6O$TEEIZZI>1P00:?\ :F\M
M8HR2=\H3[YW-C"X&![TV+P]J_B#Q,-8U^TM=/@AL)K&*UM[@S._FXWL[[5&
M!P #U)KMZ* /-8/"WBFZ\/Z5X0U*&P72;"6 37\=PS/<PPL&1!%M^5CM0$EB
M!@XS77-X8TNRN[O5]*TC3HM;D61DN7CV[I&S]]@,X)ZXYK<IHDC:1HU=2Z %
ME!Y&>F10!P[Z/XB\0^*=#U+5M-L-+ATB1Y=\%V9Y9V9"NU3L7:G.3GKQQ6>W
MA;Q3:Z!JGA"QBL#I-]-.(M1>X(>W@F8LZ&+;\S#<P!W '(Z5Z510!PJZ#KWA
MC7]0N_#EE97UGJ,$"&*YN3";>2)/+#<*VY2H7(X.15.R\$ZQX7&@ZAI'V;4+
M^RMYX+Z&64PBX$S^:Q1L'!#],CD>E>BDA022 !R2:2.1)8UDC=71AE64Y!'J
M#0!YUJ-E?Z!X,\8:UJHA_M?6@0MO;L75"R"&&($@;CDC)P,DFMO2KF\TG4]!
M\*6L,4UO9Z6#?S'.8MJJD0!Z98J_'HM=3)%'* )$5PK!@&&<$=#]:?0!R6N:
M3K%MXOM?$VBV]M>R"R:QN;2>8P[D+AU9'VD9!SD$<@UCW'@O6;[0M7EN3:+J
M^K:I:WLL4<A,4,<3QX0,0"Q"1GG R37HM% ",,J1[5Y98^$/%TG@O3?!E_!I
MB:?')$UQ?17#%_*202&,1E?O9 &[.,<XKU2B@#S'7-$>\^,-E9V\J_8;R&+4
M]3@QR6MF98F/;#,R#'?RZ[CQ';W%WH\EO!I=EJBR,%EM+R38DB=^=K#.<$9'
MY5I"WA%PUP(8Q.RA&D"C<5'(!/7')XJ2@#S2+P5KL?A/R8?L\5U;:Q'J=AI\
MET\L4$:%2(/,(S@X8\# +8JZGA_Q)J6N:UJVI6]C:_;=%-A!;PSF0QMN<C<Q
M49^]G('MSC-=]10!YO9^&?%5W8>&="U6WTZ&PT::WGDO(+AF:?R1\B",J-IR
M!DY(XXZXJQ=^#=4F\!^*]&0P?:M4O[JXM\N=NV23<NXXX.*] HH YZ_T6[N?
M&^A:O'Y?V6RM;J*7+?-ND\O;@=_NFN:3P?K=GX'\/6<$=K-J6D:J;\PM,525
M?,E.T/@X.V0<XZBO1J* ./O=-U\>+])\16MC9RL=/:RO+9KHKY)9T<LK;#O
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
MB,NDWMO<O*%.)!')O( [9Z4 $?C>\TJ77H/$UC;03:59+J :RE:1)8FW# W
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
MT:\M_$EJFGV,$*36VQLS20JZQ/G';>3^ HCA,/).3IM;V5I='?\ \F34?5=
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
MN$SA,XP0VQ\'V%177@C4EU+2KZSGTN>2UTM-.:/4+=I4C*G/FQ@$?,>A!QD
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
MS*R!\90@(H! SR<YKL_#FJR:YX;T[5);9[:6Z@61X7!!1B.1S[T 7KF[MK-
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
M(//I5FW\+-'JNC:C<:K<WEQIL5Q&9)U7=,9BI).   -N  .F!VKHJ* ./OO
M45Y#J6S4989[O58]5AE$880RQJ@4%3PR_)T..M(O@::9?$+ZAK<MU<ZWIXL9
M9/(5%B $B@HH[8DZ$GIUYX[&B@#!LO#$=GK]GJHN79K;2QIHC*C#+N5MV?7Y
M>GO4?_")Q?9_$\/VM\:\SLYV#]SNA$7'K]W-=%36=$ +LJ@D 9.,D]!0!@MX
M5B9O#1^U/_Q(ON?(/WO[DQ<^G7-89^'$WV3^S4\03KI*7XOXK46R;@_G>:59
M^K+G..AZ<G&*[)M2LDU5-,:YC%])"9U@S\QC! +?3)%6J ,:T\/1VFLZYJ(N
M&9M6\K<A7B/9'LX/?/6IO#NC)X>\.:?H\<S3)9P+")&7!; ZX[5IT4 <E=^#
MKU=5U&\T3Q#/I<>ID/=PK;I*"X4+OC+?<8@#/7IG%6(?!=C:?\(TEG(\,&@L
MYAC(W&3=&T9W'U^8MGUKH9YX;6WDGN)8X88U+/)(P55 ZDD]!63I/B_PYKMT
MUKI6MV-W<*"3%#,K-@=P.X]Q0!M5Q(^'\@\,ZQX=.MRG2[XR&"(VZ[K;?(9&
M^;.7Y)QG%=M10!CW^@1:AK^D:J\Q!TU)U$6W(D$JA3D]L8K+T;PEJ>@K;V5A
MXDF31K>3=%:/:QLZINSY?FG^'MTSCO7656L;^TU.U6ZL;F*X@9F421-N!*D@
MC/L01^% !J-M)>:;=6L-PUO+-"\:3*,F,D$!@/4=:P3X#T(^$/\ A'?L4'D_
M8_LOG^2OF?=V[\X^]W^M:D/B'1[BZMK:'4;>2:Z:5(%1\^8T7^L _P!WO6D[
M*B,[$!5&23V% '(3>"[X7MCJ%CXBN+34(=/33[F?[.DGVB-3D-AN%?))SSUZ
M5#%\.TM-"TVRLM7N8;[3+R:[M+]D#L#(SEE=3PP(<@],XS76Z?J%IJMA#?6%
MPEQ:SKNCE0Y##U%6: .*'P_:2U\2+>ZW<W=SKUHEM/.\2CR]H< HHX P_3VZ
MDDFM"_\ "DTVLZ7JMAJKV5U96QM'/DK()H25)7!^Z<H.:Z6L[5]>TG0((YM7
MU&VL8I&V(UQ($#'&<#- %]T62-D=0R,"&4C((/:N,LO NHZ5!_9NE^+;^TT4
M,?+M!!&TD2DY*),1D#TX)'K73Z7K.F:W;FXTK4+6]A!P7MY5D /H<'@U-?7M
MMIMC/>WDR0VT"&261SPJCJ30!RUUX(O!=ZI_9/B*XTVRU61IKNV2W20AV #M
M&YY0L!SP>>1BM"Q\(V>FZSIE[9NT4.G::VG0V^,C860Y)]?D_'-;T4L<\*31
M.'CD4,C#H0>0:?0!R=QX&@N/"NNZ$;Z0)JUU/<M+L&8S(^\@#/..E:L.A)#X
MLN=>$[%Y[*.T,6W@!'=MV???^E:]5K^_L]+LI;V_N8K:UB&9)I6"JHSCDGW(
MH YM/ L">#K+P[]ND,=K=I=";8,L5G\[&,^O%37O@NUOSXG$]S+LU^*.*0*H
M!BV1[ 5/?UYK<EU.P@LHKV6\@6UF*".8N-CER F#T.21CUS5N@#D[WPC?ZCH
M.GVEUK[OJ.GW:7=M?+:H,,@*@&/.",,<\]Z=<^$[\:JNKZ;KSV>I2VT=O>R-
M:I)'<[,[7*9&UAENAQ@XQ74%T#A"R[R"0N>2*KVFIV5]<7=O:W,<LMI((KA%
M/,;X!P?P(H P]2\*7-^FE72ZW/%K6F[_ "M0\A#O#C#JT> I4@#@8(P.:UM)
ML]0L[9UU+5#J$[/N$GD+$J# &T*O;C/))YI^JZM9Z+8-?7\IBMU=(RP4M\SL
M$7@#/5@*NT 8'B'PTVL7FGZE9ZA)IVJ:>7\BX2,2 JX ='0\,#@=P015%? R
MR:+X@MKS4YKK4-=B,5W?-&JX&PHH5!P%4$X&>YR:ZQF"J68@*!DD]!533-6T
M[6K,7FEWMO>6Q8KYL$@=<CJ,CO0!-:P"ULX;<,6$4:H">^!BN:O?"%Z-:O\
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
M(_+R'Z@8 R/4=:Z6B@#EM$\+ZMH:VEG#XFFDTFTPL5L]I&9/+'W4:3N ,#(
M.!UJ.+PAJ.FW5X-%\1RV%A=W#W+VQM(Y3&[G+^6S?=!.3@A@":ZVB@ HHHH
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
MY%5MCXW*=RL"#@=N,<51'@#25\.S:*L]\(I;S[<+CS\S)/N#APY!YR,\Y[T
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
MS_T%K_\ \"'_ ,:SJ*.2/8.:7<T?^$@UG_H+7_\ X$/_ (T?\)!K/_06O_\
MP(?_ !K.HHY(]@YI=S1_X2#6?^@M?_\ @0_^-'_"0:S_ -!:_P#_  (?_&LZ
MBCDCV#FEW-'_ (2#6?\ H+7_ /X$/_C1_P )!K/_ $%K_P#\"'_QK.HHY(]@
MYI=S1_X2#6?^@M?_ /@0_P#C1_PD&L_]!:__ / A_P#&LZBCDCV#FEW-'_A(
M-9_Z"U__ .!#_P"-'_"0:S_T%K__ ,"'_P :SJ*.2/8.:7<T?^$@UG_H+7__
M ($/_C1_PD&L_P#06O\ _P "'_QK.HHY(]@YI=S1_P"$@UG_ *"U_P#^!#_X
MT?\ "0:S_P!!:_\ _ A_\:SJ*.2/8.:7<T?^$@UG_H+7_P#X$/\ XT?\)!K/
M_06O_P#P(?\ QK.HHY(]@YI=S1_X2#6?^@M?_P#@0_\ C1_PD&L_]!:__P#
MA_\ &LZBCDCV#FEW-'_A(-9_Z"U__P"!#_XT?\)!K/\ T%K_ /\  A_\:SJ*
M.2/8.:7<T?\ A(-9_P"@M?\ _@0_^-'_  D&L_\ 06O_ /P(?_&LZBCDCV#F
MEW-'_A(-9_Z"U_\ ^!#_ .-'_"0:S_T%K_\ \"'_ ,:SJ*.2/8.:7<T?^$@U
MG_H+7_\ X$/_ (T?\)!K/_06O_\ P(?_ !K.HHY(]@YI=S1_X2#6?^@M?_\
M@0_^-'_"0:S_ -!:_P#_  (?_&LZBCDCV#FEW-'_ (2#6?\ H+7_ /X$/_C1
M_P )!K/_ $%K_P#\"'_QK.HHY(]@YI=S1_X2#6?^@M?_ /@0_P#C1_PD&L_]
M!:__ / A_P#&LZBCDCV#FEW-'_A(-9_Z"U__ .!#_P"-'_"0:S_T%K__ ,"'
M_P :SJ*.2/8.:7<T?^$@UG_H+7__ ($/_C1_PD&L_P#06O\ _P "'_QK.HHY
M(]@YI=S1_P"$@UG_ *"U_P#^!#_XT?\ "0:S_P!!:_\ _ A_\:SJ*.2/8.:7
M<T?^$@UG_H+7_P#X$/\ XT?\)!K/_06O_P#P(?\ QK.HHY(]@YI=S1_X2#6?
M^@M?_P#@0_\ C1_PD&L_]!:__P# A_\ &LZBCDCV#FEW-'_A(-9_Z"U__P"!
M#_XT?\)!K/\ T%K_ /\  A_\:SJ*.2/8.:7<T?\ A(-9_P"@M?\ _@0_^-'_
M  D&L_\ 06O_ /P(?_&LZBCDCV#FEW-'_A(-9_Z"U_\ ^!#_ .-'_"0:S_T%
MK_\ \"'_ ,:SJ*.2/8.:7<T?^$@UG_H+7_\ X$/_ (T?\)!K/_06O_\ P(?_
M !K.HHY(]@YI=S1_X2#6?^@M?_\ @0_^-'_"0:S_ -!:_P#_  (?_&LZBCDC
MV#FEW-'_ (2#6?\ H+7_ /X$/_C1_P )!K/_ $%K_P#\"'_QK.HHY(]@YI=S
M1_X2#6?^@M?_ /@0_P#C7M6E.TFD63NQ9V@C+,QR2=HY->"5[SH__($L/^O:
M/_T$5P8Z*459'7A&VW<NT445YQW!1110 4444 %%%% !1110 4444 8OB[_D
M5-1_ZY?U%>-6,L\%_;RVH)N$D5HP!G+ \#'?FO9?%W_(J:C_ -<OZBO$^AR*
M]3 ZTWZGGXOXT=CY@M]/U>]N-&_L][B%H0SLX,CNPR%5NW4GKC%<PEM/!#;W
MTD1^SO)A7[,5QD5!)-+,099'<C@%F)Q32S%0I8[1R!G@5U1ARG/*5SMQ:3P>
M.IM7>-O[/4O<_:<?NRA0D8;H<Y Q7#T\S2F(1&1_+!R$W''Y4RB$''<)RYMC
MM1<:=HEWI-M<75Q'+8INGB2 .K-(,N"=P_A(7IVJKI^F267B#6M/B5I"+*=8
M@HR7!7*X]<@BN59F=BS$LQZDG)-.$L@?>)'#8QNW'.*GV3MN5[1=CH+.SN-&
MT?5)]0B>W-S!]GABE&UY&+ DA3S@ =:MZ?=1VVF:"EP?]&N3=6\_^XY49_ X
M/X5R;.SMN=BQ]2<TA9BH4DD#H,]*;I7W?]6L"J6V_K4[>UA_LK5K70PRL\$%
MQ-<%>AD:)L?DH7\S6%8?\BEK/_7:W_F]8WF/O+[VW'JV>:0,P4J&.T]1G@TE
M2\^WYW!U/+N=7%J$=C9:$+@%K.XM98;A/5#*W/U'4?2EUJT-AK^@6I=7\J&)
M0Z]&'FM@_B*Y,LQ !)('0$]*4NQ()8DKP#GI1[+6]^X>TTL=$6U2+Q3J\^F0
M-.RSRK+&$WAD+G(*]Q4'B.T@MQ8SK:_8KFXB+SV@)Q&<X! /(R.<=JQ5ED23
MS%D97Z[@<'\Z:S,[%G8LQZDG)--0::8G.Z:-KQ!_QZZ+_P!@]?\ T-ZV;;4+
M:S@\.+<VL#J\+8N&!+PDR, PR=O!YY!KC"S-C+$X&!D]!069@ 6) X )Z4.E
M=),%4L[HZ?2[1[#Q%J-YJ4C?\2[>\DNW<3(3M0XR,Y)W=>U-NDL[[PJPL[F:
MXDTZ;>3+$$(CD/.,,<_, ?QKFS([;LNQW?>R>OUI S*"%8@$8.#UH]F[WO\
MU_5PYU:UC:M/^1.U+_KZ@_D]&G?\BIK?_72V_P#0FK%W,%*ACM/)&>#0&8*5
M#$*>HSUIN&_K?\A<WY'1ZC97.K:1I%U8027"0VWV>5(5+&-U8GD#ID$&H=<0
MV>CZ3ILV!=0"625,Y,>]@0I]#@9Q[UB1S2PDF*1T)X)5B*82222<D]S24&FM
M=$-S5CN[F5+[Q/J6C3L!YEPLUJQ_AE4#CZ,./KBN7\1_\C+J?_7U)_Z$:SB[
M%]Y8ELYW$\TA)8DDDD\DFB%+E=[] G4YD)1116IF%%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %>\Z/_R!+#_KVC_]!%>#
M5[SH_P#R!+#_ *]H_P#T$5P8_P"&)V8/=EVBBBO,.\**** "BBB@ HHHH **
M** "BBB@"M?V,.I6,UG/N\J5=K;3@XKG/^%=Z%Z7/_?W_P"M7645<:DX*T78
MB4(RU:.3_P"%=Z%Z7/\ W]_^M1_PKO0O2Y_[^_\ UJZRBK]O5_F8O8T^QR?_
M  KO0O2Y_P"_O_UJ/^%=Z%Z7/_?W_P"M7644>WJ_S,/8T^QR?_"N]"]+G_O[
M_P#6H_X5WH7I<_\ ?W_ZU=911[>K_,P]C3[')_\ "N]"]+G_ +^__6H_X5WH
M7I<_]_?_ *U=911[>K_,P]C3[')_\*[T+TN?^_O_ -:C_A7>A>ES_P!_?_K5
MUE%'MZO\S#V-/L<G_P *[T+TN?\ O[_]:C_A7>A>ES_W]_\ K5UE%'MZO\S#
MV-/L<G_PKO0O2Y_[^_\ UJ/^%=Z%Z7/_ ']_^M7644>WJ_S,/8T^QR?_  KO
M0O2Y_P"_O_UJ/^%=Z%Z7/_?W_P"M7644>WJ_S,/8T^QR?_"N]"]+G_O[_P#6
MH_X5WH7I<_\ ?W_ZU=911[>K_,P]C3[')_\ "N]"]+G_ +^__6H_X5WH7I<_
M]_?_ *U=911[>K_,P]C3[')_\*[T+TN?^_O_ -:C_A7>A>ES_P!_?_K5UE%'
MMZO\S#V-/L<G_P *[T+TN?\ O[_]:C_A7>A>ES_W]_\ K5UE%'MZO\S#V-/L
M<G_PKO0O2Y_[^_\ UJ/^%=Z%Z7/_ ']_^M7644>WJ_S,/8T^QR?_  KO0O2Y
M_P"_O_UJ/^%=Z%Z7/_?W_P"M7644>WJ_S,/8T^QR?_"N]"]+G_O[_P#6H_X5
MWH7I<_\ ?W_ZU=911[>K_,P]C3[')_\ "N]"]+G_ +^__6H_X5WH7I<_]_?_
M *U=911[>K_,P]C3[')_\*[T+TN?^_O_ -:C_A7>A>ES_P!_?_K5UE%'MZO\
MS#V-/L<G_P *[T+TN?\ O[_]:C_A7>A>ES_W]_\ K5UE%'MZO\S#V-/L<G_P
MKO0O2Y_[^_\ UJ/^%=Z%Z7/_ ']_^M7644>WJ_S,/8T^QR?_  KO0O2Y_P"_
MO_UJ/^%=Z%Z7/_?W_P"M7644>WJ_S,/8T^QR?_"N]"]+G_O[_P#6H_X5WH7I
M<_\ ?W_ZU=911[>K_,P]C3[')_\ "N]"]+G_ +^__6H_X5WH7I<_]_?_ *U=
M911[>K_,P]C3[')_\*[T+TN?^_O_ -:C_A7>A>ES_P!_?_K5UE%'MZO\S#V-
M/L<G_P *[T+TN?\ O[_]:C_A7>A>ES_W]_\ K5UE%'MZO\S#V-/L<G_PKO0O
M2Y_[^_\ UJ/^%=Z%Z7/_ ']_^M7644>WJ_S,/8T^QR?_  KO0O2Y_P"_O_UJ
M/^%=Z%Z7/_?W_P"M7644>WJ_S,/8T^QR?_"N]"]+G_O[_P#6H_X5WH7I<_\
M?W_ZU=911[>K_,P]C3[')_\ "N]"]+G_ +^__6H_X5WH7I<_]_?_ *U=911[
M>K_,P]C3[')_\*[T+TN?^_O_ -:C_A7>A>ES_P!_?_K5UE%'MZO\S#V-/L<G
M_P *[T+TN?\ O[_]:C_A7>A>ES_W]_\ K5UE%'MZO\S#V-/L<G_PKO0O2Y_[
M^_\ UJ/^%=Z%Z7/_ ']_^M7644>WJ_S,/8T^QR?_  KO0O2Y_P"_O_UJ/^%=
MZ%Z7/_?W_P"M7644>WJ_S,/8T^QR?_"N]"]+G_O[_P#6H_X5WH7I<_\ ?W_Z
MU=911[>K_,P]C3[')_\ "N]"]+G_ +^__6H_X5WH7I<_]_?_ *U=911[>K_,
MP]C3[')_\*[T+TN?^_O_ -:C_A7>A>ES_P!_?_K5UE%'MZO\S#V-/L<G_P *
M[T+TN?\ O[_]:C_A7>A>ES_W]_\ K5UE%'MZO\S#V-/L<G_PKO0O2Y_[^_\
MUJ/^%=Z%Z7/_ ']_^M7644>WJ_S,/8T^QR?_  KO0O2Y_P"_O_UJ/^%=Z%Z7
M/_?W_P"M7644>WJ_S,/8T^QR?_"N]"]+G_O[_P#6H_X5WH7I<_\ ?W_ZU=91
M1[>K_,P]C3[')_\ "N]"]+G_ +^__6H_X5WH7I<_]_?_ *U=911[>K_,P]C3
M[')_\*[T+TN?^_O_ -:C_A7>A>ES_P!_?_K5UE%'MZO\S#V-/L<G_P *[T+T
MN?\ O[_]:C_A7>A>ES_W]_\ K5UE%'MZO\S#V-/L<G_PKO0O2Y_[^_\ UJ/^
M%=Z%Z7/_ ']_^M7644>WJ_S,/8T^QR?_  KO0O2Y_P"_O_UJ/^%=Z%Z7/_?W
M_P"M7644>WJ_S,/8T^QR?_"N]"]+G_O[_P#6H_X5WH7I<_\ ?W_ZU=911[>K
M_,P]C3[')_\ "N]"]+G_ +^__6H_X5WH7I<_]_?_ *U=911[>K_,P]C3[')_
M\*[T+TN?^_O_ -:C_A7>A>ES_P!_?_K5UE%'MZO\S#V-/L<G_P *[T+TN?\
MO[_]:C_A7>A>ES_W]_\ K5UE%'MZO\S#V-/L<G_PKO0O2Y_[^_\ UJ/^%=Z%
MZ7/_ ']_^M7644>WJ_S,/8T^QR?_  KO0O2Y_P"_O_UJ/^%=Z%Z7/_?W_P"M
M7644>WJ_S,/8T^QR?_"N]"]+G_O[_P#6H_X5WH7I<_\ ?W_ZU=911[>K_,P]
MC3[')_\ "N]"]+G_ +^__6H_X5WH7I<_]_?_ *U=911[>K_,P]C3[')_\*[T
M+TN?^_O_ -:C_A7>A>ES_P!_?_K5UE%'MZO\S#V-/L<G_P *[T+TN?\ O[_]
M:C_A7>A>ES_W]_\ K5UE%'MZO\S#V-/L<G_PKO0O2Y_[^_\ UJ/^%=Z%Z7/_
M ']_^M7644>WJ_S,/8T^QR?_  KO0O2Y_P"_O_UJ/^%=Z%Z7/_?W_P"M7644
M>WJ_S,/8T^QR?_"N]"]+G_O[_P#6H_X5WH7I<_\ ?W_ZU=911[>K_,P]C3['
M)_\ "N]"]+G_ +^__6H_X5WH7I<_]_?_ *U=911[>K_,P]C3[')_\*[T+TN?
M^_O_ -:NHMX$MK:*"/.R) BYZX P*DHJ)5)S^)W*C",?A04445!04444 %%%
M% !1110 4444 %%%% !1169XCU*;1_#&JZG;Q"::TM)9XXST9E4D ^W% &G1
M7F5MJVIZ/-X2U&7Q0^K1:Y/';W5M(L00&2,LKQ!%!4*P ()/!]:]#U$7S6$H
MTUK=;P@"-K@$HISR2!R<#)QQGU'6@"U17(_#Z_U.^TS54U6^-]<6FK7-J)C&
MJ95& 'RKP*TO&.OGPOX2U#6$B$TMO&!%&>C2,P5 ?;<PH W**Y32_#WB2VFM
M+R]\77-S/D-=VK6T7V=AW5 %#+CL=QZ<BJ\_Q'T^&.:]&EZI+HL$QAEU9(D,
M"D-M9@-V\H#D%@I'% '9T5R^M>-[;2;N\MX-+U'4S86ZW-XUDL96"-@2,[W7
M<2%)PN3BH9/B!:(=*BCT?59KO5+1KJUMHHXV<J"HPQ#[5R&#9)QCOG (!UU%
M<O%X\TN3PZ^KM!>1LET;%K%HA]H^T[MOE!0<%B<=\8YS2)XVB$.IK<Z-J=O?
MZ=;BZDL'6-I9(CGYXRKE6'!_BSD8]* .IHK#TSQ9IFM:FEEIK270-FEX]Q&
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
M/48HL?&T=QJ=K87NB:KIDUZCO9_;(XP+C:-Q4;7.UL<[6Q0!U-%>>:1XVO\
M6="\42:AINI:?'8->A;N)(@8DC'"#YSF8#)Z;<CK6PWB^"RMM(LK6SU/6-0N
MK%+I885C\WRL >9(6947)..O)SB@#JZ*YJY\911R6=K:Z/JEWJ-S;FY-BD:)
M+#&#C,F]E5><@<\D<9K4T/6K3Q!I4>H68D6-F9&CE7:\;JQ5D8=B""* -&BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ J*Y:1;69HH1-($8K$6"[SCA<GIGIFI:* /-['
MPC_:/B73+T>#K'PY:6%Q]KE9?),US*%(11Y60$!8L<GD@<5V":AK(M=3EET3
M,L%P4LX8[I";J+C#Y. A.3P?2MBB@#B/ -OKNG3:M;ZKH4EE%>:A<WZ3&YBD
M \QP0A"DG.,\].*V_&'A_P#X2CPGJ&C";R9+B,>7*1D(ZL&0GVW**W** .4T
MK5_&$\MK:ZAX8AMF# 75[]O1HB!U:-1ER3V! QGDUR\>@>*K;P-<> XM'C>%
MQ+;1ZN;I/*$#N3O9,[]X5B, 8R.M>IT4 >.ZEI=[>^,?$MMIZR3V-M:VMI=H
MFJ"RWH(L['_=MOX;[^5X;&>#73^'T;7=;\->)M.L6MM(&BRP*CL 8BSQ[4QG
M)&$.".,#WKI-2\*^']8NUN]2T33[RX4 "6>V1VP.@R1R/:M5$2*-8XT5$4!5
M51@ #H * /,M2\#ZK>Z3J8^RI),OB9M6@MS<>7]IAVA=N]3\A(+8ST(%:>EZ
M==:;!J>I:7X,FL]5^RB&W%YJ2S-,2<[2=[!4!P3R"><"N\HH X/P+X1U'P1J
M-SIZ!+K2[V);F2Y&U&BNP LB[>"4;@KC[N"*V+K2;R7XBZ;JZ1 V4&FW%O))
MN'#L\948Z]%//M7244 >97WA&XM/%.MW<GAVXUJTU.9;B*2VU+[.8FV!61U+
MJ",KD$9X.*L>)/#MS)IEA::5X4FCN[6Q$=C>V.I+"]C)C&PL2K,@P#_$&YXK
MT6B@#S/4?"6I1>)%U>\TJ77OM6GP07(M+W[,\<\8(+ %T#(V[UR,=*THO#-Q
M%<^#GLM(73[;3[NYGN;?[0)#")(I!G<3\Q+,,XSU]!FNZHH \_\ '_A;6M5U
M.VNM!"AKVU?2M2<N%*6SLK;QGJ5^?@<_/3?$WA"0>)M/U:TT>34[&'3O[/>R
MM[S[-)$%;<CJ=RAAU!!([&O0J* //I_#T2^&8;4>!99(Y+I[A[:+4E^T02<!
M91(6'S'OA^/>ND\'VFKV/A>TM]<F::_7?N+R>8RJ6)16?^)@NT$]R/QK=HH
M\]M-%UV#2O&>AMI68]0>^N;.\%PFR4S#Y4VYW*<DY)&..M7KGP_J4EGX&C6
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
M\Y!&1VK,_P"$-U+5?#'BEM0CCM-4UN?[5!"D@86SQJHARPX+ H"2..:]#HH
M\SD\*:_?_#;Q(M[:QCQ)KCM-+ LJD)@JL<8?.,!$'?N:M>,M%U;4=3,NC:'-
M!JR+&EKKEO?)$JKD$B9,AF4'/R[6!]LUZ%10!YUKW@W5]6NO%[0K$C7W]GS6
M+R.-LCP?,58#D D <^M7DM->\2>*M#U#4M%.D6FD&68B2YCE>:5T* +L)PH!
M)R<$\<5V]% 'G#^$]9/PBN] %LO]I274DBQ>:N"INS*#NSC[G/6IO$^BZO?>
M(OM6C:'-9:D)80FM0WR)&\0(+":/.Y^-P"E6[<BO0:* .<\;Z+>ZWH"1Z=Y9
MOK2[@O8(Y6VI(T3AMA/;(!&?I6=;6>M^(/&6DZSJ6D'2+7289PD<MPDLDTLH
M"G[A("@ \DY)(XKM** .;\#:3>:+X9%E?Q".?[7<R[0P;Y7G=U.1ZA@:JBQU
M;3_B3=:E#IINM.U*TMX'G29%^SM&SYW*QR00X^[FNNHH \XG\)ZR_P *=<T-
M;93J%U=7,D,7FKAE>X+J<YP,J<UJW.C7Z^*/$NHG2HM0M+W3K:WCMY)547!4
MR;T.<XX<=1@YKLJ* .+\#:1JFEWFI^;:76G:,XB%EIUU=BX>%ANWE2&8*ARN
M%W'H>E-N?!-KJ_Q%O]6UG2+2]L#86\5LUPBR8D5G+?*>G!7M7;44 <AXCTG4
MK;Q%H>O:+IZ7JZ?#-:RV*2+$QCD"X,9;"@J4'!(R#6!JGA77];T/QE?2V"6V
MHZW%!!;6'GJQ1(NA=P=NXEF/!( QS7IU% '!>(?!]_KNL>)PNV*VU+1(K."=
MF&/-5I#@@<X^9><=ZU-*EUO6;)]*U_PVMC:-:-#<2-=I()6("D(JY^4C<<M@
M].*ZFB@#S3X46%[(+_4]2E6=[3&BV<RG(>"W8@N#_M,>?]VM7XC:#K.J6EA?
M>'(T;5K1I8EWN$'E31M&YR?0E&Q_LUUUE8VFFV<=I8VT5M;1YV11(%5<G)P!
M[DFK% 'FMEX$O]/\=6<5O$@\+VYBOA\X!%U'!Y"KMZ] KYZ9%/U7PEK-WH/C
M:VAMT\_4=2CN[-6E4"546$XS_#DQL.<?E7H]% '(2V6K:OXG\*ZS-I;626:W
M@NH9)HW:+>JJG*D@YQVSCO6/JO@[6+T>*9+>.)9Y]5M=0L!)(-DWDI%\K8R5
MR48<_7I7H]% '%06>N>(?&.CZOJ6CG2+72(YRJ2W$<LDTLJA.-A("@9Y)R21
MQ7-#P[XM3P9;>$DT2(Q65_'(;\W:;9HEN1("BYR&QU#8Z'&20*]:HH Y&*QU
M;3?B1J&H1::;K3M4MK:-KA)D7[.T7F9W*3DY#C&W-6O%.DWFIZCX:EM(@Z6.
MJ+<SDL!MC$4BYYZ\L.!ZUTE% 'GGB3P;JFMWWB_R1'$FHV=BMG*[#:TL+NY5
M@.0,[1G'?O5LVOB#Q/XAT*YU/1/[(M-*F:ZD,EU'*TTIC**J;"?E^8DEL$X'
M%=Q10!Y[;Z+KL&E^-=$;2MT6I/?7-G>"X39(9E^6/;G<#DG)(QQUI8](U_P_
MK6E:S9Z3_:0_L2'3+JUCN(XY(GC.X,"Y"L,LP//8'FO0:* /-M:\-ZI>>)K;
MQ'=^'VOQ/IZVUS8VFH^5);NKLRD,617&&(/(Y&170Z3;WFB:1IT&E^&DMEN+
MTF\MVO0S6Z,6+2ECG>W )4$]>O%=110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %9OB'5#H?AO
M4]56+S396LEP(_[Q52V/TK2J&\(%E.3;FY'EMF  $R\?=YP.>G/'- '!6^L^
M(](F\,7^IZO;ZC9:Y,EO+!';+&('DC+H8V!R5!&#NSD'-=OJL6H3Z?)%I=U#
M:W;$!9IHO,5!D9.W(R<9QSC.*\YL/"5EJ7B71I]-\)7.B6.FW'VN:>\PKLP4
MA(HD#MA=QW$C ^4=:ZO5M>UZ'0M7GT[PY/+?VUP8+.%I%(N%XQ-U'R\DXZ\?
MD 4O#&J:W'XSUCPWJNH1ZI':6T-REVL"Q,A<D>6X7C/&1[5TNKVNH7ED(M-U
M+^SY]X/G>0LW'<;3Q^/M7,> EDLUGMKC1-:AOKDFYO=2U".)?M,O _@D8CCA
M5Q@ ?GVU 'GGA*Y\4:I#J-]?>(UE@L;V[M#;K8HGF"(LH;<#D'.#2>!_B%9W
M?A[P[!J+W[W5Y$D!OI;9Q#+<8Y3S,8+<'VR",YK6\(:5?:?HNO0W5NT4EQJM
M]-$K8^9'D)5OQ%8D/A_55^'/@G3S92"[L;ZPEN8N,Q*C@N3SV% '2:GXYTG2
M[R[MWCOIUL@#>SVUJTD=KD9^=A[<D#) Y-=%%+'/"DT3J\<BAD=3D,#R"*\L
MF\.3Z=K7B&&_TOQ)?6NI7DEU ^DWI2*1)% 9)$\Q0""",G@C'/%>F:9:Q6.E
M6=I!"T,4$"1)$S;BBJH 4G)R0!C.: ,3P'K-WKO@JQU349%:YE,OF,%"C"RN
MHX'LHIMGX]T:^N[6*-;U+>\E,-I>R6S+;W#\X5'/7.#C. <<9KF_!W]JV?@^
M'PE?>'-7MIG2XA:]VQ&%-[N0V1)NQAAVJGX9\.M#;Z)I6KZ%XE>[TZ2$ESJ!
M>R1XB-LJYEQMX!"A<CIB@#JM2^(>CZ;-.C6VI7$5O<BTEN+:T9XEF) \O=W;
M) XXR<=:M:OXTL-%>7[38ZJ\,""2XGAL7:.!2,Y9L=AR<9QWKS&)[E+/5]5O
M[;5+CPK'K,][*+.6W$,FR<D-M?$NT,H)4'DJ2.#6_P"+;7Q%JUUX@M3::W=6
MUS:A-)6PG6&VVM%AO.^8$G<3D-G(P * .G_M6>;XF6-I#=,VG3:'+<B-3\C-
MYT85_P#OEC^=-\::EJUK>^'M/TF^6R?4KXP23&!92JB)WX!XZJ*J:+HVHVWB
MW0;N:U=(+?PW]DE<XPDV^([#[X4_E4_CFWO_ .T?#.HV6FW5^EAJ#33Q6VTN
M%,3KD!F ZL.] "6.KZYHOBZS\/Z]=6^H0:E#+)97L4'DN'C +QNN2/NG((QT
M/%6K;Q[HMW=V\4:W@MKJ?[/;7[VS"VFDR0%5^^2" >A(X)K,_LW5_%WBBTU6
M_P!-FT?3].MKB.UCN)$:>669=A<A"0JJN<<Y)-8'AOPRUM9:1HFLZ'XEEN;&
M6(,ZZ@6L08V!6509 -O ;;MR.F* .NOOB)HEC<ZA;F+4;A].D*7IMK-Y!;@
M'>Q P%P?KP>.*OW_ (JL[.*VD@M-0U%;F$3QFPM6F!C/1B1P,]AG)]*X:RU3
M4[34/'=E9>'KO4OM6I2)#+ R;!*8(QMDW,"J]#NY[^G-AM(\0:)!H&D2QZQ=
M:3::2D##1IEC=KM2 =[%E8)MZ'('7- '477C[0+71M,U5KB:2UU-BEJ8H69G
M<*3LV@9W94KC'7BLN3XALOBS3]*70]6%O<V;SMNL9!*K!D X_NC<=Q['%9&@
M>&M8M=%\"07-A(DNGZE<RW2LP8Q*PGVDGOG<O/O70:]%?V/C_1M;@TNZO[06
M4]G+]EVEHF=XV5B&8?+\IY[4 /OOB/H-A<7T,BW\@T^;RKV2&T=TMNGS.P&
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
M4QMR.1G=T/'>JGB'PMJ^J'QZEM:_-?-8RV>]@%G,*HS+GMDKMY]:N>=K.O\
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
M) Y;><'VSS4&B^,(;7PMH,>GVNI:I?:FTXM8+FY5IF".V]I)6P HXY]U !H
M[ZBN,E^(4-GHVMW6H:7<VM]HQC^UV1=7.V0C8R,.&4@GWX(Q5K3O&$L^NQZ7
MJ>B7>EO<VSW5H\SH_FHA&X$*3M8!@=O/6@#J:*YSPOXGN?$T,=ZFCRV^F7$1
MEMKIKB-]XS@!D!RI/7'.,'.#5W6-2U.R>*/3-#EU)W!9F%PD*)CL2QR2>P [
M=10!K45YGXB\6?VGH_@[6[&SO29-<$;V:8\TNJ3HT9YP?F7J3CC-;L'CV"W3
M6$U[3YM)N=*MUNIHGD64/"V=K(R\'D%<>N* .OHKDK/QG=#5-.M-8\/W6E1Z
MFQ2SFDF20%]I8(X4Y1B <#GIBI)/&]O'X4UO7OL<IBTJ>X@>+<,R&)RI(/;.
M* .IHKAIO%&OK\3$T:#26FTUM/6?B:-3S( 9>><#)7;U.,U:^('B#5_#^GZ;
M+I%H9VGU""&1MZ#"M(HV8;NV2,]NM '7T5YSJNM:K;?$/0Y$T:ZENY](N0=/
MCG3"-YL?+OG:  #SSU '6KEYXMMM5\-VUY-#J5A-%K4-A<6\$X22.82JI5F&
M0R<@G'4&@#L+;3;.TO;R\@@5+B]97N'!.9"JA03]  *M5S5MXJN-0\07FGV&
MCRW%K8W(M;JZ^T(AC<J&)$9.2H##GOS@'%4_B3>W%GH6G^1?S6*SZK:6\T\,
MGELL3R /\W;CO0!V-%>;:1XBCT/Q+KL!\03ZOX=T_3%O)KF:19VMIMQ!C#J/
MFRHSM.3^=;5IXVN?M^F1:MX?N]+MM4?R[.XDFC?+E2RI(JG*,0#@<\\4 =?1
M7E]AJ*V^FZB]U<7X#>,FMT-M/L;YIE558]TYY7N*Z:;QA<RZM?6FDZ!=ZE;Z
M?*(;NXBEC0+)@,516(+E01GIZ<T =517*/XZM(?#VN:K-:RI)I%S):S6V07>
M0$! O^_N3'^]741,SQ(SIL<J"R9SM/IF@!]%<SK'BR;3_$<>@V.C7.HW\MI]
MJ01R*B!=Y4[F;A1Q[YR!BN>U?Q,-?T[PW<PQ3V4\7B:&SN[:1ANBD3>&0D'!
M'0^A!% 'H]%<;?>/C;#4KRVT2ZN]'TN9H;R^25%VE/\ 6%$)RX7N>.AQG%:&
MM>(M1T]7GT_P_/J-G'!Y[W"7$<:E<$X0$Y8X&>@'(YH Z*BN3G\;K-)I$&C:
M;+J%QJEE]OBC:9( L/R]2W5OF'RCWZ58U'Q3<6^HVVE6&C37NJ26HNY;<S)&
M+>/./G<DC);( &<X/;F@#I**R_#^N0>(=)6^ABE@82/#-!+C?%(C%70XR,@@
M]*R=)\87.MW22V&@7<NC23M FHB6,!MI*EQ'G=LW C/7OB@#JJ*X>;XBE+*X
MUB'0;R?P[;RM')J22IDA6VM(L>=S("#SUX)Q5W4?&4\/B&31-*T.YU2[6TCO
M T<J1Q[&+#EF.!]T8ZYS[$T =717G6L>/M2GT?POJF@:9*\.I:@MO,DCQJP(
M+JT)W="64_,.!M]ZZ34-<UNUBA-KX7N+IS;B:<?:XD6-CG,8)/S,,=ACISS0
M!T-<]+X%\,S7DEU)I$#/)+YTB9;RW?.=QCSL)SSDBJ<GCNWGT[0YM)T^XU"[
MUJ(S6MJ&6,JB@%V=B<*%R!WR3QFLO6O&'B6VUOPU;VWAV>,7LLR7%M)/"&D9
M$<[ V2 !M#[N,CCKQ0!Z#138V9HD9TV,5!*YSM/IFG4 %%%% !1110 4444
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
M;G&X[N:F\7>']3U3Q!97D=A;:OID=L\3:?<W30HLQ8$2G"D/P"N"..HKM:*
M/,;?P1XAL/"/AVQLUTX7^E:Q+?LC.PA*$S$*"!D9\Q1TXSWQ5B^\%ZQXL_X2
M&\UE;;3;G4-/CL+2"&8S")4<R;G;:,Y<C@#@"O1J* .(.E^)O$>JZ(^NV-A8
M6NE7 NW-O=&9KF8(RKM&T;$^8DY)/0>]8NJ>$_%K:!XF\-Z?;Z:]GJEU<745
M[+<,&596WF,QA?O9R-V<8YP>E>HT4 <C>Z1K-KXYT_7+"UMKJW.G_P!GW*27
M!B:(>8'\P?*=W&>..U6_&VC7VM:#''IHB:\MKRWO(XYG*+(8I%?:6P<9 /.*
MZ.B@#EH=*U2[\9Z7K]W;P6RQ:9/;S0I-YA21Y(V !VC(PIYXK'F\&ZJ^GWT
M\C?/XG354^?CR!)&QSQ]["GBO0:* .!U?PYJ^I>+K2_M])L=/FM[R.1]8@O&
M$DUNIR8WC"C<2/EPQ('4'M6SXUT"?Q'IVG6L,<,B0ZG;7,Z3?=:)'!<8P<\9
MX[UTM% &!KWA:SU7P?J7A^SB@L8KN%D7R8@JHQZ' QW K$.E>*/$-[H<>NV5
MA8VNE727DLMO=&5KF5%(7:NT;%R<G))Z#WKNJ* //F\&ZJ=/F@'D;W\4KJP^
M?CR!,K^GWL \5:M=+\4>'M8UF/2++3KRQU2]-ZD]Q<M&UL[JH<,@4[QE<C!'
MI7;T4 >8ZUHCWGQBL[.WE7[#=Q1:KJ4&.=]N62(GMAF9.._EUV6F:S=ZCXGU
MBR2"/^S; 11+<#.7G(+.GH0H*?B<?38%O"MPUP(8Q.RA&D"C<5'0$]<<G\ZD
MH \\UJ;6+?XO0RZ/:6UY(N@GS8)YC%O3S_X7P0"#CJ,$9I+;P5JZZ?827#VQ
MOY/$@UJ]2-SLC4Y!1"1EL#:.@SS7H'D0_:/M'E1^?LV>9M&[;G.,]<9YQ4E
M'EP\ RZ?J.J)_P (EH>MPWEY+<PW=W/Y;QB0[BD@\MB0I)P1U'I5SQ'X/U34
M=>OG&F:?J=A<6D<%DMU=-''I[*"&(C"D-G(.1@\8X'->BT4 ><7OA35'\&:)
MH<F@:=J4MGIT<*W#7K0R6MPJ!2R,$)V\ Y!!XZ5'J'@._&I:9JEUI^G^)9X]
M+BL+R.]D\MFD0Y\Y&*L.26!!QV->ET4 9/AO3QIFBQ6_]E66EL69VM;)MT:$
MD]]JY.,9XZUSWA32_%'AFUM?#PLM.ETNUF?9J#7+;V@+%@OE;?O\XSNQWYKM
MZ* /,D\*^*K;PA<^!X(-/.F2F6&/5&N#O2WD<D@Q;>7 8C[V.AKJ-.\/SV'C
M:ZU)=GV!M+M[.+YLONC=R<CTPPYKI:* /.1X/UNT\%Z-:P1VLVHZ7K+ZEY+3
M%4E0S2MMWX.#MD';J*DUSPYKFK:\E_=:1I^HV\UC'$MG<WK"*QGR2[8"8D!R
M.< _+CBO0J* /-M/\(:_H&G>$[RQBM+O4='LY;.ZM7G,:RH^#E'VG!!4'D<@
MFM36--\37S>'M:%CI[ZGIMW++)8K=,J&-XW0 2%>6 8$_* >:[6B@!L9<Q(9
M%"R%1N53D ]P#WIU%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %<U\0+S4]/\":S>:2\:7,-I(_F.Y4QJ%)++@'YAV' ]Q72UG:_I0UWP[J6
MDM*8A>VTEOY@&=FY2,X[XS0!P'B*\UXZ7X)NKNSM+C4CJ\9BB@N&V2 V\F"S
MLHVGDDX!X'&>E;,?CJYTNV\2#Q'8P0W.APQW#_8Y2\<Z2 [-I8 @Y4KS4Z^&
MM:O+3PXNJ7=AY^D7RSDVR.%DC6)HP/F/WB6SZ4NJ^!UUF]\3M=7(6VUJR@M5
M"+\T31[_ )O0\L#CVH J:+X\GNO$.G:5?_V,[:DDC0_V9?\ VAH71=Y208'\
M(/S#C*D8JUXYEDBU'P@(Y'0/KL:L%8C</*EX/J*L:%I.O6=Y"=2_L$PQ(5,M
MG:,DLIQ@').$]2!G\*D\8:!J&N1Z3+I=S:P7>G7ZWB?:D9T;".N"%(/\7KVH
M ;XN\6#P[)IMG%]D^VZC(Z1/>W'DPQJB[F=VP>F0 !R216+%\1V_L;59&MK*
MXU&PNX+0?9+K?;3-.5$;B3'RK\W.02-IZU9U'POX@UC^SM1OKK1CK&FSR-;A
M+9S;21.@5D=68MGC(8'C XK)\;6&I1>"3#J::=&)]2MO,:QM&,$$0<$M,IR9
M%XY'RCD?6@#<TGQ%XCN-?UK2+S3M,:;3;6.9?LUT^)7D#%%RR?*/E;)/(X.#
MFFZ+XPOKCQ9'H.I+I+R3VTEQ%+IEV9@A0J&1P5!!^8$'O@\5R^@6']KVNO>%
M-*NM.DTR\T\LVKZ;8M $G8[0C$NPD.WG@\ 8[BNBT3P;J5GXETW5[QM'@CLK
M26U%MIULT:G=LPQ)//W>F./?F@"Q\*_^2::-_N2?^C7K \,>$['Q';^(;RYN
M-0AU :W?117=O>RH\064A=H#;>/0C%=IX0T.7PUX5L=(FF2:2V5@9$! .79N
M_P!:Y^R\+>+M,_M6TT[6M+MK.^O[B[$YM'DGB\URV!EPN1GJ10!F:7\1;N/P
MKH$5T]B^LWTEQ UQ>3B" "W<HTK''4X7"@<ENP%73\294\-:I?"RM;J^TR^@
MM)8[.Y$D,PE9 K1O@=0_0]",&K5U\/DL[+0!H4MNMQHJR1QK?QF6.X23'F;\
M8(8L V1WSQS6?XVT_58OAU=179T^&[EU"S,9TZW*K&//B )#$[B#DYP/3% &
MW8>)=:B\3PZ)KVF6=O+>VLES9O:7+2*2A&Z-]RCY@&!R.*JVOC+4X?%.FZ1J
ML&C_ /$Q>2-4L;XS2VSJA?$@*C((4C([U)#X5UO4M:.I^(-3M3+!92V=F-/B
M:/89<;Y3N).["C ' K,T7X?:G87GAQIYM'C@T1SC[':LDER#$R;W8G[W()'<
MDG/2@"_IGB?Q/KUQJG]G:1IT5G8W=S9^==73JTKQL0"H5#A>%SGN3CI6+H'C
M'Q%IOPKT_7=3M;?4))3;1P;+AO-G\R0(2^Y0%;D8Y(]2*[7PUH4FAVNHPRS)
M+]KU&XO 5!&U97+!?J,US5GX&UF/P7;^&;G4+%X+&YMGM)HXG#M'%,)#OR2-
MQ  &.* )E\4^+CX@D\.MH6F#4VMEO8IA>N;=(2Q4ASLW%@P X&#G/&.6O\1P
M/"FE:@UI;P:CJ%V]D(;FY$<,,D;.)&:3'W!L)Z9.0.]=%_8<O_"<GQ!YR>5_
M9OV+RL'=N\W?NSZ=JYP_#ZY30;&"&\MO[2T_4I[^W>6$O"XE=R8W7(."KXR.
MA&10!%_PLB2'1/$DTL.GW-[HD*3[K&Z\V"='S@AL9!!4@@^WK6E;>)]?C\0V
M6F:KI%G;#5+>:6Q,=TTC(\8#%)?E !P>JY'!'/6FZAX7UC6?"&M:1>OH]K-?
MPB*(V-NRJGJ7).6_(8]\UK:CH,M[XGT#55F18],%P'0@Y?S$"C'TQ0!A_#G4
MO$>I0:D^LFSD@CU"ZB5XYW>1664C8 5 V 9 .<\#BNYKD='\/:]HB:[;6E_8
M?9KN:YNK)VA8R132MN&_G!523TY/M73V:W*6-NEY(DMTL:B:1%VJSX^8@=@3
MGB@">BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@#.UV_ETS1+N]@5&EA3<H<$CKWQ7
MGG_"RM9_Y]['_OV__P 57=>+O^14U'_KE_45XG7HX.E"<&Y*YQ8FI*,DHL[+
M_A96L_\ /O8_]^W_ /BJ/^%E:S_S[V/_ '[?_P"*KEWTZ[CTZ/4'@86DCE$D
MR,%AGC]#^5/L=)O=221[6$.D1 =BZJ 3G'4CT-=/L:-KV1S^UJ[79TO_  LK
M6?\ GWL?^_;_ /Q5'_"RM9_Y]['_ +]O_P#%5S$FF7L.H)8R6[I<NP58VX))
MZ8[<^M2WFAZE80&:XMBL0;:SJRN%/H=I./QH]C0[(?M:O=G1?\+*UG_GWL?^
M_;__ !5'_"RM9_Y]['_OV_\ \57/VV@ZE=VL=S# IADSL9I47.#@]2.]0VVE
M7UY+<1VUNTKVZEI0I!P!P?K^%'L:'9![2KW9TW_"RM9_Y]['_OV__P 51_PL
MK6?^?>Q_[]O_ /%5R<=K-+;37"(3%#M\QLCY<G JY;:!J=Y:QW,%MNBDSL/F
M*"V#@X!.3S0Z-%;I"56J]FSH/^%E:S_S[V/_ '[?_P"*H_X65K/_ #[V/_?M
M_P#XJN4^Q7(O19-"ZW)<1B-AM.XG '-/73KMA=;82?LG^O (RG..G?GTH]A1
M[(/:U>YU'_"RM9_Y]['_ +]O_P#%4?\ "RM9_P"?>Q_[]O\ _%5RC6<Z6<=V
MT9$$CE$<D?,1UP.O?K4%/ZO2[![:IW.R_P"%E:S_ ,^]C_W[?_XJC_A96L_\
M^]C_ -^W_P#BJY>^TZ[TV2..\@:%Y$$BAB.5/?BJM"H47JD@=:HMV=E_PLK6
M?^?>Q_[]O_\ %4?\+*UG_GWL?^_;_P#Q5<G:VD][.(+>/?(06"Y X )/7V!I
MD43SS)#$NZ21@JCU)X%'L*/9![:IW.O_ .%E:S_S[V/_ '[?_P"*H_X65K/_
M #[V/_?M_P#XJN9@TN]N;V2SB@+3Q;O,7( 3!P223@#WS3VT:_2^2S:%1.Z;
MU'FKM9>>0V<=CWI>QH=D/VM7NSH_^%E:S_S[V/\ W[?_ .*H_P"%E:S_ ,^]
MC_W[?_XJL&Y\.ZI9P--/;JD87?GSD/'J #DUET*C1ELD)U:JW9V7_"RM9_Y]
M['_OV_\ \51_PLK6?^?>Q_[]O_\ %5A_\(SK'E[_ +$V=N[R]Z^9CUV9W?I5
M.QTZ[U*9XK2+S'1"[#<%PHP,Y)'J*/94'K9#]I5[LZC_ (65K/\ S[V/_?M_
M_BJ/^%E:S_S[V/\ W[?_ .*KEKW3[G3Y%CN45&8;@%=6X_ FF16D\\$\T<>Z
M.!0TC9'R@G _4T_84;7LA>UJ[7.L_P"%E:S_ ,^]C_W[?_XJC_A96L_\^]C_
M -^W_P#BJY62QN8HK>62(JMSDQ9(RPSC..N*DN=*OK/4%L+BW:.Y8J%C)'.>
MG/2E[&CV0>UJ]SIO^%E:S_S[V/\ W[?_ .*H_P"%E:S_ ,^]C_W[?_XJN5CL
M+J:^-E% [W(8IY:C)R.M6;O0M1L;<W$]N/)!VL\<BN%/H=I./QH]C1O:R'[6
MKO=G0_\ "RM9_P"?>Q_[]O\ _%4?\+*UG_GWL?\ OV__ ,57*2VD\-M!<21X
MAGW>4V1\VTX/ZTZ[L+JQDBCN86C>6-9$!YRIZ&G["CV0O:U>YU/_  LK6?\
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
M?>Q_[]O_ /%4?\+*UG_GWL?^_;__ !5<;11]7I?RA[>IW.R_X65K/_/O8_\
M?M__ (JC_A96L_\ /O8_]^W_ /BJXVBCZO2_E#V]3N=E_P +*UG_ )]['_OV
M_P#\51_PLK6?^?>Q_P"_;_\ Q5<;11]7I?RA[>IW.R_X65K/_/O8_P#?M_\
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
MOE_ZM<>]8=]J-WJ,JR74QD*C:HP JCT ' _"K<OB&^GA\N5;63]V(][6L9;
M&!\V,]*.22:?J'.K-&CIZV#^#U749+B.$ZE]Z%0Q!\L=<]J-5U*XTOQD+HPH
M?LP5(UW9#Q[, [N^5.<^]8'VR?[!]AW#[/YOG;<#[V,9S]*L#6+T7-O<>:ID
MMXA"A**?D (P01SP<<T>S=V_4.=62]"UJ.GV+Z8-5TR25;<S>3)!-]Z-B"1@
MC[PX/O6-5Z^U>[U")(93$D"-N6*&)8TW>N% R:HU<$TM2)--Z!1115DA1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %>\Z/_ ,@2P_Z]H_\ T$5X-7O.C_\ ($L/^O:/_P!!%<&/^&)V8/=EVBBB
MO,.\**** "BBB@ HHHH **** "BBB@"AK5@^J:-=64;JC3)M#-T'-<%_PK&^
M_P"@A;_]\M7IE%;4Z\Z:M$RG1A-WD>9_\*QOO^@A;_\ ?+4?\*QOO^@A;_\
M?+5Z916GURKW(^K4^QYG_P *QOO^@A;_ /?+4?\ "L;[_H(6_P#WRU>F44?7
M*O</JU/L>9_\*QOO^@A;_P#?+4?\*QOO^@A;_P#?+5Z911]<J]P^K4^QYG_P
MK&^_Z"%O_P!\M1_PK&^_Z"%O_P!\M7IE%'URKW#ZM3['F?\ PK&^_P"@A;_]
M\M1_PK&^_P"@A;_]\M7IE%'URKW#ZM3['F?_  K&^_Z"%O\ ]\M1_P *QOO^
M@A;_ /?+5Z911]<J]P^K4^QYG_PK&^_Z"%O_ -\M1_PK&^_Z"%O_ -\M7IE%
M'URKW#ZM3['F?_"L;[_H(6__ 'RU'_"L;[_H(6__ 'RU>F44?7*O</JU/L>9
M_P#"L;[_ *"%O_WRU'_"L;[_ *"%O_WRU>F44?7*O</JU/L>9_\ "L;[_H(6
M_P#WRU'_  K&^_Z"%O\ ]\M7IE%'URKW#ZM3['F?_"L;[_H(6_\ WRU'_"L;
M[_H(6_\ WRU>F44?7*O</JU/L>9_\*QOO^@A;_\ ?+4?\*QOO^@A;_\ ?+5Z
M911]<J]P^K4^QYG_ ,*QOO\ H(6__?+4?\*QOO\ H(6__?+5Z911]<J]P^K4
M^QYG_P *QOO^@A;_ /?+4?\ "L;[_H(6_P#WRU>F44?7*O</JU/L>9_\*QOO
M^@A;_P#?+4?\*QOO^@A;_P#?+5Z911]<J]P^K4^QYG_PK&^_Z"%O_P!\M1_P
MK&^_Z"%O_P!\M7IE%'URKW#ZM3['F?\ PK&^_P"@A;_]\M1_PK&^_P"@A;_]
M\M7IE%'URKW#ZM3['F?_  K&^_Z"%O\ ]\M1_P *QOO^@A;_ /?+5Z911]<J
M]P^K4^QYG_PK&^_Z"%O_ -\M1_PK&^_Z"%O_ -\M7IE%'URKW#ZM3['F?_"L
M;[_H(6__ 'RU'_"L;[_H(6__ 'RU>F44?7*O</JU/L>9_P#"L;[_ *"%O_WR
MU'_"L;[_ *"%O_WRU>F44?7*O</JU/L>9_\ "L;[_H(6_P#WRU'_  K&^_Z"
M%O\ ]\M7IE%'URKW#ZM3['F?_"L;[_H(6_\ WRU'_"L;[_H(6_\ WRU>F44?
M7*O</JU/L>9_\*QOO^@A;_\ ?+4?\*QOO^@A;_\ ?+5Z911]<J]P^K4^QYG_
M ,*QOO\ H(6__?+4?\*QOO\ H(6__?+5Z911]<J]P^K4^QYG_P *QOO^@A;_
M /?+4?\ "L;[_H(6_P#WRU>F44?7*O</JU/L>9_\*QOO^@A;_P#?+4?\*QOO
M^@A;_P#?+5Z911]<J]P^K4^QYG_PK&^_Z"%O_P!\M1_PK&^_Z"%O_P!\M7IE
M%'URKW#ZM3['F?\ PK&^_P"@A;_]\M1_PK&^_P"@A;_]\M7IE%'URKW#ZM3[
M'F?_  K&^_Z"%O\ ]\M1_P *QOO^@A;_ /?+5Z911]<J]P^K4^QYG_PK&^_Z
M"%O_ -\M1_PK&^_Z"%O_ -\M7IE%'URKW#ZM3['F?_"L;[_H(6__ 'RU'_"L
M;[_H(6__ 'RU>F44?7*O</JU/L>9_P#"L;[_ *"%O_WRU'_"L;[_ *"%O_WR
MU>F44?7*O</JU/L>9_\ "L;[_H(6_P#WRU'_  K&^_Z"%O\ ]\M7IE%'URKW
M#ZM3['F?_"L;[_H(6_\ WRU'_"L;[_H(6_\ WRU>F44?7*O</JU/L>9_\*QO
MO^@A;_\ ?+4?\*QOO^@A;_\ ?+5Z911]<J]P^K4^QYG_ ,*QOO\ H(6__?+4
M?\*QOO\ H(6__?+5Z911]<J]P^K4^QYG_P *QOO^@A;_ /?+4?\ "L;[_H(6
M_P#WRU>F44?7*O</JU/L>9_\*QOO^@A;_P#?+4?\*QOO^@A;_P#?+5Z911]<
MJ]P^K4^QYG_PK&^_Z"%O_P!\M1_PK&^_Z"%O_P!\M7IE%'URKW#ZM3['F?\
MPK&^_P"@A;_]\M1_PK&^_P"@A;_]\M7IE%'URKW#ZM3['F?_  K&^_Z"%O\
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
MI6D/Y/@N&\L66V?5KRXAMIH_]3$5E>(,IZ8X..W%=I_PC%]_T-VN_P#DO_\
M&J/^$8OO^ANUW_R7_P#C5"Q=.,=)*]DOM=(N*M[NF]WOKV#E97\/0^3X[\7;
M8]D;M:.,# +&(Y/UX&:J7T;GXAZLX1BI\.JH.."?-DXK3_X1B^_Z&[7?_)?_
M .-4?\(Q??\ 0W:[_P"2_P#\:K#VM/G<^=:Q4?M=$E?;R*LSD[?3HK;P)\/S
M!:+'*M_92,4CP064[R?KDYK8T:ZMK+Q]XHL)_P!W=7DL4ULIC/[Q!;J"5.,8
M!4@^]:G_  C%]_T-VN_^2_\ \:H_X1B^_P"ANUW_ ,E__C5:3Q-.HI*4U[U_
MYNLE+^7R_P"&$HM',Z%_Q(/@I:WEGI,,]RMJLCQ/"6W%G&YV Y8#[Q'HM0Z3
M=/J'CB]NDU%-2C;09$^TPV9AC+"13M')W8SZG&<5UG_",7W_ $-VN_\ DO\
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
M/!Z'GM5/1/'MCK/BO5-"6"XCDM)5CAD-M,!)^[WL6)0!,'(&3\W!&<BN(/\
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
MBBB@ HHHH I6FDV=EJ5_J$$96YOV1KABQ.XHH5>.@X':KM%% !1110 4444
M<W=^!-!O;JZF>*\C6\<O=007TT4,['@EXU8*<]^.>^:Z&&&.W@C@AC6.*-0B
M(HP%4#  '84^B@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KEX_A]X=B
M=56WNC:I+YRV37LQME?.[(A+;.O.,8]JZBB@ HHHH **** "L_5='M]7CC2X
MFO(Q&20;6[D@)SZE&&?QK0HJH3E!\T79@<Y_PA6F_P#/[K?_ (-[G_XNC_A"
MM-_Y_=;_ /!O<_\ Q=='16_US$?SO[Q<J['.?\(5IO\ S^ZW_P"#>Y_^+H_X
M0K3?^?W6_P#P;W/_ ,771T4?7,1_._O#E78YS_A"M-_Y_=;_ /!O<_\ Q='_
M  A6F_\ /[K?_@WN?_BZZ.BCZYB/YW]X<J['.?\ "%:;_P _NM_^#>Y_^+H_
MX0K3?^?W6_\ P;W/_P 771T4?7,1_._O#E78YS_A"M-_Y_=;_P#!O<__ !='
M_"%:;_S^ZW_X-[G_ .+KHZ*/KF(_G?WARKL<Y_PA6F_\_NM_^#>Y_P#BZ/\
MA"M-_P"?W6__  ;W/_Q=='11]<Q'\[^\.5=CG/\ A"M-_P"?W6__  ;W/_Q=
M'_"%:;_S^ZW_ .#>Y_\ BZZ.BCZYB/YW]X<J['.?\(5IO_/[K?\ X-[G_P"+
MK1TK1+;1_.^SSWLOFXW?:KR6?&,]-[''7MUX]*TJ*F>)K3CRRDVO4+)!1116
M PHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH JZC?1
M:9I\U[.',4*[F"#)_"N9_P"%DZ+_ ,\;W_OVO_Q5:WB[_D5-1_ZY?U%>)UW8
M7#PJ1;D<F(K2IR2B>K?\+)T7_GC>_P#?M?\ XJC_ (63HO\ SQO?^_:__%5Y
M3173]2I&'UJH>K?\+)T7_GC>_P#?M?\ XJC_ (63HO\ SQO?^_:__%5Y311]
M2I!]:J'JW_"R=%_YXWO_ '[7_P"*H_X63HO_ #QO?^_:_P#Q5>4T4?4J0?6J
MAZM_PLG1?^>-[_W[7_XJC_A9.B_\\;W_ +]K_P#%5Y311]2I!]:J'JW_  LG
M1?\ GC>_]^U_^*H_X63HO_/&]_[]K_\ %5Y311]2I!]:J'JW_"R=%_YXWO\
MW[7_ .*H_P"%DZ+_ ,\;W_OVO_Q5>4T4?4J0?6JAZM_PLG1?^>-[_P!^U_\
MBJ/^%DZ+_P \;W_OVO\ \57E-%'U*D'UJH>K?\+)T7_GC>_]^U_^*H_X63HO
M_/&]_P"_:_\ Q5>4T4?4J0?6JAZM_P +)T7_ )XWO_?M?_BJ/^%DZ+_SQO?^
M_:__ !5>4T4?4J0?6JAZM_PLG1?^>-[_ -^U_P#BJ/\ A9.B_P#/&]_[]K_\
M57E-%'U*D'UJH>K?\+)T7_GC>_\ ?M?_ (JC_A9.B_\ /&]_[]K_ /%5Y311
M]2I!]:J'JW_"R=%_YXWO_?M?_BJ/^%DZ+_SQO?\ OVO_ ,57E-%'U*D'UJH>
MK?\ "R=%_P">-[_W[7_XJC_A9.B_\\;W_OVO_P 57E-%'U*D'UJH>K?\+)T7
M_GC>_P#?M?\ XJC_ (63HO\ SQO?^_:__%5Y311]2I!]:J'JW_"R=%_YXWO_
M '[7_P"*H_X63HO_ #QO?^_:_P#Q5>4T4?4J0?6JAZM_PLG1?^>-[_W[7_XJ
MC_A9.B_\\;W_ +]K_P#%5Y311]2I!]:J'JW_  LG1?\ GC>_]^U_^*H_X63H
MO_/&]_[]K_\ %5Y311]2I!]:J'JW_"R=%_YXWO\ W[7_ .*H_P"%DZ+_ ,\;
MW_OVO_Q5>4T4?4J0?6JAZM_PLG1?^>-[_P!^U_\ BJ/^%DZ+_P \;W_OVO\
M\57E-%'U*D'UJH>K?\+)T7_GC>_]^U_^*H_X63HO_/&]_P"_:_\ Q5>4T4?4
MJ0?6JAZM_P +)T7_ )XWO_?M?_BJ/^%DZ+_SQO?^_:__ !5>4T4?4J0?6JAZ
MM_PLG1?^>-[_ -^U_P#BJ/\ A9.B_P#/&]_[]K_\57E-%'U*D'UJH>K?\+)T
M7_GC>_\ ?M?_ (JC_A9.B_\ /&]_[]K_ /%5Y311]2I!]:J'JW_"R=%_YXWO
M_?M?_BJ/^%DZ+_SQO?\ OVO_ ,57E-%'U*D'UJH>K?\ "R=%_P">-[_W[7_X
MJC_A9.B_\\;W_OVO_P 57E-%'U*D'UJH>K?\+)T7_GC>_P#?M?\ XJC_ (63
MHO\ SQO?^_:__%5Y311]2I!]:J'JW_"R=%_YXWO_ '[7_P"*H_X63HO_ #QO
M?^_:_P#Q5>4T4?4J0?6JAZM_PLG1?^>-[_W[7_XJC_A9.B_\\;W_ +]K_P#%
M5Y311]2I!]:J'JW_  LG1?\ GC>_]^U_^*H_X63HO_/&]_[]K_\ %5Y311]2
MI!]:J'JW_"R=%_YXWO\ W[7_ .*H_P"%DZ+_ ,\;W_OVO_Q5>4T4?4J0?6JA
MZM_PLG1?^>-[_P!^U_\ BJ/^%DZ+_P \;W_OVO\ \57E-%'U*D'UJH>K?\+)
MT7_GC>_]^U_^*H_X63HO_/&]_P"_:_\ Q5>4T4?4J0?6JAZM_P +)T7_ )XW
MO_?M?_BJ/^%DZ+_SQO?^_:__ !5>4T4?4J0?6JAZM_PLG1?^>-[_ -^U_P#B
MJ/\ A9.B_P#/&]_[]K_\57E-%'U*D'UJH>K?\+)T7_GC>_\ ?M?_ (JC_A9.
MB_\ /&]_[]K_ /%5Y311]2I!]:J'JW_"R=%_YXWO_?M?_BJ/^%DZ+_SQO?\
MOVO_ ,57E-%'U*D'UJH>K?\ "R=%_P">-[_W[7_XJC_A9.B_\\;W_OVO_P 5
M7E-%'U*D'UJH>K?\+)T7_GC>_P#?M?\ XJC_ (63HO\ SQO?^_:__%5Y311]
M2I!]:J'JW_"R=%_YXWO_ '[7_P"*H_X63HO_ #QO?^_:_P#Q5>4T4?4J0?6J
MAZM_PLG1?^>-[_W[7_XJC_A9.B_\\;W_ +]K_P#%5Y311]2I!]:J'JW_  LG
M1?\ GC>_]^U_^*H_X63HO_/&]_[]K_\ %5Y311]2I!]:J'JW_"R=%_YXWO\
MW[7_ .*H_P"%DZ+_ ,\;W_OVO_Q5>4T4?4J0?6JAZM_PLG1?^>-[_P!^U_\
MBJ/^%DZ+_P \;W_OVO\ \57E-%'U*D'UJH>K?\+)T7_GC>_]^U_^*H_X63HO
M_/&]_P"_:_\ Q5>4T4?4J0?6JAZM_P +)T7_ )XWO_?M?_BJ/^%DZ+_SQO?^
M_:__ !5>4T4?4J0?6JAZM_PLG1?^>-[_ -^U_P#BJ/\ A9.B_P#/&]_[]K_\
M57E-%'U*D'UJH>K?\+)T7_GC>_\ ?M?_ (JC_A9.B_\ /&]_[]K_ /%5Y311
M]2I!]:J'JW_"R=%_YXWO_?M?_BJ/^%DZ+_SQO?\ OVO_ ,57E-%'U*D'UJH>
MK?\ "R=%_P">-[_W[7_XJC_A9.B_\\;W_OVO_P 57E-%'U*D'UJH>K?\+)T7
M_GC>_P#?M?\ XJC_ (63HO\ SQO?^_:__%5Y311]2I!]:J'JW_"R=%_YXWO_
M '[7_P"*H_X63HO_ #QO?^_:_P#Q5>4T4?4J0?6JAZM_PLG1?^>-[_W[7_XJ
MC_A9.B_\\;W_ +]K_P#%5Y311]2I!]:J'JW_  LG1?\ GC>_]^U_^*H_X63H
MO_/&]_[]K_\ %5Y311]2I!]:J'JW_"R=%_YXWO\ W[7_ .*H_P"%DZ+_ ,\;
MW_OVO_Q5>4T4?4J0?6JAZM_PLG1?^>-[_P!^U_\ BJ/^%DZ+_P \;W_OVO\
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M]YT?_D"6'_7M'_Z"*\&KWG1_^0)8?]>T?_H(K@Q_PQ.S![LNT445YAWA1110
M 4444 %%%% !1110 4444 9/B>WFNO#=]!!&TDKQX5%&23D5Y+_PC.N?] J[
M_P"_9KW"BNFCB94E9(PJT%4=VSP__A&=<_Z!5W_W[-'_  C.N?\ 0*N_^_9K
MW"BM?K\^QG]4CW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U
M2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_
MZ!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (
MSKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_
M9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4
MCW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^
M@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_P
MC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV
M:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U
M2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_
MZ!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (
MSKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_
M9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4
MCW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^
M@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_P
MC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV
M:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U
M2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_
MZ!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (
MSKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_
M9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4
MCW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^
M@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_P
MC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV
M:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U
M2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_
MZ!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (
MSKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_
M9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4
MCW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^
M@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_P
MC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV
M:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U
M2/<\/_X1G7/^@5=_]^S1_P (SKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_
MZ!5W_P!^S1_PC.N?] J[_P"_9KW"BCZ_/L'U2/<\/_X1G7/^@5=_]^S1_P (
MSKG_ $"KO_OV:]PHH^OS[!]4CW/#_P#A&=<_Z!5W_P!^S1_PC.N?] J[_P"_
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
M<*HSW). * )Z*S9=;MHO$EOH3)+]JGM9+I7 &P*C*I!.<YRX[>M:5 !1110
M4456O[V+3=/N+V996B@C,C+$A=B ,\*.2: +-%,AE6>".9 P610P#*5(!&>0
M>0?:H[B]M;1X$N+B*)KB3RH0[ &1\$[1ZG )Q[4 3T444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% '&>$_^1Y\<_\ 7[;?^DR5PB6=WIWP]UWQ/::S
MJ4-Y8ZI=2VT,<Y6!0+H@JT8X?=SG=GKQC%>Q6FE65C?7U[;0;+B^=9+E]Q.]
ME4*#@G X '%5'\+Z,^AW6BM9 Z?=.\DT/F-\[.^]CG.1ECG@T <W?RZU>>,/
M%.F:7?O#/_8D!LP[GRXIF:8;@.@/ YQV'I4_@6YBCN+[2YXM8M=5@CBDN;74
MKQKH8.X"2)RS JQ!SC'3H*Z"Z\.Z5>W%[<7%IOEO8$M[AO,8%XU)*C@\8+$Y
M&#3=&\-Z7H#SR6$$@FN-OFS33R32.%^Z"[L6P,G SCF@#D?$#7FD>+YM5UQ]
M6.AM);K9W-A>,D5H>%99H@1N#.?O$-P0.*?IEI/XLUSQ'=7NM:I9MIVHFSM8
M;.Z,20HB(V\J.'+%B?F!&.*Z.[\&Z%?ZJ=1NK2229I%E9#<R^4[KC:S1;MA(
MP.2.U,U'P1X=U75)-1O-/+W,H43%)Y$68+T\Q%8*^/\ :!H XQM#?5/%/Q N
M!JVI6?V>2%HELK@P@2"U0AV*\MC X/'7BH'U[6M?/@^Q:._N([S1!J%TEA=K
M:/<2?(.7W*0HW$E5(SD=A7ID6C:?#/J,\=N!)J1!NVW-^\(0(._'R@#C%4;K
MP;H-WINGV$EDRPZ<@2S:*>2.2!0-N%D5@XX !YYQS0!Q-S+XFL= T[1]2N;V
MP74?$"V45PUTLEREFREPIE4GYR5*!LYQBHY;!M!\:^)XK74[ZX:/PMYD+W%P
M9)8#OE(4.?FX(W#))&[TQ7=OX0T.70GT:6S:6R>3S666>1WWY!#^86+[N!SG
M-&E>$-"T6YEN;&QVSS1>3-+)*\CRKG/SER2Q]SSCCI0!R]QJUX/#_P -Y%OY
MO-O;JT%PPE.Z=3;.6W<_,"<$Y[XK!N-4U#3=%UN'3C,LM_XR>S=X'5) C[<[
M&;A6.-H)Z;J[NQ^'OA?3;FWN+;3-LMK*);<M/(_DGGA S$*O)^4<=..!5^7P
MMHD^GW]A+81R6M_.US<QLS'?*<$MG.0<J",8QCB@#"\)66O6.OW:SVFH6VB2
M6RF./4-06[D2<-SM;<S!2I'!/4<=:-1GU6?XA:GINGWSPNWAS?;*[$QQSF61
M5D*],].<=!6_H_AO3-"DEDLDN#)(H5GN+N6=L#H 9&; ^E27>@:7?7EQ=W-J
M))[BT^Q2L78;H<EMN >.2>1S[T <QX$G^RWMQI&H)K%OK<=M'+<0W]ZUS'*,
ME3+$Q8C!;((&WMQQ53Q:UYI7B.76-8?5F\.I%$(I]-O&C%DX)WM+$I'F*<CG
M#8 QBNLT?PQI.@SS3V,$OVB90CS3W$D\A4=%W2,Q"C)X!Q4.H^#="U;4&O;Z
MTDED<JTB?:91%*5QM+QAMC8P.H/2@#B=0GUKQ#XN\26L4&LRQZ<T4%H-/U);
M582T0?S&4NN\DMQD$8&/6K$J:YJ'B/PGH^M:I=V$\^D3OJ$5G<>7YTJ&+@,O
M0]3E><9 (!-=?JG@_1-7U W]U;3)=L@C>:VNI;=I%'0.8V7</KFLG6/ MKJW
MB71I9;=#I.GV$MNJ+,Z21N6CV%&4AA@*>00?SH P+75OL&F:_HU_J>LW4%KK
M26%A):SYNIBZ*X@\PD'@D@L6! [BJ2:EJVGZ1\1+(2:K9K8:;'<6D=Y>^?/;
ML\<F2LH=CC* CYN*] _X0OP\-!&BC3E%B)?/"B1P_FYSYGF9W[\_Q9S[TEMX
M)\/6MKJ5M%8$IJ<(@O2\\CO.H# ;F9BQ/SMSG/OP* .>N+:'1/"MFU_K'B&^
MO-6F@7;;W6)9YF4G9'D@1*>2<%<!1SZ\GJ@O+GPC\0M)O'U:W@TV&*XM[>ZO
MO-ECWQ$E&D5FWH2,[23UKUK5/#^EZSIL6GWUL9+>%E>+;(R-&R_=974AE(]0
M<U5LO!V@6%KJ%M!IX\K44$=X))'D,XP1\Q8DDX8\]: ./\0"]TB+PKX?TV;5
MKJ#4I99+@KJ!%Q($B#"-9G8%03SP0<*0.M9^OVNNV?P[\5PZG!=PZ?YEL^GI
M>W:W,R*9$WJ7#,2 PR,DGFN]/@G0&T2/2'LY'LXI1-%ON96DC<# 99"V]2!P
M,$8%/3P?HBZ1=:6UM+-:W3*TXGNI97D*D$9=F+<$#O0!R?B'Q)?>$=;\26[W
M$T_V^R2[T=)'+;9\B%HES_MM$V!_>-;^M17FA_"K4H_M]Q)?6>CRYNS*QD:5
M8C\^[KG(SFG>(O#+Z]XK\-7LL4!LM*EEN79C^\,FT"-5&.F?F/\ NBM/Q/IT
M^K^%-8TRV*">[LIH(RYPNYD*C)],F@#A52]T2?P7JT.O:E?7&KW,=O>17%R7
MBF22)F++']U=I (*@<=<U2!O=5^'^L^-)=?U.UU6!KN:".*Z9(;?R7<)$8ON
ML"$&=P).ZNT\/>!-$T-K*\CL%74+> (&\YW2)BH#F-&.U,\YV@9S4EQX!\,W
M6H2WLVF[GFE\^6(3R"&63KN:(-L8\=2M '*Z_<ZE'/:^(M975AH+:=#(QTN\
M:%K"7DR/)&"#(O(Y^; 4_+5BST:WN/C-J%TM]J.!IEM=*$O) C$RR?*1G!3@
M?+TY/'-=1JG@W0M:O6N[^TDE=PHD07,JQ2A>F^-6"OCW!JQ>>&=)OM:M=8GM
MF^WVRA(YHYGC^4'<%8*0& /.&!% 'E]A/XN\0Z5/KFG6NKOJS7LIMY!J:1VD
M:I*5\HP%P"NU<$E=Q/.>E=+]GN/$WC7Q-%<ZWJ-A%H_D16B6ER8ECW1"0RN.
MCY)QALC"GBM^7P-X>FU"6]-G*DDTGG2I%=2QQ2/_ 'FC5@C'UR.>]2:IX,T#
M6=2_M"_L/,N2@CD997194!R%D52 X]F!H Q?AO.UK\'](N$3S'BL6=5_O$%C
MBN8D?4+/X;:=XYCU_4I]9E^SW#QM=,;>7S)%#0>3G8!ABHP,@CK7JFF:99Z/
MIL&GV$(AM(%VQQ@D[1G/4\]ZQK;P#X9M-0CO(=-VO%+Y\<1GD,,<F<[UB+;%
M.>X7B@#G9=.N_$/C3Q?:SZ[JUM:V26QMH;2Z:(1NT.2V1SU&<=,DD@UT'@Z[
MN/$7PZTJXOYY?M%Y8*)IHG*.25P6##E6[Y'0ULP:38V]_?7L4 6XO]GVE]Q/
MF;%VKQG P..,4[3--M-'TRWTZPA\FTMD$<4>XMM4=!DDD_C0!XU;Z5':?L_:
MU=I=7LCS)<(4FN7DC3;=.,JI.%)QR1U/6NQ2UN_#7C[0K:/5]2OHM4M;K[6E
MW<&16>-4975>B'DC"@#':MU? WAU;;4K86#"WU(DW,/VB38V6W':N["9/)VX
MK6GTNRN=2L]1FAW7=D)%MY-Q&P. &XS@Y '6@#R;P_-XMU[1M.\0V5MJSZE<
M7*S/,^IH+0Q>9AXO(WX"A<C[N[(SFNR^*O\ R3V]_P"OBU_]*(ZT4\#>'HM0
M-[%9RQ.9OM!BCNI5A,F<[O*#;,YYZ5K:II5EK6GO8:A!YUL[(S)N*Y*L&7D$
M'@J#0!QEQ87/B#XD:WIL^LZI;:?;V%K(MO9W30C>QE&[*\CIT'!XSG K(T77
MM4M]'\$^(+_49Y;:66;2]0WN=K[G9(I6'3<&C4%O]LUZ5%I=G!JMSJ<<.V\N
M8TBEEW'YE3=M&,X&-S=/6J,GA+0YO#+>')+!6TELYMR[=WW_ 'L[OO<]: /.
M9];UR\TG2KB.;4'C\3:S+(D<%R(I$M%1O*BC=B!'O"!B003DXY-;%OI?C/\
ML7Q'968O;%)4A;3!?:@L\R-G]\@E!8@$ ;22<%J[.^\-Z1J.C0Z1=62/8P!!
M#&"5,6P84JP(*D#H0<U6B\&Z)%IUS8^1<O#<E&E:6\F>0E3E2)&<L,'I@B@#
MSGQ.;*^^&/B*S4Z[9WFG30M<V=]?/*T;,5P-^YM\9!+#DC(S@5TNJV<J>)]
M\(IJVJ0Z=-;W-W-+]M<SW#(5Q'YI.\ ;R2 >@%='!X/T*WTF^TP6/F6U_G[7
MY\KRO-QCYG8EC@ 8YX[5'-X)T"XTNUTZ:TF>&T<R6\C74OG1,>I67=O'_?5
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
M"&&-UHUW/=0QS&59"FPPR-DG+%B1NZFLKPEHFIW^F^&=?M!H\%R\T,UUJ?\
M:<KW%T#_ *V)U,8!8Y(V[L*0,=* /9J*XSXE7#1:%IT#SO!87>JVUO?RHY3;
M;LWS L/N@G:I/H:Q/%=AHF@Z7::;I$RV6GWNKVD.JQV]RP$4+;NO/[L.0JDC
M&0: /3J*\OGL;'0/&=[IOAX""RFT"XFOK6%R8XW! C?&?E8@L/<"L2#PU8Q>
M'/AY?QR7D=[JDEO!>W"73B2>*2W9FC)S]WY0 !T XQ0![717C>LVL6AZ3\3M
M)TT-;V%O96T\$"N=L3R1MO*Y/&=H-:-]X0TJV\<>&K*(70M]3M+DZBIN7/VT
MQB-E,IS\W+$GUZ=.* /4Z*\:N<:9X$\36<4CQV.F>*(8X07)$$(EMW*@GHH+
MM^==3>7\%Q\6X[>WNDD:+P]<&1$?.TF6,C..AQ0!WE4[.^DNKF]A>QN+=;>4
M1I)*!MG&T'<F">.<<XZ5X_I&CVNG>!_ GB&W,_\ :\U]8Q2733,S-'(VQHSD
MXV;3@+TXJ[KE[<6UIXWVW,L%O)K]G!<SHY4Q6[I LA!_AX)&?>@#U^F2RI#"
M\LAPB*68^@'6N"UFU\(^%/#VHI9V@DCN3;1RV-K>L@<O)MC+'=\@8DY;^( Y
MSTK"TC3(E\3>*- FTVQL[)]'BGDTZRO&GB67<^&.57:Y 7( [ \YH ]3T[4+
M75M-MM1LI?-M;F-98GVE=RD9!P>1^-6J\32"#2_@UX:;2%@A&IS6,>IO]H:)
M61N&WR+DH"P"D@=":U;C2M;\+:7XHO\ 3XM,TV$Z,[1V&FWDDVV9<XG"LB[?
ME)Z=2HH ] UC75TC4-&M#;F4ZG=FU#!L>7^[9\].?NXQ[UKUY ^C^&]+U[X?
MRZ-,IN+JY\R3;<%S<+Y#_O6!)RV3][_:(KKOB%YFGV6F>)82P;1;Q)I@O\5N
M_P"[F&/]UMW_  &@#I=3OI-/LC<16-Q>N'1?)MP"Y!8 GD@8&<GV%7*\@U22
M34O!_B+Q0)&VZGK%I':$-Q]FAN8XT(_WB';WW4[QZ]AJ;^*Y;?1K:2ZTFW F
MU*\U%X7@D,6Y/(0*W(^7^X&;CGK0!Z[16/83RW/@VUN)G+32:>CNQZEC&"3^
M=>1Z;:Z5;?#WPAKVF7;2^(WN[.!9A<L\DA+A9(2,_="9&W& !^- 'NE%>1K8
M:+K>G^--5\13?\3.QOKJ*.9YRCV4:#]SY?(V\88$?>)[T:C:7U[H.B>)-9MK
M76$M=#234-,NK@Q21DC<;A.V\X(YQTX(H ]0.JV0UE=(,W^G-;FY$6T_ZL,%
M+9QCJ0,9S187TEX]VLEC<6H@G:%3, !,  =ZX)^4Y[X/%>=#2_#^J_%72M0D
MLU\N[T$7D1F8ABXDC"$\_>"X%9VJF27PQXLC$\T9;QA#&)(W*L@+VP^4]NM
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
M=8N@;;G.WC&:M5Y3- HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH *K:C:F]TR[M%8*9X7C#$9QN4C/ZU9HH YOPUX,TCP_9Z<XTZQ
M;5;:TCMY+Y+=5D<J@4G=C/.*N:AX4\/:K?+?:AH>G7=T,#SI[9';CIDD<UL4
M4 0+96J7K7BV\2W31B)I@@WE 20N>N 23CWJ/^R]/\J[B-C;&.\8O<H8EQ,Q
M !+C'S$@ <^E6Z* ,W2?#^C:"LBZ3I=G8B4Y?[/"J;OK@<U#'X3\.Q7<UW'H
M>G+<3.LDDHMD#,P8,"3CKN /U&:V** *U_I]EJEG)9ZA:075M)]^&>,.K=QD
M&J]MX?T:STI]*M]*LHM/DSOMD@41OGKE<8/XUHT4 95KX8T&QL&L;71K"&U:
M196ACMU"EU(*L1CD@@$'MBKQL[8WJWIMXC=+&8EFV#>$)!*YZXR <>U3T4 8
M]KX3\.V6IG4K70].AOB2WVB.V17!/4@@<$TMQX5\/7=_-?7.B:=-=S(8Y9I+
M9&=U(P021SD<?3BM>B@#-U+P_HVL?9_[3TJRO/LYS#Y\"OY?TR..@_*I5T?3
M$2%$T^U5()S<1*(E 24YRXXX8[FYZ\FKM% &/?\ A3P[JE^+^_T/3KJ[&/WT
MULCMQTR2.<5L444 9O\ PC^C'3[C3_[*LOL5S(99[?R%\N5R02S+C!.0#D^@
MJU)86DS6S2VL+FU;? 60'RFP5ROH<$CCL:L44 4O['TPH5_L^UVFY^UD>4N#
M-G/F=/OY .[K4]U9VU]!Y%W;Q3Q;E?9*@9=RD,IP>X(!'TJ:B@#.TOP_H^B/
M,^E:79V33G,IMX%C+_7 J"+PGX=@U4ZI%H>G)?EM_P!I6V0/N]<XSGWK8HH
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
MKC;N[LH****0!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%<*/B#=QI<7]SH.S18-2?3Y+R.\#NA$WE!S&5'R[L=&)
M&>]=._B/1(]672GU>Q746(46IN%$A)Z#;G.?:@#3HK(U#Q3X?TF[-KJ.N:=9
MW  8Q7%TB, >G!-2W?B'1;"]AL[S5K&WNI\&*&6X57?/3 )R<]J -*BHQ<0M
M<-;B:,SJH=H@PW!3P"1UQP>?:N>U;Q%JMMXC71M)T6&_E^R"Z=YKWR JERN!
M\C9Z4 =+14=NTKVT3SQ+%,R R1J^X(V.0#@9P>^!5"U\1Z'?:A)I]IK%A/>1
M9WV\5PC.N.N5!SQW]* -.BN0\*>,1XIUK54M;S2I+"TE>&*.";?.X4J!*<'&
MQB6QQV'-6KKQ'J,VM7FFZ%I$5\UAL%U-<7?D(KLNX1KA&+-M()X &1S0!TM%
M(,E02,'N*6@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@#SOPOX,%XE[/K$FI>4NMW5S%I\K;(
M&Q.S1OMV@L.C#)(/!Q63XE?6]3NKNR-E?1O#K5O)!;6NEDQ/"LT9\]I\$$D9
M)VD$=", FO6J* /&;VX;^U?$9O1/%X?37$NKJZAL#,5,(B/$P?@909^0E?F&
M?2YJFDS_ -K^*K+5)]:2UU>8/$;#2Q=)<0F)5"^8(V*,I!&"5 X(ZYKNKCP3
MX?NKN:XELI#Y\OG30BYE$$KYSN:(-L8DCG*\UT% &19K:1:]) NG7'VR.RB#
MZC) ,2IE@$\SNP()([;L]ZP?&$7AZ:_/]J:%JUY>BWVP3V-K.Y(R2%62/A6!
MY^8C&:[6B@#FM'L=</PYM['4)V_MQM.,;RL^664H0"6[D<9/J*Y'3H'O[#P7
MH]GH5_8WVCW$,EY)-9M%' J1E9 )"-K[R<?*3G.37J=% '+^"K*:R37O/MG@
M,NLW4D>]"N]"PVL/4'L:XK7-$CM]3\6QW.C:O=:E?R_:-(N;-)BF]H548=3L
MC977DMCC'4<5Z[10!6TZ.YBTNTCO7$ETL*+,X_B<*-Q_/-6:** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
A** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@#__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>19
<FILENAME>a2024insidertradingpolic006.jpg
<TEXT>
begin 644 a2024insidertradingpolic006.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBFR2)%&TDC!40%F)[ 4 .HJKIVIV.KV:WFG7<-U;.2%EA<,K8X."*M4 %%
M0W=Y;6%J]U>7$5O;QX+RRN$5><<D\#DTZ>9+>"2>3=LC4LVU2QP/0#D_A0!)
M15;3]0M=5T^WO[&836MP@DBD (#*>AYYJS0 45%<W,%E:RW5U,D-O"ADDDD;
M"HH&22>P K%;QOX6569M?TX*JAF)G4  ]"?8T ;]%%% !15+5=6LM$TZ2_U&
M8PVL>-\FQF"Y..=H.![U/]LMOMWV+[1%]K\OS?(WC?LSC=MZXSQF@":BBB@
MHJKJ.I6.DV;7FHW4-K;(0&EF8*HSP,DU%8:WI>J2R16&HVMS+$ 9(XI0S(#T
M)'4"@"_103@$^E9EKXATF\L$OHKZ(6SSFV5Y<QYEW;-F&P=V[C'K0!IT444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !0>E%-D
M3S(W3<R[@1E3@CZ&@#R?P]J&I:;\*O!;:9=BWDN-0BM9-T2NK))*X.0>?R(^
MM;T>J>)X_P#A+]+LYUU/4--,+6+RQHC,)$#%2  I(PV,XSQFMF+P1HT.C:=I
M,:W*V>G7"W-LHN'RD@)8'.<D DG!XJ:;PEI<]SJ5RQNA-J+1/.R7+J=T1!C*
MX/RD8'3\<T <=JOB&XE\#^(+VUU>[EN+-H0UGJ5A$DULQ8921=@5@P((..W!
M-;\^HZCK'BG7=(MK]["WTNTA;,4:,TLDH<Y.]3\H"@8&"23S5^Y\&:1>:?J%
MG<K<RKJ+(UW*T[>9+LQM!8'@# X&!^9J2[\)Z7>ZF-1E%RMR8!;S-%<.@GC&
M<+(%(#8R>OJ1TXH X;PWKE_:^%O >BV*W ^VZ:\\TELL;2A8U7"KYGR\EQDG
M/ X'.1IW>K^++;3-!6ZD-E>W&MFP<R11.)[<B0I(RKD*V%4X4CG/MC?'@C1D
MTK3=/C6ZC73,_8IH[EUEA!&" X.<$<8/'Y59N/"NFW-OI\,GVHK87(NH6-RY
M;S>?F9B<L>3USUH FMM)FET.?3-;O/[5$XD25WB6+?&Q.%(7 X4XR,9ZUS-O
M8VNH?$OQ387<"2VL^D6<4D1Z,I,P(KNJR[?0+&V\076MQ^?]MNHUBE)E8J57
M[HV]!C)_,T <[!-X@U/QAX@TVVUW[+:Z?+:O$#:QR$JZ;G0G ^4X(SUY'/'-
M2;Q+?0ZUHCV^L/?6][JCV4ZI9!+785D(\N0KDLI0 D.02&X'0=?9Z'9V&L:A
MJD'G?:K_ &?:"TI96V#"X4\# XXK+A\!Z';_ &41I=A+.Y^U6J&ZD*P/DGY%
M)P!\QX]Z .,\6ZCJ/B'X>^+[]K][>WM+N6SBM$C0JR12*A+DJ6W,<G@@#CCK
MGKS<W+?$V?3Q/B!]%$RD1)OC?S2O#;<D=\'(SVI]]X!T'4!J2317(AU%_,N8
M([J18GDXR^P'&[@<XZC/7FM%?#UDNL_VOON3>_9/L?F&9O\ 5YSTZ9SSGKF@
M#A]$\1>(WTGP;J]YJJW"ZK>FSN;;[,BJ05E(<$#(8&,=#CGIW+KOQ#K]W>7-
MO:ZE/;ZBFNBR73X;>-L6FX RY9&/W#OW$[1TQ750^"M'M].TJPB6Y6WTJ?[1
M:+]H<['YY)SD_>;@^IKDCX6\0I;7WV1]9L]7GO9IXYH-046*EY2P;RRY.W:>
M5VY)S]: -SXJ@CX7:V"2Q$*<GO\ .M0:I;ZC::S=>-KRSAMX])T>X2.W2;?)
M.>'.\@ !1LX'/))XKJ=<T2R\1:1-I>HK(]I-CS%CD*%@#G&1SU JY]FC:T^R
MRCSHC'Y;"7YMZXP=V>N>] '$VVM:S8W7A&:[U#[;%KH,=Q#Y2*L3F$RJT14
M[1M((8MP1SFL2RN[BQ\(P2V\BKN\7/"ZO$CAE>^93]X'!YX(P0:[K3_">E:9
M/:2PI.YLHVCLUFG:1;92,$(">..,\D#CI4 \$:.-,73O]+^SK>_;P/M+[O/W
M;]V<Y^]\V.F: *,%[K/B/5?$$%AJITQ-,NDM(%6!) [!$=VD# D@[\ *5Z9Y
MK.N=<URVO/$.AG4W.JFZMQI+F&/B&;H<;?F"E9=Q/9.,&NGG\)Z7/K$VIXNH
MI[C9]H6"YDC2?:,*752 V!Q[C@Y%4;#2KG5/%J>(=4TE;&6RMWM;93,LCON;
M)<E> ,#"]_G?..* .FB1HXD1Y&D95 +L "Q]3@ ?E3Z** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M *K7^H6FF6C75].D%NK*ID<X +,%&?J2!^-6:SM?TB'7_#^H:3/Q'=P/%N_N
MDCAOJ#@_A0!9N[^UL!";J=(O/F6"+<?OR-]U1[FK%>:>&]4F\9:SX>2Z&9-#
MM'GU!#SB]RT"@^A&R=OQ%5?#%]XMUR+2M=B34"UQ>YNO,NX?LH@\PJR+%G<"
MHZ'&[*\]: /5:JW^HVFF6ZSWLPAB:1(@Q!.6=@JCCU) KA-(MO$&K:=XEO[;
M7[K^T$O;^ST^&5@((0LC*F1@Y(/0GH,#'K7DUNYM/#MQ;13ZO:ZI:ZI8174-
M_.LSQB2:,';(N0R,I/?UX'2@#TVBO-+VZU#4[/QAK#:_>Z?-HMQ-%:00R*L4
M8BC5E9U(^?>3DY[$ 8J6!]6\3^(IH)M8U#3(1H=G=F"T<(5GD,N3D@D8QT[X
M&>E 'HU9^K:[I>A0QRZG>Q6RR-MCWGESC)  Y/'I6'X4O;_7/#GA75KG5#%+
M):^9<P*BXNV,>.>XP?F^7^5;>KKJ+6ZC2'L$O^=IO$9EV]\!2#UVT 6-/U"S
MU6PBOM/N8KFUF&8Y8FW*PZ=?KQ6?=>+- L=672[G5K6*]+*OE,_(9ON@GH">
MP/)K"^&D\,/A>:UEVQW5MJ5S;W+&0%);CS"S&,X'RDMP,9'3MFN;N3 WPH\>
M?:=IN3J&H"3/7S?,_=?CCR\?A0!ZU145KY@M(?._UNQ=_P#O8YJ6@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@"E9:1I^FW%W/96<,$MY+YUP\:X,K_WCZFJ:>$M CU4ZFFDV
MRWAD\[S N/WG]_'3=[XS6S10!0.B:8UA=6+6,)M;IWDGB*Y61G.YB?<GFJ]M
MX7T.TLFLX-,@2!YDG=<9+2(058D\D@J,9]!6O10!C7WA+P_J>I?VA>Z1:SW1
MV[I'3._;]W<.C8[9SBM%;"U2^EOE@074T:Q22XY9%)*@^P+-^=6** ,Z'0=*
MM_[.\JPA3^S59;/"_P"H#+M(7TR.*35_#^DZ\L2ZI80W/DDF)G'S)GK@CD9P
M,^N*TJ* ,Q/#NC1V-G91Z;;):V4RSVT2Q@+%(I)# >N23GWJ*?PIH%UJXU:?
M2;62^#*_G,G)9?NL1T)'8GD5L44 %%%% !1110 4444 %%%% !1110 4444
M%%%% !16;K][-IV@WEY;[?-B3<NX9&<BO-O^%AZ]_>M_^_7_ ->MZ6'G55XF
M52M&F[,];HKR3_A8>O?WK?\ []?_ %Z/^%AZ]_>M_P#OU_\ 7K7ZE5\C/ZU3
M/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X
M6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_
M ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>
MC_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?W
MK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_
M %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R
M#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*
M\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW
M]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7
M_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8
M>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\
M[]?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/
MJ57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3
M/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X
M6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_
M ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>
MC_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?W
MK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_
M %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R
M#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*
M\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW
M]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7
M_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8
M>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\
M[]?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/
MJ57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3
M/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X
M6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_
M ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>
MC_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?W
MK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_
M %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R
M#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*
M\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW
M]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7
M_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8
M>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\
M[]?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/
MJ57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3
M/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X
M6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_
M ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>
MC_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?W
MK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_
M %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R
M#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*
M\D_X6'KW]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW
M]ZW_ ._7_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7
M_P!>C_A8>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>C_A8
M>O?WK?\ []?_ %Z/J57R#ZU3/6Z*\D_X6'KW]ZW_ ._7_P!>O4M/F>YTVUGD
MQOEA1VQTR0":QJT)TDG(TIUHU-BS1116)J%%%% !1110 4444 %%%% !1110
M!B^+O^14U'_KE_45XHBEW5%&68X ]Z]K\7?\BIJ/_7+^HKQFT_X_(/\ KHO\
MZ]3 _P -^IY^+^-&C-X8U6 2_N8I&B!,D<4Z.ZXZY4'/Z50LK&YU&X$%K$9)
M,$D9   ZDD\ >YKH6$Y^)3?9MWF"_).WLN[YL^V,YIL)C>P\5&SQRZ%-G7R?
M,.<>WW:W525M?+\3+D5_O_ R;S1+VSMOM+"&6W#;6E@F615/H=I.*98Z1>:A
M$\T*HL"':TLLBQH#Z98CGVJ_H&5TW7'DS]F^Q;6ST\PLNS\>M+J@;_A$]#,6
M?)!F#XZ>9N[^^,?A3YY7Y?/]+BY5:Y0_L:^&H&Q\H>?L,@ =2"H4MD$'!&!5
M>ULY[PRB!0WE1-,_(&%7J:U?"JL=>C3!W/!,$![YC;&*3PX"#JS$85=.F!/I
MD #]:;FU?RL)13L4;?2;VZTV?4(8=UM <2-N&1^'4]:;IVF7>K78M;*+S)2"
MV-P  ^IKH-!O4L?#\<DW-N^H^5./6-HB&_0Y_"KFFV+^'=0M;63_ (^+S4$0
M'U@1QS_P)L?]\U$JK5U]Q2IIV?WG*V6E7=_/-# J;H5+R%Y%0* 0#DDXZD4E
MQIEQ;7,5NS0222D!!%,D@R3CDJ3C\:V=%,*W'B W".\/V5]RHP5B/,7H2#C\
MJS(&M'URS-G%-'%YL?RRR!SG=Z@"K4Y-OR)Y59#)]'OK754TR:#9=NRJJ%A@
MENG/2G6>B7E](\4/D>8DGEE'G1"6] ">?PKK82-8\0;#S>Z9J99?5X#-R/\
M@).?H:YFQ_Y'&V_[""_^C!4QJ2:?=(IP2?D5-0TJYTTJ+AH,DE<1SHY!'7(4
MG%+I^DW6IY%L8-VX*%DG1"2>F Q!-,U7_D,7O_7Q)_Z$:?HO_(>T[_KYC_\
M0A5WER7ZD67-8==Z+>64L<4OD&21_+"1SHY#=,$ \?C4EWX>U*SAFEDCB98#
MB7RID<Q\X^8*21S3IO\ D;I/^O\ /_HRN@OS:+)XFDTY9C?;Y$N%F8%?*,GS
ME !ZXZ]!4.I)6+4(NYRFG:;=:M>"ULX_,E()P2 ,#W-5F1ED*,I#@X*]\UTF
MBVTEOH%Q>1W5O;7%S*L43S2;/D0AF(_'8/SJU/;6\7CW3[HF,VMY+'<*4.4W
M$\C/^^#3]K:30O9Z)F++X<U*&%GDCB5T3S&A\Y/-5<9R4SGI[52^P7/V:WN!
M&3'<.T<6TY+,,9&.O<4[45N/[5NUG#FX\U]X/7.3FNLT5H_^$>L(T98[^1[E
M;.5_NI)\GZD< ]C1*<HI-ZA&"DVCECI%Y_:$MCL4W$2LSJ'! "C)YSC(%-MM
M*O;RQN;RWA+P6V#*P(RN?;J:TO#B21ZW<I,K+*MM<!PW4'RVSFI]#U!],\/W
M%VBA@E]$'0]'4HX93]1FB4Y+;R",8O?S,'[)-]A^V[?W'F^5NR/O8SC'TJW:
MZ'>W5LMR!## Y(22XF6(.?\ 9W$9K9UNPCL/#1%NV^TFOQ-;OZHT?'XCD'Z5
M#XA%N-7M6NA.=.-G%]G\DC[NT=,\=<YI*HY; X);F!=VD]C<M;W";)%QD9!'
M(R"".#Q4-:.N6$6FZH]M [O$$1U,F-WS*&YQ]:SJUB[I,SDK.P44450@HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
MLO\ WX_^RH_X5?)_T%E_[\?_ &5'UJCW_,/J]7L>?T5Z!_PJ^3_H++_WX_\
MLJ/^%7R?]!9?^_'_ -E1]:H]_P P^KU>QY_17H'_  J^3_H++_WX_P#LJ/\
MA5\G_067_OQ_]E1]:H]_S#ZO5['G]%>@?\*OD_Z"R_\ ?C_[*C_A5\G_ $%E
M_P"_'_V5'UJCW_,/J]7L>?T5Z!_PJ^3_ *"R_P#?C_[*C_A5\G_067_OQ_\
M94?6J/?\P^KU>QY_17H'_"KY/^@LO_?C_P"RH_X5?)_T%E_[\?\ V5'UJCW_
M ##ZO5['G]%>@?\ "KY/^@LO_?C_ .RH_P"%7R?]!9?^_'_V5'UJCW_,/J]7
ML>?T5Z!_PJ^3_H++_P!^/_LJ/^%7R?\ 067_ +\?_94?6J/?\P^KU>QY_17H
M'_"KY/\ H++_ -^/_LJ/^%7R?]!9?^_'_P!E1]:H]_S#ZO5['G]%>@?\*OD_
MZ"R_]^/_ +*C_A5\G_067_OQ_P#94?6J/?\ ,/J]7L>?T5Z!_P *OD_Z"R_]
M^/\ [*C_ (5?)_T%E_[\?_94?6J/?\P^KU>QY_17H'_"KY/^@LO_ 'X_^RH_
MX5?)_P!!9?\ OQ_]E1]:H]_S#ZO5['G]%>@?\*OD_P"@LO\ WX_^RH_X5?)_
MT%E_[\?_ &5'UJCW_,/J]7L>?T5Z!_PJ^3_H++_WX_\ LJ/^%7R?]!9?^_'_
M -E1]:H]_P P^KU>QY_17H'_  J^3_H++_WX_P#LJ/\ A5\G_067_OQ_]E1]
M:H]_S#ZO5['G]%>@?\*OD_Z"R_\ ?C_[*C_A5\G_ $%E_P"_'_V5'UJCW_,/
MJ]7L>?T5Z!_PJ^3_ *"R_P#?C_[*C_A5\G_067_OQ_\ 94?6J/?\P^KU>QY_
M17H'_"KY/^@LO_?C_P"RH_X5?)_T%E_[\?\ V5'UJCW_ ##ZO5['G]%>@?\
M"KY/^@LO_?C_ .RH_P"%7R?]!9?^_'_V5'UJCW_,/J]7L>?T5Z!_PJ^3_H++
M_P!^/_LJ/^%7R?\ 067_ +\?_94?6J/?\P^KU>QY_17H'_"KY/\ H++_ -^/
M_LJ/^%7R?]!9?^_'_P!E1]:H]_S#ZO5['G]%>@?\*OD_Z"R_]^/_ +*C_A5\
MG_067_OQ_P#94?6J/?\ ,/J]7L>?T5Z!_P *OD_Z"R_]^/\ [*C_ (5?)_T%
ME_[\?_94?6J/?\P^KU>QY_17H'_"KY/^@LO_ 'X_^RH_X5?)_P!!9?\ OQ_]
ME1]:H]_S#ZO5['G]%>@?\*OD_P"@LO\ WX_^RH_X5?)_T%E_[\?_ &5'UJCW
M_,/J]7L>?T5Z!_PJ^3_H++_WX_\ LJ/^%7R?]!9?^_'_ -E1]:H]_P P^KU>
MQY_17H'_  J^3_H++_WX_P#LJ/\ A5\G_067_OQ_]E1]:H]_S#ZO5['G]%>@
M?\*OD_Z"R_\ ?C_[*C_A5\G_ $%E_P"_'_V5'UJCW_,/J]7L>?T5Z!_PJ^3_
M *"R_P#?C_[*C_A5\G_067_OQ_\ 94?6J/?\P^KU>QY_17H'_"KY/^@LO_?C
M_P"RH_X5?)_T%E_[\?\ V5'UJCW_ ##ZO5['G]%>@?\ "KY/^@LO_?C_ .RH
M_P"%7R?]!9?^_'_V5'UJCW_,/J]7L>?T5Z!_PJ^3_H++_P!^/_LJ/^%7R?\
M067_ +\?_94?6J/?\P^KU>QY_17H'_"KY/\ H++_ -^/_LJ/^%7R?]!9?^_'
M_P!E1]:H]_S#ZO5['G]%>@?\*OD_Z"R_]^/_ +*C_A5\G_067_OQ_P#94?6J
M/?\ ,/J]7L>?T5Z!_P *OD_Z"R_]^/\ [*C_ (5?)_T%E_[\?_94?6J/?\P^
MKU>QY_17H'_"KY/^@LO_ 'X_^RH_X5?)_P!!9?\ OQ_]E1]:H]_S#ZO5['G]
M>\Z/_P @2P_Z]H__ $$5PW_"KY/^@LO_ 'X_^RKO[.W^R6-O;%MWE1K'NQC.
M!C-<>+K0J)<K.G#4I0;YD3T445PG6%%%% !1110 4444 %%%% !1110 4452
MU74XM(T][R:.615>.,)$ 69G<(H&2!U8=Z +M%<]_P )6?\ H!:K^4/_ ,<H
M_P"$K/\ T M5_*'_ ..4 =#17/?\)6?^@%JOY0__ !RC_A*S_P! +5?RA_\
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
M^Y_Z%S6/RA_^.4^UU_S]2AL9],O[.69'>-KA8]K!<9^ZY]10!L4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !6!XQ./#X_Z_K+_TJBK?KG_&?_(O+_U_V7_I5%0!#117G.L^(-5M;CQ1
M=Q^(([;^RI56UL9(8V6;]TC[3QO)9F(X/>@#T:BN=N/%9AG:V@TB_O;F"!)K
MN.V"?Z/N&0IWLN6X/RC)JDVO"^\16,]E>2_V=<:'<72[.Y#Q8;:>-P!/7WH
MZ^BN7M?%2+IVD16]KJ&K7EW8)=[46)9/*('SOEE0$D] >N<5;7Q78B+57GBN
M;8Z9 EQ.DR!6V,F\$#/LRX..5(H W:*Y_P 2:O<VG@6_U>S#VURMF9HQ(H+1
ML1D CD9'XBL:/Q/J7]EV5O<2+'JUMJ]O87X"#$BLP^< ] Z$$8Z9..E '<T5
MA:AXE_LRZ"W.DWZV7G) U]B/RPSD*IQOW[<D#.VJFH^-[73KK4HCINHS1Z8R
MB\GBC79$K*K;N6!88;D $C!XQC(!U%%8%EXLM;J^DMI[.\L<6S7D4ETBJLL*
MD N,$D8R.& .".*33O%<-_=V4+Z=?6D=^K/93SJ@6<!=W #$J=OS ,!D"@#H
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@#.UH9L[?\ Z_[/_P!*8Z[>N)UG_CSM_P#K_L__ $ICKMJ
M"BN)'C%M*D\5W>JF:>STW4H+:&."(,ZK(D(P ,%OFD)[GT["KJ>.K..+5FU+
M3]0TV33+47DL-RB%WA.[#+L9@>5(P2"#UH ZFBN4U/Q%-_PCOVVXM-4T8_:[
M:-3B"1W$DJ*,89EVG=@\Y SCM69XT\;-;:'XE@TNQU.1["VDBEU&V5?+MIS'
MN4?>#$C*DE5(7(SWP =]17,3>+!:-%96^F7^JWD5G'<W0M!'^Z1@<$EV7+':
MV%&2<5'+X]L6NM.MM-T_4-3EU"S6^@%JBX\DG!9BS*%Q[^H'6@#JZ*P_%,&H
MMI,UUIVL3Z<]K#)*?*ABD$N%R =ZG'3MCK7/Z7X@N]!\%Z;XBU_5+_5?[2BM
M=L$5K$#')*!PH15)Y;'.3P* .\HKGI_$M]#8PW \+:Q)(R-)+ I@W0JI(Y)D
M"DG&0%)./2H9?&]D\.E'3+&^U2?4[;[9#!:J@=80%R[;V4+]X#&<DG% '3T5
MYUX<\27%WIVESW-[J"->^(+RWC0QJ2R!IBL<@?E5"IVY! %:J?$.R>7=_9.J
M+8K?G3Y;YHT$4<WFF,9^;<5+8^8 @;AG!R  =A17(ZMX]@TR:\\O1M3O;:SN
M8[.>YM_)"+,^T*GSR*3RZ G&!GK5GQYJM[H_@F^U"PF^S74?E!)"JMLW2(IX
M.1T)H Z6BN!L/%$NC^(-6L]2UZ/5M*L=-%]+>^4@>W;<1Y;>6 I) W 8SQWR
M*VM.\7)>:I;:=>:1J.ESWD32VAO%CQ.J@%@-CMM8 YVM@XH Z2BO/O"'B":7
M2_!YU#4[MIKS2[BXEW!&CEV>7EI&/S C=QC@\YK2'C^$Z//K)T'65TM+<W45
MUY496:($98#?N7@[AN R ?I0!U]%9:Z[:2:]!I$(DEFELS>>8F"B1[@JY.>K
M$G&!_":U* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K%U#_D;-
M%_ZXW/\ *.MJL74/^1MT7_KC<_RCH VJ*** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KG_&?_ "+R_P#7
M_9?^E45=!7/^,_\ D7E_Z_[+_P!*HJ (:Y[3?#,-OX@UC5;NVLYI;JY26WD,
M8:2-1$BXR1QRI/!KH:* .7N-*UVPU[4[_1O[/ECU)8S(MW(Z&&1%V!AM4[@0
M!QQR.M06'@Z;37T^."XC>&TT>:P+/D,\CLC;L8X'RMWXR.M=?10!QEGX;UO1
M6TBZTXV%Q<V^DQ:;=17$KHAV<AT8*3U+<$#(QTJGXGTF?4/%'AZV:6/SKZ$Q
M:FD:G9)#$R2DC/(&_P"49[2&N_HH R?$^ES:UX8U'3+=XTFN8&C1I"0H)]<
MUC^(?",^I>(=)U:QN(H6@GA-ZCYQ-'&^]2,#[P.0,]F/-==10!P&J^"]6U&^
MO&?^SYA+?1W,-Y/-(98HU=&\I4V[5QM(R#SGIDYK4OO#%Y<V7BZ%)8 VLC%N
M23A/W"Q_-QQRIZ9XKJZ* .;U#PU)J.J02R2HMJ-*N+"4 G?F0IR.,8PI_2J/
MAKPK-I-S9_:=&T-6M$V"^MV;SI#MV[@I0!2>_P QZFNRHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@#/UG_CSM_\ K_L__2F.NVKB=9_X\[?_ *_[/_TICKMJ .(U#P;J%W!XB1)[
M8'4]5M+V'<S?*D1@W!N.I\IL8SU'([:-_H5])XGO]7MULIDGTI+)(+DMM=Q(
M[$/@'Y2&QW^E=-10!YW!X&U7^Q+^S!LK&*>_L[FWT^&XDE@MEBD1WVLR@@MM
M/RA0 <>YI^K>$O$C6GBC2M*FTO\ L_76EF\ZY>02P-)&$==H4A@2O#9&,G@X
MQ7H-% 'GVI^!9VUYM4BTO1M6%Q:0P2PZB[1^4\8(#(P1\@@\@@=!S6WIOAN:
MQ\266HK'9V]K!I L3;VP(5'\P-\@Q]S@^_M7344 5=3MGO=)O+2,J'G@>-2W
M0%E(&?SKG)?"U[)X0\-:0)H//TN6P>9B3M80%=^WC/.TXR!^%=;10!QOBGPS
MJ>L:[#=0I8WMC]D,'V6^FD1(9"V?."J"'.,#!QTX(R:HZ;X1U_P_'X?N=-?3
MKB]L=*_LRZBN)72-URK!T8(3D,IX(Y![5Z!10!PFF^#-5MK;1ENKJSDGL]<N
M-3G>/<JNL@FX4$'!S*.">.>3WE?P=?MX-NM'$]M]HEU<WZMN;:(_M@GP>,[M
MHQTQGOCFNVHH \0U"Z2S\2Z_?2&SNKF/5O-AT6XN)XY[ID"!&6%6V-]W*L4/
M0$GT]1\8Z)/XE\)W>E0&));@Q']]G;A9%8@X![*16]10!@:UX3L-1\)ZCH-C
M#!IT=W$5!MX555?J&*C&>0*H6NC>(-2\0Z7J>OC38%TM)?*2QE>0S2NNPNVY
M5V@+G"C/)Z\5UU% '!:7X$O+:S\-6MW/;F/3M*NK"Z,3-EC*(P"F1T&QNN.U
M:7AO2O$%GI=OH>LII4NF6UI]D\V%Y&DN%"A5W(5 3Y>HRV3TQ75T4 >??"C3
M)H='N]2N+@W/G2?8[.8C!:SMR8XC^/SM[[J]!HHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "L74/^1MT7_KC<_P HZVJQ=0_Y&W1?^N-S_*.@
M#:HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "N?\9_\ (O+_ -?]E_Z515T%<_XS_P"1>7_K_LO_ $JB
MH AHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** ,_6?^/.W_Z_
M[/\ ]*8Z[:N'ULXL[;_K_L__ $ICKN* "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH *Q=0_Y&W1?^N-S_*.MJL74/\ D;=%_P"N-S_*.@#:HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "N>\;1+/X9:)]VQ[RS4[6*G'VF+H1R/PKH:Y_QG_R+R_\ 7_9?^E45 &'_
M ,(WIW_3Y_X'3_\ Q='_  C>G?\ 3Y_X'3__ !=:U<[>>--)L+V[M[A;P)9N
MJ7-PMJ[11$J&&YP"!PPYH N?\(WIW_3Y_P"!T_\ \71_PC>G?]/G_@=/_P#%
MUJJP90RD%2,@CH:SKC68;?6H]+,,SS/:278*#(VHRJ1CJ2=XQ0!'_P (WIW_
M $^?^!T__P 71_PC>G?]/G_@=/\ _%UH6EP+NSAN!%+$)4#^7,FUUR,X8=CZ
MBIJ ,G_A&]._Z?/_  .G_P#BZ/\ A&]._P"GS_P.G_\ BZLZKJEKHUB;V\9E
MMU=$9PN=NY@H)]LD9-+?:G;:?+9Q3LWF7DX@A55R6;!;\@%))H J_P#"-Z=_
MT^?^!T__ ,71_P (WIW_ $^?^!T__P 76M10!D_\(WIW_3Y_X'3_ /Q='_"-
MZ=_T^?\ @=/_ /%U>O+L6<<;F">;?*D6(8RY7<<;CCHHZD]A5B@#)_X1O3O^
MGS_P.G_^+H_X1O3O^GS_ ,#I_P#XNM:B@#)_X1O3O^GS_P #I_\ XNC_ (1O
M3O\ I\_\#I__ (NM:B@#)_X1O3O^GS_P.G_^+H_X1O3O^GS_ ,#I_P#XNM:B
M@#)_X1O3O^GS_P #I_\ XNC_ (1O3O\ I\_\#I__ (NM:B@#)_X1O3O^GS_P
M.G_^+H_X1O3O^GS_ ,#I_P#XNM:B@#)_X1O3O^GS_P #I_\ XNC_ (1O3O\
MI\_\#I__ (NM:B@#)_X1O3O^GS_P.G_^+H_X1O3O^GS_ ,#I_P#XNM:B@#)_
MX1O3O^GS_P #I_\ XNC_ (1O3O\ I\_\#I__ (NM:B@#)_X1O3O^GS_P.G_^
M+H_X1O3O^GS_ ,#I_P#XNM:B@#)_X1O3O^GS_P #I_\ XNC_ (1O3O\ I\_\
M#I__ (NM:B@#)_X1O3O^GS_P.G_^+H_X1O3O^GS_ ,#I_P#XNM:B@#)_X1O3
MO^GS_P #I_\ XNC_ (1O3O\ I\_\#I__ (NM:B@#)_X1O3O^GS_P.G_^+H_X
M1O3O^GS_ ,#I_P#XNM:B@#)_X1O3O^GS_P #I_\ XNC_ (1O3O\ I\_\#I__
M (NM:B@#FM7\/:>EK;E?M>3>VBG-[,>#<1@_Q^AZ]J[#_A%-*_Z?_P#P8W'_
M ,76)K/_ !YV_P#U_P!G_P"E,==M0!B?\(II7_3_ /\ @QN/_BZ/^$4TK_I_
M_P#!C<?_ !=6]+UJRU>"YFMG;;:W$EM,)%VE)(SA@<_G]"*R)/'6EKI=MJ,-
MKJEU;W$!N5:WLG?;%DC>V!@ X) ZD<XH N?\(II7_3__ .#&X_\ BZ/^$4TK
M_I__ /!C<?\ Q=:=C?6VIZ?;WUG*);:XC66*0=&5AD'\JPK?QUHMUJ$%M']K
M$5Q.;:WO&MF%O-*,@HLF,$Y! [$C@F@"U_PBFE?]/_\ X,;C_P"+H_X132O^
MG_\ \&-Q_P#%U;U?5X-&M4FF@NYS(_EQQ6ENTSNV">BCC@'DX%9L/C;1)O#\
MNLB:9((9_LTD3P,)EGR%\KR\;M^2!CWH G_X132O^G__ ,&-Q_\ %T?\(II7
M_3__ .#&X_\ BZBM/&.F75K?RF.^AFL-OVBTEM'$Z[_N80 EMW;&:FT/Q18:
M]<W=I!'=V]Y:;3-;7D#0R*K9VM@]0<'D>E "?\(II7_3_P#^#&X_^+H_X132
MO^G_ /\ !C<?_%TZS\4:7?\ B2]T"VF=[ZSC$DP"'8.G ;H2,C([5LT 8G_"
M*:5_T_\ _@QN/_BZ/^$4TK_I_P#_  8W'_Q=9R_$70B#+*M_!9B9H#?2V4@M
MPZL4.9,;0-P(R<"NL!! (.0: ,3_ (132O\ I_\ _!C<?_%T?\(II7_3_P#^
M#&X_^+K;HH Q/^$4TK_I_P#_  8W'_Q='_"*:5_T_P#_ (,;C_XNMNB@#$_X
M132O^G__ ,&-Q_\ %T?\(II7_3__ .#&X_\ BZLZ/K,.LB^,,<B?8[R2S??C
MYF0C)&.W-:5 &)_PBFE?]/\ _P"#&X_^+H_X132O^G__ ,&-Q_\ %UMT4 8G
M_"*:5_T__P#@QN/_ (NC_A%-*_Z?_P#P8W'_ ,76W10!B?\ "*:5_P!/_P#X
M,;C_ .+H_P"$4TK_ *?_ /P8W'_Q=;=% &)_PBFE?]/_ /X,;C_XNC_A%-*_
MZ?\ _P &-Q_\76W10!B?\(II7_3_ /\ @QN/_BZ/^$4TK_I__P#!C<?_ !=;
M=% &)_PBFE?]/_\ X,;C_P"+H_X132O^G_\ \&-Q_P#%UMT4 8G_  BFE?\
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
M1@%+ <D#H,_B?SIU !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5
MBZA_R-NB_P#7&Y_E'6U6+J'_ "-NB_\ 7&Y_E'0!M4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !7/\
MC/\ Y%Y?^O\ LO\ TJBKH*Y_QG_R+R_]?]E_Z514 0T444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% &?K/_'G;_P#7_9_^E,==M7$:T<6=O_U_
MV?\ Z4QUV] !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %8NH?\C;HO_7&Y
M_E'6U6+J'_(VZ+_UQN?Y1T ;5%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 5SOC<R#PPQB17D%Y9E59M
MH8_:8L G!Q]<5T58'C(X\/ _]/UE_P"E45 &%]KUW_H$6G_@<?\ XW1]KUW_
M *!%I_X''_XW6M10!D_:]=_Z!%I_X''_ .-T?:]=_P"@1:?^!Q_^-UK44 9/
MVO7?^@1:?^!Q_P#C='VO7?\ H$6G_@<?_C=:U% &3]KUW_H$6G_@<?\ XW1]
MKUW_ *!%I_X''_XW6M10!D_:]=_Z!%I_X''_ .-T?:]=_P"@1:?^!Q_^-UK4
M4 9/VO7?^@1:?^!Q_P#C='VO7?\ H$6G_@<?_C=:U% &3]KUW_H$6G_@<?\
MXW1]KUW_ *!%I_X''_XW6M10!D_:]=_Z!%I_X''_ .-T?:]=_P"@1:?^!Q_^
M-UK44 9/VO7?^@1:?^!Q_P#C='VO7?\ H$6G_@<?_C=:U% &3]KUW_H$6G_@
M<?\ XW1]KUW_ *!%I_X''_XW6M10!D_:]=_Z!%I_X''_ .-T?:]=_P"@1:?^
M!Q_^-UK44 9/VO7?^@1:?^!Q_P#C='VO7?\ H$6G_@<?_C=:U% &3]KUW_H$
M6G_@<?\ XW1]KUW_ *!%I_X''_XW6M10!D_:]=_Z!%I_X''_ .-T?:]=_P"@
M1:?^!Q_^-UK44 9/VO7?^@1:?^!Q_P#C='VO7?\ H$6G_@<?_C=:U% &3]KU
MW_H$6G_@<?\ XW1]KUW_ *!%I_X''_XW6M10!D_:]=_Z!%I_X''_ .-T?:]=
M_P"@1:?^!Q_^-UK44 9/VO7?^@1:?^!Q_P#C='VO7?\ H$6G_@<?_C=:U% &
M3]KUW_H$6G_@<?\ XW1]KUW_ *!%I_X''_XW6M10!D_:]=_Z!%I_X''_ .-T
M?:]=_P"@1:?^!Q_^-UK44 <SK%UK36EN'TJU4?;K0@B])R?M$>!_J^YP,]J[
M'[=XC_Z =C_X,C_\:K#UK_CTM_\ K_L__2B.NWH Q/MWB/\ Z =C_P"#(_\
MQJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'
M8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K
M;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\
MZ =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\
MQJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'
M8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K
M;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\
MZ =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\
MQJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'
M8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K
M;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\
MZ =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\
MQJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'
M8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K
M;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\
MZ =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\
MQJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'
M8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K
M;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\
MZ =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\
MQJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'
M8_\ @R/_ ,:K;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K
M;HH Q/MWB/\ Z =C_P"#(_\ QJC[=XC_ .@'8_\ @R/_ ,:K;HH Q/MWB/\
MZ =C_P"#(_\ QJJ/GZG-XOT@7]A!:J(+G88KHR[C^[Z_(N*ZFL74/^1LT7_K
MC<_RCH VJ*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ KG_&?_(O+_P!?]E_Z515T%<_XS_Y%Y?\ K_LO
M_2J*@"&O+=:UEHM6\4!/$%[!JUK,BZ98PR[O,/DH0OE8.X%B0>.YKU*LK2]'
M_L[4]7O#,)/[0N%F"[<>7B-4QG//W<_C0!G2^(]4:\GL=/T9+RYLH8WO=UR(
ME5W7<(T^5MS8YYP.1S6:NMQ:MX@T[4;9YQ:7&@7,X0-M8'S(OR8<C/:M2[T#
M5(M9OM0T;5+>U_M!$%PEQ;&7:RKM#IAEP=N!@Y' IEKX.AL)+(6UR1#:Z7+I
MZJZY9M[(=Y.?]D\8[T 5[#Q+<26&C66E:=)>W<^F17KBZO-OEQD #=)M)9R<
MCIS@DXJW)XN2T36/[0LGM9=-M8[HQ&0,9$="<#'&0X9.,\@>M5H?">H:;_9<
M^E:G!'=VFFQZ=,;BV,D<R)C#!0P*D')ZGKBJOB'0)]2\3>&T9YI2$8:C,L6(
MYHHRD@#8X&9%7 ]"U &UKTNL3>#KB73(6AU5X%81(P+(3@NJDC!8#< <=<5C
M:9XBTG3-#U"_MK[5;UX6C22QOG)GBE8[53#\KN+ =2...]=9J$-Y/9.EA=):
MW.04E>+S%&#D@KD9!''4=:YF?P7<ZH-2N=5U*,ZC=QPQQRVMOY:0>4_F(0I8
MECNY.3TXXH NW/B+4=-L/,U'11'=RSQV]I!!="19W?.!N(&W&"22,8Z9JM/X
MQGTZWU==3TH07VG6?VT0Q7'F)-%R,J^T$'*D$%?3K4UWX?UC5+!1J&K6WVVW
MN(KFTDM[0K'$Z9^\I<EMP)!Y''2LOQ#X>U%O#WB/4;V=;[5+G36M8H[2W9%1
M!N(55RQ)).2<^E &K#XJGBU.*VU?2SI\5S;R7-O+YXD)6, LK@#Y6 (. 6'7
MFJND^.DU&_TZ*6U@B@U+/V5H[Q995.TN!+&!\F5!Z%L'@XJ:W\,7MY>P7.NZ
MC'>1V]K);01Q6_E'$@ =G.XY;:,< #KQ3M!\-WVC/:P/<Z;-:6J>6CK8;+AU
M"X7<^_&1QDA><=LT =/1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 9^L_P#'G;_]?]G_ .E,==M7$ZS_
M ,>=O_U_V?\ Z4QUVU 'G'C36]6AUZ6ZTNZF2Q\-PQ7>H0QGBX$CC<C>NV%7
M?ZLM7M<NW?QIF&=C"_AF[E78QVD^9%AA[X/6K,'PZT2>74;K6[.UU2]OKF29
MYY8<%4/"(.3@*H4?AFF:9X&N+*.R6?51<-:Z--I(8PX+*SJ48_-_"J $=^O%
M $VEZN^D_".RUF0&9[70X[DACDN5@#<GWQ3/#OA_4)+/3=8OO$>JRZA*B7%P
M@F'V=MPR8Q%C:%YP".>,YK:L-"AM_"-MX?NF%S!'8K92G&T2*(PAX[9%9.B^
M'O$FDI9Z>WB.WGTFTVJ@:Q_TEXUZ1M)OV], L$R?8\T 5(_'UP]G;ZRVB%?#
MEQ<K E]]J'F@-)Y:RF+;PA8C^+.#G%%_X[OH;F0V6AQ7%DFJ+I/G2WWE.9RP
M7.P(WR[CC.<]\8YIEOX#U"/3K;0)=8AD\.6UPLR0"U(N&1)/,2)I-^-H8#D*
M"0,<5R4=C?V/B&_U*VT^277&U:1X+2YT9Y 8VDP&^U !0-A)#9^487G% '7Z
MCX^O;(ZY/#X?>?3]$N/*O+C[6JDJ$1R47;\Q ?)!('3!.<#1OO$]^^LW6F:%
MHZZE+90QRW3RW0@5=X)1%^5MS$#/8#(YYJ.Z\&M<Z)XKTX7P4Z]-)*'\K/D[
MH4CQC/S8V9[=:+GPSJ]MK5WJ6@ZM;6CW\,45TEU:&8;HP561,.N#@XP<@X%
M%6V\7Z?J.IZ-J2&\BMKG2;J\(:8JD:QM&&#QCAF!)&<\8/7-94_B/5]8UKP7
M<3:/)I]A>WQF@D%V',D9MY2JR* -I((;'S#CJ"*V[3P#:6G]F0+<N]G9Z7<:
M<Z.OSS><4+.6['Y3QC^+VJO8>"]9BG\/K?Z]!<6FA29MXX[/8TJB)XP9&+GY
M@&'( '!R#D8 -+PSXHN/$EQ<O'8P16,4DD6_[6&G1T?;B2+:-F<$CYCQ]:G\
M1ZWJ&C()+33K2XB"%WDNK];89'\*Y5LM]<#WJEI_A6^3Q;'KVHWMB\T,$D"F
MSLS \X8K@S,7;=C;P !R2?:F^(/"%SJWB%-5MKNR4FS-FT=Y9_:!&"Q;?'\P
M"OS@YR#@>E $;>.)KLZ"FCZ,]Y+K-@][")+@1+$%\OAS@\?O.H!Y XYR$3QW
M)<:3ISVND,^KWUY+8K8/.%6.6(OYI:3!^50A.0"3D<<U8T3P<VD3^'9#>B7^
MR-,?3R/*QYI;R_FZ\?ZOISUJJW@>Z@@MYK#4XXM2M-4N=0MY9;<O'B=GW1LH
M8$C:^,@CD9H /!-[?7OB#Q:U_;R6LR7L*FW:42"/_1X_ND<$'J.!UY /%58=
M/O-?\9>*HFU[5[,64UO';+:W&U(]UNC$[""I^8D\BM[PWX?N]&O-7O+_ %%;
MVYU*=)Y&2#RE0K&J;0,GCY>.<XZDGFJ$OAC7X/$&LZAI.NV=I#JCQ/(LE@99
M(RD:Q_*WF!?X<\J>M &;H'B6YU*;PS'J33-J!N[ZSF>WF,<,CP!E+M&!A@0N
M0.,$\58M?B',_AR[\17FAM:Z5$"D+FZ4O/+YGEA0N  I8XW$]CQCFM"R\%6^
MFS>'?LERXBTAIW;S1N>X:52&9FXP2S%CQ^51CP/&_P /_P#A%I[PG#&1+E8Q
M\K^<95.TDYP<9&><>] %6+XC6T":H-5M[>.2QLOMW^@7BW221YV[0P"X?=@8
M(Q\PYJ'Q/XF\6:=X,U+4!H<%A<Q(CQR"]68*I.#D%/O#@8P1SPW%7F\(7>I:
M+J>F:O/I:Q7EOY(;3; P,IZ[R2[9Y ..!QWIUWX:UW6O#>I:3K>MVLOVF 0Q
M26MD8]C Y\Q@7;<20. 0.* );KQ-JL-W8Z5#HD,NMW$,EQ);_;<0P1*P7<TN
MS)R2, +Z^F:HR_$"1=+M)8=$FEU&;5&TF6Q\]08IU1V^_C!7Y0<\<-GMBK5S
MX=UV2_L-:AU6PCUN"WDM9V-FYMYXF<,!L\S<I! YW>O'/#+;P0T$6FM)J/FW
M<&KMJUW,8=HGD9'0A5S\@PPQR>%[T /7Q9J+>(8=#_LFU2]6WBN+F.74 I =
MF!\D;/WNW:23\O85UE<IXG\*WWB2YBB>]L8[%)8Y48V9:Z@96#'RI=X"DXZ[
M>,GK75T %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 5BZA_R-NB_P#7&Y_E'6U6
M+J'_ "-NB_\ 7&Y_E'0!M4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !7/\ C/\ Y%Y?^O\ LO\ TJBK
MH*Y_QG_R+R_]?]E_Z514 0T444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% &?K/_'G;_P#7_9_^E,==M7$ZS_QYV_\ U_V?_I3'7;4 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 5BZA_R-NB_P#7&Y_E'6U6+J'_ "-NB_\
M7&Y_E'0!M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !7/\ C/\ Y%Y?^O\ LO\ TJBKH*Y[QK''-X:,
M4J*\;WEFK(XR&!N8L@CO0!%16;_PCNB?] ?3_P#P&3_"C_A'=$_Z ^G_ /@,
MG^% &E16;_PCNB?] ?3_ /P&3_"C_A'=$_Z ^G_^ R?X4 :5%9O_  CNB?\
M0'T__P !D_PH_P"$=T3_ * ^G_\ @,G^% &E16;_ ,([HG_0'T__ ,!D_P *
M/^$=T3_H#Z?_ . R?X4 :5%9O_".Z)_T!]/_ / 9/\*/^$=T3_H#Z?\ ^ R?
MX4 :5%9O_".Z)_T!]/\ _ 9/\*/^$=T3_H#Z?_X#)_A0!I45F_\ ".Z)_P!
M?3__  &3_"C_ (1W1/\ H#Z?_P" R?X4 :5%9O\ PCNB?] ?3_\ P&3_  H_
MX1W1/^@/I_\ X#)_A0!I45F_\([HG_0'T_\ \!D_PH_X1W1/^@/I_P#X#)_A
M0!I45F_\([HG_0'T_P#\!D_PH_X1W1/^@/I__@,G^% &E16;_P ([HG_ $!]
M/_\  9/\*/\ A'=$_P"@/I__ (#)_A0!I45F_P#".Z)_T!]/_P# 9/\ "C_A
M'=$_Z ^G_P#@,G^% &E16;_PCNB?] ?3_P#P&3_"C_A'=$_Z ^G_ /@,G^%
M&E16;_PCNB?] ?3_ /P&3_"C_A'=$_Z ^G_^ R?X4 :5%9O_  CNB?\ 0'T_
M_P !D_PH_P"$=T3_ * ^G_\ @,G^% &E16;_ ,([HG_0'T__ ,!D_P */^$=
MT3_H#Z?_ . R?X4 :5%9O_".Z)_T!]/_ / 9/\*/^$=T3_H#Z?\ ^ R?X4 :
M5%9O_".Z)_T!]/\ _ 9/\*/^$=T3_H#Z?_X#)_A0!I45F_\ ".Z)_P! ?3__
M  &3_"C_ (1W1/\ H#Z?_P" R?X4 :5%9O\ PCNB?] ?3_\ P&3_  H_X1W1
M/^@/I_\ X#)_A0 :V<6=MS_R_P!G_P"E,==QD>M>;ZSX?T9;2#;I%@,WMHIQ
M;)R#<1@CIT()%=?_ ,(AX9_Z%W2/_ */_P")H V<CUHR/6L;_A$/#/\ T+ND
M?^ 4?_Q-'_"(>&?^A=TC_P  H_\ XF@#9R/6C(]:QO\ A$/#/_0NZ1_X!1__
M !-'_"(>&?\ H7=(_P# */\ ^)H V<CUHR/6L;_A$/#/_0NZ1_X!1_\ Q-'_
M  B'AG_H7=(_\ H__B: -G(]:,CUK&_X1#PS_P!"[I'_ (!1_P#Q-'_"(>&?
M^A=TC_P"C_\ B: -G(]:,CUK&_X1#PS_ -"[I'_@%'_\31_PB'AG_H7=(_\
M */_ .)H V<CUHR/6L;_ (1#PS_T+ND?^ 4?_P 31_PB'AG_ *%W2/\ P"C_
M /B: -G(]:,CUK&_X1#PS_T+ND?^ 4?_ ,31_P (AX9_Z%W2/_ */_XF@#9R
M/6C(]:QO^$0\,_\ 0NZ1_P" 4?\ \31_PB'AG_H7=(_\ H__ (F@#9R/6C(]
M:QO^$0\,_P#0NZ1_X!1__$T?\(AX9_Z%W2/_  "C_P#B: -G(]:,CUK&_P"$
M0\,_]"[I'_@%'_\ $T?\(AX9_P"A=TC_ , H_P#XF@#9R/6C(]:QO^$0\,_]
M"[I'_@%'_P#$T?\ "(>&?^A=TC_P"C_^)H V<CUHR/6L;_A$/#/_ $+ND?\
M@%'_ /$T?\(AX9_Z%W2/_ */_P")H V<CUHR/6L;_A$/#/\ T+ND?^ 4?_Q-
M'_"(>&?^A=TC_P  H_\ XF@#9R/6C(]:QO\ A$/#/_0NZ1_X!1__ !-'_"(>
M&?\ H7=(_P# */\ ^)H V<CUHR/6L;_A$/#/_0NZ1_X!1_\ Q-'_  B'AG_H
M7=(_\ H__B: -G(]:,CUK&_X1#PS_P!"[I'_ (!1_P#Q-'_"(>&?^A=TC_P"
MC_\ B: -G(]:,CUK&_X1#PS_ -"[I'_@%'_\31_PB'AG_H7=(_\  */_ .)H
M V<CUHR/6L;_ (1#PS_T+ND?^ 4?_P 31_PB'AG_ *%W2/\ P"C_ /B: -G(
M]:,CUK&_X1#PS_T+ND?^ 4?_ ,31_P (AX9_Z%W2/_ */_XF@#9R/6C(]:QO
M^$0\,_\ 0NZ1_P" 4?\ \31_PB'AG_H7=(_\ H__ (F@#9R/6C(]:QO^$0\,
M_P#0NZ1_X!1__$T?\(AX9_Z%W2/_  "C_P#B: -G(]:,CUK&_P"$0\,_]"[I
M'_@%'_\ $T?\(AX9_P"A=TC_ , H_P#XF@#9R/6C(]:QO^$0\,_]"[I'_@%'
M_P#$T?\ "(>&?^A=TC_P"C_^)H V<CUHR/6L;_A$/#/_ $+ND?\ @%'_ /$T
M?\(AX9_Z%W2/_ */_P")H V<CUHR/6L;_A$/#/\ T+ND?^ 4?_Q-'_"(>&?^
MA=TC_P  H_\ XF@#9R/6C(]:QO\ A$/#/_0NZ1_X!1__ !-'_"(>&?\ H7=(
M_P# */\ ^)H V<CUHR/6L;_A$/#/_0NZ1_X!1_\ Q-'_  B'AG_H7=(_\ H_
M_B: -G(]:,CUK&_X1#PS_P!"[I'_ (!1_P#Q-'_"(>&?^A=TC_P"C_\ B: -
MG(]:,CUK&_X1#PS_ -"[I'_@%'_\31_PB'AG_H7=(_\  */_ .)H V<CUK$O
M_P#D;=%_ZXW/\HZ=_P (AX9_Z%W2/_ */_XFJ!T72M*\7Z0^G:99V;/!<AS;
MP+&6'[OKM S0!U%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 5S_ (S_ .1>7_K_ ++_ -*HJZ"N?\9_
M\B\O_7_9?^E45 $-<O?>-8[&[U-6TB_EM-,<)=W<7EE8\HKD[=P8@!AG ]:Z
MBN @\/W.MZ]XLMI=1N;73I[R-)H(HU!G7R(\C>02 >AQ0!W#7MJD<4CW,2I,
M 8RS@;\],9ZU0N=:-OX@BTI;8R&2QENPX<#E&1=N#QSOZY[5R5\FAV7BG6E\
M2V22026\,>G"6W,JF$)ADCX.&WYR!SR*ATFTU&"318]0CE^TIX9N4DW@EE.^
M+"D_WL8'X4 =]!?HVG6]W=;;0S(K%)9%^4D9V[@<$_0U9$D;;L.IV?>P?N]^
M:\PL!I]JWAF7Q';*VF_\([!%!]H@,D:3X7>",'#%=N,]<$5+KT;Z??+9Z1#)
M#:^*+.&TB 0J8'7"EB#RO[ACUY_=T >EJRNH96#*PR"#D$5B>'_%-EXCGOXK
M6.5#9R["9  )%R0)%]5)5L?2F^))Y-%\(S1:9$1<>6EI9H@^Z[81/P&0?H*Y
MNPT_5?#/B/09;FVLTLGMQI#FT=W/ +1,V5'\089_VZ .]%U;M*L2SQ&1@2J!
MQDCU H:ZMT=4:>)79MBJ7 );T'O7D.E+I5QH&F6]A:'_ (23^UA(LH@;S JW
M!W/OQ_JQ&".N.W6IM2_L62/QK;W-D9M:FO)([$B!G<OY:;!&V."'.3C&,@F@
M#T&?Q#)'J.L6<5@TSZ=;PS@+,JF7S"_'S8"XV=2>]:\EQ#$T:RRQQO(<(KL
M6/H/6O-_$-O=_9/&BRH[S-HUDI(&=[CS=V/7FKUZ=&@\9:W_ ,)-:";SXX!8
M>;;-+NC"?,L> ?FWY) YY!H [IKF!;A8&GC$S#(C+C<1].M9MGKT-SJVJ6,H
M2 V5Q' KO*/WI:-7X'&#\V,<]*\^\37*W6H7RQV=C:WL&J0;$6P=[N4+)'^^
M\T$!5(SS@C QG)J764T--:\:C5K RW=QL2R9K9G,C?9T 6(X(#;L=,'IZ< '
M>:OK4FEPZC+]B:2.SL'NP_FJ Y7=\F.6'W>N,<TAUY(8)+FZMVAM([);MYS(
MI'.<H%SNR,=<8.:XV_MKY8M42[21[H>#ECE;&=TO[S<,]SFI;O3VO;G58&M/
M.W^%X51&CW R RD  ]P<'ZXH [RSU"UO[>&:VG1TE02)AAG& >GXBIU='W;6
M#;3@X.<'TKS9Y].TOPIH/BC2H$$>DE5O4@BV%DD14E!&!E@=C?\  :Z_PC83
M6'ARW-T,7MT6N[KU\V0[V'X9V_A0!N4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% &?K/_'G;_P#7_9_^E,==M7$ZS_QYV_\
MU_V?_I3'7;4 <]KOC"PT#6]*TNYCF>74'V[XP"L +*BLYSP"[JH]ZDU'Q']@
MUXZ7]E\S&F3:AYGF8_U;(NS&.^[KGMTKA]1T?7_&%QXKN;*WL!:W1&G6LEU+
M(DD8MR2'0!2,>:68'/.T5-;ZC<:]J5CJDEO)'+/X4NUF0H1LF$D0=?\ OH-^
M5 '?:3J\>I>&['6956VCN;2.Z=6?(C#(&(+<=,]>*R-+\8RZO);36WAW5O[*
MNF"P:@5CVL#T<IOWA#V8KTYX%5K+3+G4_@U;:7#E+JYT!;= W&': *,^G)IO
MACQGI<NF:7I+1W4&JK%';RV+6DF^%P IW?+@*,9W9QB@#K1=VQN3;"XB^T 9
M,6\;L>N.M-EO[.";R9KN".4C.QY #CZ&O'+2"QD\,Z;IT5DP\=IJ4<DTAMV%
MPDHG!EE>3'^K*;N<X(('M4;C3[[Q%?QZK#90VL?B,SR:A<6<LCD(X B,@C,0
M4X"\OPIP1F@#VEKRV218WN(5=FV*I< EO0#UY'%+-=6]L4$\\41D.U [A=Q]
M!GK7D^LZ!:76@_$G49=.674([N0VL[1YD39;Q,IC/4?-DY'7\*7Q';B3QEJI
MUR[TZVM;JP@CLY-1TQ[I63:WF+&P=0C;CDCJ<J>U 'K/G1;G7S$W(,N-PRH]
M3Z4Y65T#HP96&00<@BO'/$VFW.S3X],:]OUL=(A37KA%,3WMGN4B/:03YI42
M-C.0I89RPKN_&27-[\-M270 Q>6RS;K I!,9 X4#!R4R !0!T<5Y;3I(\-Q#
M(L9(<HX(4CUQTH2[MI'=$N(F>,!G4."5!Z$^@KRFQLM/GM]7O-,U73I630KB
M![/3=)>U!! *^9EV&Y3D '!^9O>K^F:!8Z=J7@)[338H6N+*:.]98N90UN&(
ME/\ %EAGYN] '81>*+.^T674M)0W_ES&$PK(L;9$OEL?F(  ()]P..M6H-?T
M^YU6^TN"=7O;(*98L@$[@2 ,]3P<^E>606NGV_PXUO3;2QCAU6#50+F..VV2
M;/[0S'D@<KLQCMBNEL;72;#XI>(5FL;>*^NX()K*3[,-SGRY/-96QU_O<\YY
MH [*TU-)=(M[^]5;'S45F2:9#L)[;@=I_ U9FNK>WB$L]Q%%&Q #NX4'/3DU
MXO:P30:9X(FU*2TMM,CT/RUDU&P:Z@CN"4R&4,NUBG1CZ,.]7[W3],TKPWHE
MP-9L[J2S6[>SAOM,D-K<H[Y,2H<E2N J$$G'0$&@#UUY$C3>[JJ<?,QP*/,3
MS/+WKOQNVYYQZXKG[W3?^$G^'KV$EG]@>^TX 6YX^S.4!5?;:V/RKRXZSKL@
M'CB.TNQ>7L+:&+?8<J_DJ5?'8"Y#C/H: /;)+ZTA@6:6ZA2)CA7:0!2?8TZ6
MY@@3?+-'&N"V78 8'4UYG+INB>&O$UG9^([>.71[;1(;73Y+BW,L(D5F$HQ@
M@2,-A]2*I:3H(O?^$(L]5T^1[$7&HRQ6MTA.R#):!74^B[<*?0#M0!Z-IVO+
M?Z[K&FB$(FG" B;S,B02(6SC'&/J<U&GB:VD\3?V2GE-!]@-[]K68%>)-FWT
M]\Y_"N#\26,R'QO#;6DOV,/I8EAMXS\ULNWS54#J-@88';(I]EI?AWQ!XSU:
MVT2R2'2[[P^]M+-#;&*%W,@&5X ) (Y'IZC@ ]3\Q/,$>]=Y&[;GG'KBJ?\
M:#-JD%K%;F2"2)Y#<K*FU2K ;=N=QZGD# QS7C46KZY L7C>6TNVNM-B70Y;
M?8<R,(6+.!W!N#&,^@KIAH5[HNHZ+IE@&-W;^&+V)91WN"T)SGU+Y- '9:CX
MC@LM6TFPB6.X:^NVM7*2C,!$3R9(P<GY,8XZUK?:K<W)MO/B\\#=Y6\;L>N.
MM>/Z)'X??4O  TC36BU&VD*:A(MJR-&WV:3<LS$#+E\GG)ZGOS'H.G":ZM+7
M5-5LK+78=7-Q*G]DR&\=Q,3_ *[?RCK@;MNT*<=J /::*** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "L74/^1MT7_KC<_RCK:K%U#_ )&W1?\ KC<_RCH VJ*** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ KG_&?_(O+_U_V7_I5%705S_C/_D7E_Z_[+_TJBH AHHHH **** "J5QI
M5M=:K9ZC+O::S600C=\H+@ MCUP,?B?6KM% !1110!3TK3+?1].CL;7?Y,;.
MPWG)RS%C^I-%AIEOITEZ\&_-Y<&YEW'/SE57CT&%%7** "BBB@ HHHH ****
M *6JZ5;:S8&RN]Y@9T=U5L;]K!@#[$@9%7:** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH S]9_P"/.W_Z_P"S_P#2F.NV
MKB=9_P"/.W_Z_P"S_P#2F.NVH **** "BBB@ KEW\!Z4[2QFXO\ [!+<&YDT
M_P"TG[.SE]Y^7K@MSMSCVKJ** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *Q=0_Y&W1?^N-S_
M "CK:K%U#_D;=%_ZXW/\HZ -JBBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *Y_QG_P B\O\ U_V7_I5%
M705SWC<2'PR1$5$GVVSV;^F?M,6,^U $5%9>W7O^>FF_]\/_ (T;=>_YZ:;_
M -\/_C0!J45E[=>_YZ:;_P!\/_C1MU[_ )Z:;_WP_P#C0!J45E[=>_YZ:;_W
MP_\ C1MU[_GIIO\ WP_^- &I167MU[_GIIO_ 'P_^-&W7O\ GIIO_?#_ .-
M&I167MU[_GIIO_?#_P"-&W7O^>FF_P#?#_XT :E%9>W7O^>FF_\ ?#_XT;=>
M_P">FF_]\/\ XT :E%9>W7O^>FF_]\/_ (T;=>_YZ:;_ -\/_C0!J45E[=>_
MYZ:;_P!\/_C1MU[_ )Z:;_WP_P#C0!J45E[=>_YZ:;_WP_\ C1MU[_GIIO\
MWP_^- &I167MU[_GIIO_ 'P_^-&W7O\ GIIO_?#_ .- &I167MU[_GIIO_?#
M_P"-&W7O^>FF_P#?#_XT :E%9>W7O^>FF_\ ?#_XT;=>_P">FF_]\/\ XT :
ME%9>W7O^>FF_]\/_ (T;=>_YZ:;_ -\/_C0!J45E[=>_YZ:;_P!\/_C1MU[_
M )Z:;_WP_P#C0!J45E[=>_YZ:;_WP_\ C1MU[_GIIO\ WP_^- &I167MU[_G
MIIO_ 'P_^-&W7O\ GIIO_?#_ .- &I167MU[_GIIO_?#_P"-&W7O^>FF_P#?
M#_XT :E%9>W7O^>FF_\ ?#_XT;=>_P">FF_]\/\ XT :E%9>W7O^>FF_]\/_
M (T;=>_YZ:;_ -\/_C0!J45E[=>_YZ:;_P!\/_C1MU[_ )Z:;_WP_P#C0 _6
MCBSM_P#K_L__ $ICKMZ\UUE=;^R6^]]/(^W6F,(_7[1'COTSBNPQXF_O:1_W
MS)_C0!M45BX\3?WM(_[YD_QHQXF_O:1_WS)_C0!M45BX\3?WM(_[YD_QHQXF
M_O:1_P!\R?XT ;5%8N/$W][2/^^9/\:,>)O[VD?]\R?XT ;5%8N/$W][2/\
MOF3_ !HQXF_O:1_WS)_C0!M45BX\3?WM(_[YD_QHQXF_O:1_WS)_C0!M45BX
M\3?WM(_[YD_QHQXF_O:1_P!\R?XT ;5%8N/$W][2/^^9/\:,>)O[VD?]\R?X
MT ;5%8N/$W][2/\ OF3_ !HQXF_O:1_WS)_C0!M45BX\3?WM(_[YD_QHQXF_
MO:1_WS)_C0!M45BX\3?WM(_[YD_QHQXF_O:1_P!\R?XT ;5%8N/$W][2/^^9
M/\:,>)O[VD?]\R?XT ;5%8N/$W][2/\ OF3_ !HQXF_O:1_WS)_C0!M45BX\
M3?WM(_[YD_QHQXF_O:1_WS)_C0!M45BX\3?WM(_[YD_QHQXF_O:1_P!\R?XT
M ;5%8N/$W][2/^^9/\:,>)O[VD?]\R?XT ;5%8N/$W][2/\ OF3_ !HQXF_O
M:1_WS)_C0!M45BX\3?WM(_[YD_QHQXF_O:1_WS)_C0!M45BX\3?WM(_[YD_Q
MHQXF_O:1_P!\R?XT ;5%8N/$W][2/^^9/\:,>)O[VD?]\R?XT ;5%8N/$W][
M2/\ OF3_ !HQXF_O:1_WS)_C0!M45BX\3?WM(_[YD_QHQXF_O:1_WS)_C0!M
M45BX\3?WM(_[YD_QHQXF_O:1_P!\R?XT ;5%8N/$W][2/^^9/\:,>)O[VD?]
M\R?XT ;5%8N/$W][2/\ OF3_ !HQXF_O:1_WS)_C0!M45BX\3?WM(_[YD_QH
MQXF_O:1_WS)_C0!M45BX\3?WM(_[YD_QHQXF_O:1_P!\R?XT ;5%8N/$W][2
M/^^9/\:,>)O[VD?]\R?XT ;5%8N/$W][2/\ OF3_ !HQXF_O:1_WS)_C0!M4
M5BX\3?WM(_[YD_QHQXF_O:1_WS)_C0!M5BZA_P C;HO_ %QN?Y1T8\3?WM(_
M[YD_QJ@1JO\ PE^D?VB;(KY%SL^SA@<_N^NZ@#J:*** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K \9''
MAY?^OZR_]*HJWZY_QG_R+R_]?]E_Z514 0T45Y/JT$5YK?BZ*#3]2N-;^T(M
MA/:I(!"WD1[<R#"J W)!/2@#UBFF2,2B(NOF%2P3/) ZG'IR*Y8ZIX@O-2O-
M.TLZ<LFFQ1"XDND=O.F=-VU0I&T8QR<]>G%9-OK":YK6EZMY 5;CP[=2-"YR
M ?,BRN>XR"* /0:*XC2=:U*[M-#TO18+"T=M&@OI6G1WCC5@ L:*&!ZAN2>
M.]6;SQ9>:2=:AU*WMQ<V=E%=6JPEB)BPV%<GK^]&WMPR\4 ==17,^+=1U'3?
M =S="1(=0\J*-I(AQ&[LJ,RY]-Q(^E8_B7P]I_A;0EUG2$D@U&SFA/G>:Q:X
M!D5663)^?<&/7O0!WU%<-K7C:_TFSUA%LX9M1L[X0PP@'$D)C\W=UZ^6LGXK
M^%3:KXQNX8=7NM-@MY[:Q6T6,N2/-DF921D'@!'0].K?A0!V=%<?)XHU+1;C
M5H=<BLY?LFG?VC&UF&4%06!C.XGG('S<=>@J#2O%^HW%]'!<"UN5FM9)MUM;
M31BW=0#L<OPP.3AACD=.: .WHK \):CK&L:-;ZGJB644=W!'-!%;AMR@C)W$
MG!SP0 ..G/6M^@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH SM:_X\[?_K_L_P#THCKMZXG6?^/.W_Z_[/\
M]*8Z[:@ HKD_";LWB;QF&8D+J<8 )Z?Z-%6!:_$B]O;J&ZMX[62QEO\ [*+)
M+68W C\WR_-\W[G^T5QT_BS0!Z717F]QXZUB;6C:V%QHR'^V3I@L)8WDN0H.
M#,<2#C +8VX"\Y[5:UCQM>:3X@AMQ?:/<V[:A%9R6<,<C3QB1PH9I-VT,-P)
M0KT[T =VDL<A<1R*Y1MKA3G:<9P?0X(_.GUR?@W_ )"WC#_L-G_TG@K%TKPQ
MI?B+Q%XPEU"*4W$>IB*&XBG>.2(?9XB-I4C&"2: /1J*\KTSQ_J,?A_P_9R7
M5O\ VA=)<F6_NK>293'!*8@VR,@LS\'J!U/H*TX?&NN7UKHD5I8V:WU_?7%F
M[SK(L6(D9A*@.&VD+G!^F1UH ]!HKB(?%>J1V.MVVHW&CV>HZ5=QP274H=;9
MTD571@F[=N(;&S=U[UGK\0-4'AO6+F*&PO;[3]2MK-'C22&&X65H@#M8ED.)
M".21D9Y% 'H]%>>ZI/XRA\6^&+5M2TI'N$NO-2*"41.54'YE\SG (QZ')[X"
MZUXP\1VDOBFYLK;2S8>'Y%+B82&2X3R4D91@X4C<<-R#P,<$D ]!HKB%\6ZO
MI6I3QZ_!8FW.D3:K$+/?NC6(KNC8L<.<.,, O0\56\.>.-2U/5],M[E;2>'4
M8G<K:VLR&S8)O =W^5P0",@+SCCF@#T"BO.]$\9>([JS\-:MJ-MI:Z?K4ZVW
MDVXD\V-F1BK[B<$$H?EQD9')J]X$N?$%SJ'B'^U+ZUN+:#4YH55(W#*P6,@*
M6<@)@GY<=3UH [:BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "L74/^1LT7_KC<_P HZVJQ=0_Y&W1?^N-S_*.@#:HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"N?\9_\ (O+_ -?]E_Z515T%<_XS_P"1>7_K_LO_ $JBH AJA8:3#I]]J5W$
M\C/?S+-(&(PI"*F!QTPHJ_10!@7_ (8%SJ=S?6>JWVG2W<:QW0MMA$H48!^9
M3M8 XR,4^+PKI]O+:M;^9%';:>^GQQJ1@1L5)/(SN^0<^YK<HH YL^#XH8]-
M-AJ=[8W%C9K8B>+RV:6%0,!@RE<Y&00!@DU5UKPRVH^(O#+;)I;?3P[7%S)(
M"7"["BMW8EU5NF/E/K7744 5M1T^VU73KBPO(A+;7"&.1#QD'^58<7A &6U&
MH:UJ6HVMI(LD%M<F/:&7[I<J@9R.HW'KZUTM% &)/X7L+GQ0FO2&4W"V_D&+
M(\MOO ,1C[P#L.O0U3L_ ^G6/A9] CGNFMY)DF:5V!D)5E91G&, (J].@KIZ
M* ,F]\/66H:A<W=UOD%S8FQEB)^4QEB3[YY]:BL- N+.,PS:YJ%Y;B$PI%,(
M@%4C&250%B!W)K;HH J:5I\6DZ19Z;"[O%:PI"C/C<0H !.._%6Z** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@#/UG_CSM_P#K_L__ $ICKMJXG6?^/.W_ .O^S_\ 2F.NVH YC_A$)(=>
MO=4LO$&IV8O9TGGMHE@:-V553^*,L 0H[T^Q\)-I=V?[/US4;;3C<-<?V>HB
M,89FW,H8H7"$DG ;N<8KI** /*;3P_XFL;ZX:QM=3MM3EU.2;SQ/;M8"%YR[
M<,3)@H3E<9W'L*Z>7P!;27$F-7U%+)]174_L2F/8)Q()"<[-Q4L.A.!GZ8Z^
MB@#.TO1H-*N=3GADD9M0NS=2!R,*VQ$P,#IA!U]36+/X'$FHZG<P>(=8LX=2
ME$US;6S1*K-L5.&,9=<A1T85U=% '.7/@VR\K2_[*N)])FTN)H;66UVG;&V-
MR,'#!@=H/(SD9S69KWA;4[Z]\,1QZGJ$IL[N::?40T2RQYB<*<!0I&XA=NTC
M'![UVU% ')'P%:-I[QMJ5\VH/?IJ+:BVPRF=1M4XV[-H4;0NW&/SIR^!+0VE
M_%<ZE?W,M_>6][//*4W&2$H5 PH '[L#&.G2NKHH Q=<\/+K-WI]Y'?W5C>6
M#NT,UN$)PZ[74AU8$$>W&*AN_"-E>6GB.V>>X"Z]_P ?!4KF/]TL7R<>B@\Y
MYKH** ,:Z\,V-[J<5[<&23982Z>821L>*0H6SQG/R =>YJ'1?#=QHQAB_P"$
M@U*ZLK>/RX;6<1;57& "P0,V!TR?KFM^B@#G;?P=8VVBZ%I:SW!AT:=)X&)7
M<[*K !N.GSGIBK&F>'ETG6M1OK>_NC!?R&>2R8(8UE(4%P=N[D(.-V.3Q6U1
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5BZA_R
M-NB_]<;G^4=;58NH?\C;HO\ UQN?Y1T ;5%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5S_C/_D7E_Z_
M[+_TJBKH*YWQQ+'!X8,LKK'&E[9,[N<!0+J+))["@".BLO\ X270?^@WIO\
MX%)_C1_PDN@_]!O3?_ I/\: -2BLO_A)=!_Z#>F_^!2?XT?\)+H/_0;TW_P*
M3_&@#4HK+_X270?^@WIO_@4G^-'_  DN@_\ 0;TW_P "D_QH U**R_\ A)=!
M_P"@WIO_ (%)_C1_PDN@_P#0;TW_ ,"D_P : -2BLO\ X270?^@WIO\ X%)_
MC1_PDN@_]!O3?_ I/\: -2BLO_A)=!_Z#>F_^!2?XT?\)+H/_0;TW_P*3_&@
M#4HK+_X270?^@WIO_@4G^-'_  DN@_\ 0;TW_P "D_QH U**R_\ A)=!_P"@
MWIO_ (%)_C1_PDN@_P#0;TW_ ,"D_P : -2BLO\ X270?^@WIO\ X%)_C1_P
MDN@_]!O3?_ I/\: -2BLO_A)=!_Z#>F_^!2?XT?\)+H/_0;TW_P*3_&@#4HK
M+_X270?^@WIO_@4G^-'_  DN@_\ 0;TW_P "D_QH U**R_\ A)=!_P"@WIO_
M (%)_C1_PDN@_P#0;TW_ ,"D_P : -2BLO\ X270?^@WIO\ X%)_C1_PDN@_
M]!O3?_ I/\: -2BLO_A)=!_Z#>F_^!2?XT?\)+H/_0;TW_P*3_&@#4HK+_X2
M70?^@WIO_@4G^-'_  DN@_\ 0;TW_P "D_QH U**R_\ A)=!_P"@WIO_ (%)
M_C1_PDN@_P#0;TW_ ,"D_P : -2BLO\ X270?^@WIO\ X%)_C1_PDN@_]!O3
M?_ I/\: -2BLO_A)=!_Z#>F_^!2?XT?\)+H/_0;TW_P*3_&@#4HK+_X270?^
M@WIO_@4G^-'_  DN@_\ 0;TW_P "D_QH U**R_\ A)=!_P"@WIO_ (%)_C1_
MPDN@_P#0;TW_ ,"D_P : )-9_P"/.W_Z_P"S_P#2F.NVKS76?$6B/:6X36=/
M8B^M&.+I#@"XC)/7H "3]*[#_A,/#'_0QZ1_X'1?_%4 ;5%8O_"8>&/^ACTC
M_P #HO\ XJC_ (3#PQ_T,>D?^!T7_P 50!M45B_\)AX8_P"ACTC_ ,#HO_BJ
M/^$P\,?]#'I'_@=%_P#%4 ;5%8O_  F'AC_H8](_\#HO_BJ/^$P\,?\ 0QZ1
M_P"!T7_Q5 &U16+_ ,)AX8_Z&/2/_ Z+_P"*H_X3#PQ_T,>D?^!T7_Q5 &U1
M6+_PF'AC_H8](_\  Z+_ .*H_P"$P\,?]#'I'_@=%_\ %4 ;5%8O_"8>&/\
MH8](_P# Z+_XJC_A,/#'_0QZ1_X'1?\ Q5 &U16+_P )AX8_Z&/2/_ Z+_XJ
MC_A,/#'_ $,>D?\ @=%_\50!M45B_P#"8>&/^ACTC_P.B_\ BJ/^$P\,?]#'
MI'_@=%_\50!M45B_\)AX8_Z&/2/_  .B_P#BJ/\ A,/#'_0QZ1_X'1?_ !5
M&U16+_PF'AC_ *&/2/\ P.B_^*H_X3#PQ_T,>D?^!T7_ ,50!M45B_\ "8>&
M/^ACTC_P.B_^*H_X3#PQ_P!#'I'_ ('1?_%4 ;5%8O\ PF'AC_H8](_\#HO_
M (JC_A,/#'_0QZ1_X'1?_%4 ;5%8O_"8>&/^ACTC_P #HO\ XJC_ (3#PQ_T
M,>D?^!T7_P 50!M45B_\)AX8_P"ACTC_ ,#HO_BJ/^$P\,?]#'I'_@=%_P#%
M4 ;5%8O_  F'AC_H8](_\#HO_BJ/^$P\,?\ 0QZ1_P"!T7_Q5 &U16+_ ,)A
MX8_Z&/2/_ Z+_P"*H_X3#PQ_T,>D?^!T7_Q5 &U16+_PF'AC_H8](_\  Z+_
M .*H_P"$P\,?]#'I'_@=%_\ %4 ;5%8O_"8>&/\ H8](_P# Z+_XJC_A,/#'
M_0QZ1_X'1?\ Q5 &U16+_P )AX8_Z&/2/_ Z+_XJC_A,/#'_ $,>D?\ @=%_
M\50!M45B_P#"8>&/^ACTC_P.B_\ BJ/^$P\,?]#'I'_@=%_\50!M45B_\)AX
M8_Z&/2/_  .B_P#BJ/\ A,/#'_0QZ1_X'1?_ !5 &U16+_PF'AC_ *&/2/\
MP.B_^*H_X3#PQ_T,>D?^!T7_ ,50!M45B_\ "8>&/^ACTC_P.B_^*H_X3#PQ
M_P!#'I'_ ('1?_%4 ;5%8O\ PF'AC_H8](_\#HO_ (JC_A,/#'_0QZ1_X'1?
M_%4 ;5%8O_"8>&/^ACTC_P #HO\ XJC_ (3#PQ_T,>D?^!T7_P 50!M45B_\
M)AX8_P"ACTC_ ,#HO_BJ/^$P\,?]#'I'_@=%_P#%4 ;5%8O_  F'AC_H8](_
M\#HO_BJ/^$P\,?\ 0QZ1_P"!T7_Q5 &U16+_ ,)AX8_Z&/2/_ Z+_P"*H_X3
M#PQ_T,>D?^!T7_Q5 &U16+_PF'AC_H8](_\  Z+_ .*H_P"$P\,?]#'I'_@=
M%_\ %4 ;58NH?\C;HO\ UQN?Y1T?\)AX8_Z&/2/_  .B_P#BJH?VWI6J^+](
M33M3LKQD@N2ZV]PLA4?N^NTG% '4T444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6#XQ./#X_Z_K+_P!*
MHJWJY_QG_P B\O\ U_V7_I5%0!#117'7_B_4[2YUR6'2+>?3]&<"X?[65F9?
M+61F5=FTX#="PSB@#L:*R;OQ/HFGK U[J=O;&>,2QK*X4E#_ !$=A[GBH+K7
M)8_$<%A!]G>VETV:\$C$\LC1A?F'&W#G/!H W:*QO^$DTZSTBPO-5U"RMVNX
ME=2LN4<E024)P67GKCI5V'5M/N([B2&]@D2W4-*RN"$!4."3Z%2#GTH N45D
MZWKD>E^%KO7+=%NHX;8W$8#8$@QD<X/!JGINOZ@VO)HVK:?;V\\MLUU#):W)
MF1E5@I!RBE3\P[8- '145EV_B31;NYEM[?5+666)69U20$X7[Q'KCOCI5D:G
M8F"TF%W$8[PJMLP;B4D%AM]<@$T 6Z*Q;?Q%:1:%:ZCJEY8P>?P&AF+QNV3P
MA(!;@>GK5V#5].NOLOD7L$OVM6>WV.#YH7&XKZXR,T 7:*HC6--:V:Y%[ 85
MG^SEPXP)=VW9]=QQBJ7B36;K1XM/6RM(;FXOKQ;1%FF,:*2CMDD*Q_@].] &
MW160-9.FV"S>(Y+#3Y'=@H2Y+H0%+?>95YP"<8[4MQXHT.TBMY;C5;6-+F,2
MQ%I -R'^+V7W/% &M16=J&OZ1I/D?;]1MK;S^8O,D W#U'MR.>E2PZMI]Q]F
M\F\AD^U;_(VN#YFS[VWUQ0!<HJE)K&FPVMS<RWT"06LACGD9P!&XQ\I/KR./
M>HHO$&D3Z>U_'J-L;59!$TOF !7) "GT.2.#ZB@#2HK/T_7=)U6*>2PU&VN$
M@_UK1R A.,Y/H,=^E06OBG0;W_CVU:TE_>)%\L@.68X4?B0<>M &O14*W=NU
MZ]FLR&Y1!(\0/S*I) )'H2#^534 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110!G:U_QYVW_ %_V?_I3'7;X'I7$ZS_QYV__ %_V?_I3'7;4 &!Z
M48'I7)1^(?$.HZ_JUCI6DZ8]MIMREN\MU?21NY,:.2%6)AT?'7M6^=:TQ;.\
MO&OH!;V3NES(7&V%E^\&]"* +V!Z48'I63>>*-"T^]CLKS5K2"YD"E8Y)0#A
MN%SZ9[9ZT7OB?0].OEL;S5;6"[9E40O( Y)&1QUH UL#THP/2J0U?3FMK*X%
M[ 8;YE6U<.,3%@64+ZY )_"L/QGX@UOPUI\VIV6F6%W801JTIFO'BEW%MN H
MC8$<KSD=^..0#J<#THP/2N-O?%>J:'>Z-'XABTJPAO+B=)I([EI%2-(2ZG<R
MI@EAC&#V[FMU/$VAR:2FJKJUH;!W\L7!E 3=G&TGL<]C0!JX'I1@>E8DGB_P
M[%IMMJ,FL6BVET6$$ADXDVG#;1U.,<^E6+SQ%HUAI\%_<ZG:QVMQCR)?,!$N
M1D;<?>XYX[4 :>!Z48'I5>VO8-0L$O-/GAN894W12(^4?\17*VGCIKVRTB.+
M3P-7O;Y[*>R,O_'LT1/GL3CD*!D<<[E]: .RP/2C ]*RCXFT-=7&DG5;07Y;
M9Y'F#=NQG;_O8YQUIK>*=!75QI)U:T%^7\L0>:-V_P#N_P"][=: -? ]*,#T
MK*/B71%U4:6=4M1?EF3[/Y@W@JH<@CMA3FGZ5K^DZYYO]EZA;W?DXW^4^< Y
MP?H<'!Z'!H TL#THP/2BB@ P/2C ]*** # ]*,#THHH ,#THP/2BB@ P/2C
M]*** # ]*,#THHH ,#THP/2BB@ P/2C ]*** # ]*,#THHH ,#THP/2BB@ P
M/2C ]*** # ]*,#THHH ,#THP/2BB@ P/2C ]*** # ]*,#THHH ,#THP/2B
MB@ P/2C ]*** # ]*,#THHH ,#THP/2BB@ P/2C ]*** # ]*,#THHH ,#TK
M$O\ _D;=%_ZXW/\ *.MNL74/^1MT7_KC<_RCH VJ*** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KG_&?_
M "+R_P#7_9?^E45=!7/^,_\ D7E_Z_[+_P!*HJ (:XFV\)IJ?B#Q')J@OA9S
MWD96 3,D-PHAC&6 ^\,@CTXQ7;44 <9(9M#\3Z[//HUY?0:A%#]F:UA\P$(F
MTQ-_=&<GGCYC5#2?#^IZ:=(M[B!W:W\/7%M(R_,JR,\9$>?7 ('TKT*B@#SW
M28+[0+C0;^[TJ]N(AX?@L66WA\QX)EP6#+U&>!GU7FHO$]G='6+*VLK9K>+Q
M-;)974.0&@\LAF) .,^495XXX%>CU6DL+6:_@OI(0US CI%(2?D#8W8[<X%
M&1XSL9;KP+JUC8V[22O:-'%#&N2>. !6.GAN71]?GCTR&;[-JNG/"T[LTK6T
MRCY?G8E@K!CQG&5]Z[BB@#SOPOI4A?0K;4!KZW&F)@0S6T*VT3",HV)%0%E(
M) PQSD9J?PUHFH0>(TLKNVD33-",WV"5NDWFGY,>NQ-R_C7>T4 >76FCZM86
M/A:[D35+=+2UN()A90I)-"[N"#L=6R"%() R..Q-:%WI-QIWANSU71K74KF^
ML]0>\$-U&JSRB0LLHVJ  "&+8P.E>@T4 >::+X7U+3==T_2)+>1M+5HM5GN/
MX3<K%L9,^ID"R8KI/&>DOK T* 0S2PIJJ23^4[(401R MN4@@9(Y![UT]% '
M)ZGX?CBO_#,-I:S36EMJ#SRF61YMG[F3#%G)/WMN.>N*S=7T^]M_%NJW,KZR
MME?V\,<;:;;13@A0P:-PR,5ZY'0'<:[ZB@#@[>SD\.ZW:S+I6I7UBVC0V,&(
MUDEC9&8E),' W!ER?NY7K69X?2XM= \'ZK'I]Q-;V<EXD\5JGF/&'+@$*.H!
M&.*]/JO96-MIMHEK:1"*!"2J G R23U]R: /.IM*UB[TJ>\%C?VK+XB.H&&-
M4:<P[  RALJQ!(..?NG'(JQ>:*;_ $34I88M8O)[V]L3,-1MDC,BQRIDA%1>
M N<DCH/:O1:* .%\3Z%J&HZEXA2P@91=Z''!&_W5DD$DAV9]=I ^AJY>*/%7
MAR]L8=)O=.F2W4PR74(B\N53N0+SD[64'(X]ZZZF30QW$$D$J[HY%*,,XR",
M'I0!RO@*2;5=.N?$MW%Y5QJT@=4_N1(-B#]&;_@5=;45M;0V=K#:VT:QP0H(
MXT7HJ@8 'X5+0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% &?K/
M_'G;_P#7_9_^E,==M7$ZS_QYV_\ U_V?_I3'7;4 >8QZ?:67CK7[[5/#FKW4
MLM_%-9W-M!(R;1#&,Y4@<,IZU-KWA_4YO&<NF6UG(^A:[/;W=],!\D30Y\Q3
M_P!= D(]_FKTBB@#RG4M#NUU;Q19:DWB,V>KW'F(-,M89HYXFB5-K,T;,C+M
M(Y90!@CUKJM"T=[7QUXAO);5_+DMK.&"XE7)<*K[@&[\[<^^*ZRB@#S#PCIE
MROC>;19D_P");X5>9K-LY#&Y^:,?5(RZ_P# A74_$*RNM1\":I:64#SW$BH$
MCC&6;$BG@?0&MRTTZTL);J6V@6.2[F\^=@23(^ ,G/LH'X5:H Y?Q%ILM[XM
M\)SBU,UO:W,\DK[-RQ_N&"D^GS8Q[US-[X>O;A-3@?39)()O%UO=>68\J\&(
M=[X[KD-D^QKTZB@#@/%-AJ-OXZMM9BEUB*Q;3C:>9I5O'/)')YFXAD='.U@1
MRHZH,UDR^'KK1Y_#E[8-XACTZVM;J%FAMX9;N!Y95DRT91@%.&'RKD#:.!FO
M5:* ,'P?IT.FZ#L@&H!9KB6X;^T$1)=SN68E5 "@DD@8'7I69I>@"V^*6NZO
M]B9(YK*W$4Y!VM(2PEQVR1'%GZ"NQHH \FTWP_=QAM$UA_$I/]K-=!;6UA:V
MDS<>:DOG>7N'\);+[N".F!3]=3Q)JNH&VFM=4'V?78)8K>WLXQ:_9DG0B4RE
M=S,1R=K9!SD8!KU:B@#C=&TCR+GQM/>:;(ZWMZQ4*@#W,(MXQA3D9YW@<CDF
MF^!SJ<%S=6!747T*V@B6SDU.V$,Z-\P,?0%U50N&([XR>M=I10 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5BZA_R-NB_P#7&Y_E
M'6U6+J'_ "-NB_\ 7&Y_E'0!M4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !7/\ C/\ Y%Y?^O\ LO\
MTJBKH*Y_QG_R+R_]?]E_Z514 0T444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% &?K/_'G;_P#7_9_^E,==M7$:T<6=M_U_V?\ Z4QUV] !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %8NH?\C;HO_7&Y_E'6U6+J'_(VZ+_U
MQN?Y1T ;5%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 5SWC='D\,LD<GEN;RSVOC.T_:8L''>NAK \9'
M'AY<?\_UE_Z514 8?V#5O^@V?_ 5*/L&K?\ 0;/_ ("I6K51M4T]+S[&U]:K
M=9 \DS*'R>GRYS0!5^P:M_T&S_X"I1]@U;_H-G_P%2M6J\E_:0W8M9+B-)S$
MTP1C@[%(#-] 2/SH I?8-6_Z#9_\!4H^P:M_T&S_ . J5I0S17,$<\$J2Q2*
M&21&#*P/0@CJ*?0!E?8-6_Z#9_\  5*/L&K?]!L_^ J5JU3@U;3KJZ>UM]0M
M9KA/O11S*SK]0#F@"M]@U;_H-G_P%2C[!JW_ $&S_P" J5J$@ DD #J33+>X
MAN[=)[::.:&0;DDC8,K#U!'!H SOL&K?]!L_^ J4?8-6_P"@V?\ P%2M!KF!
M+F.V>>-9Y%+)$7 9@,9('4@9&?K4M &5]@U;_H-G_P !4H^P:M_T&S_X"I6K
M4%M>6]X)3;S+((I6ADV_PNO!4^XH H_8-6_Z#9_\!4H^P:M_T&S_ . J5.VL
MZ6MU]E;4K,7&[9Y1G7?NZ8QG.?:FOKFF1ZD^G/?0K=QQ^8\1;E%QG)[#CGGM
M0!%]@U;_ *#9_P# 5*/L&K?]!L_^ J59TW5+'5[7[5I]REQ!NV[TSC/7^HJY
M0!E?8-6_Z#9_\!4H^P:M_P!!L_\ @*E:M10W,%PTJP3QRF)S'($<-L; .TXZ
M'!''O0!G_8-6_P"@V?\ P%2C[!JW_0;/_@*E:M% &5]@U;_H-G_P%2C[!JW_
M $&S_P" J59DU;3HKK[+)J%JESD#R6F4/D].,YJY0!E?8-6_Z#9_\!4H^P:M
M_P!!L_\ @*E:M% &5]@U;_H-G_P%2C[!JW_0;/\ X"I6K10!E?8-6_Z#9_\
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
MP I8,4"[\!"0/EQC@<5$_@+1FU&[OXY=5MY[R7SI_L^J7$2N_J55P.G'TXH
MZ>BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH *Q=0_P"1MT7_ *XW/\HZVJQ=0_Y&W1?^N-S_ "CH VJ*** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M KG_ !G_ ,B\O_7_ &7_ *515T%<_P",_P#D7E_Z_P"R_P#2J*@"&BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH S]9_X\[?_ *_[/_TICKMJ
MXC6?^/.W_P"O^S_]*8Z[>@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "L7
M4/\ D;=%_P"N-S_*.MJL74/^1MT7_KC<_P HZ -JBBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *YWQQ(
M(?##2L'*I>V;$(A9L"YB/ &23[#FNBK!\8G'A\?]?UE_Z514 8/_  D=E_SP
MU3_P5W/_ ,;H_P"$CLO^>&J?^"NY_P#C=:U% &3_ ,)'9?\ /#5/_!7<_P#Q
MNC_A([+_ )X:I_X*[G_XW6M10!D_\)'9?\\-4_\ !7<__&Z/^$CLO^>&J?\
M@KN?_C=:U% &3_PD=E_SPU3_ ,%=S_\ &Z/^$CLO^>&J?^"NY_\ C=:U% &3
M_P )'9?\\-4_\%=S_P#&Z/\ A([+_GAJG_@KN?\ XW6M10!D_P#"1V7_ #PU
M3_P5W/\ \;H_X2.R_P">&J?^"NY_^-UK44 9/_"1V7_/#5/_  5W/_QNC_A(
M[+_GAJG_ (*[G_XW6M10!D_\)'9?\\-4_P#!7<__ !NC_A([+_GAJG_@KN?_
M (W6M10!D_\ "1V7_/#5/_!7<_\ QNC_ (2.R_YX:I_X*[G_ .-UK44 9/\
MPD=E_P \-4_\%=S_ /&Z/^$CLO\ GAJG_@KN?_C=:U% &3_PD=E_SPU3_P %
M=S_\;H_X2.R_YX:I_P""NY_^-UK44 9/_"1V7_/#5/\ P5W/_P ;H_X2.R_Y
MX:I_X*[G_P"-UK44 9/_  D=E_SPU3_P5W/_ ,;H_P"$CLO^>&J?^"NY_P#C
M=:U% &3_ ,)'9?\ /#5/_!7<_P#QNC_A([+_ )X:I_X*[G_XW6M10!D_\)'9
M?\\-4_\ !7<__&Z/^$CLO^>&J?\ @KN?_C=:U% &3_PD=E_SPU3_ ,%=S_\
M&Z/^$CLO^>&J?^"NY_\ C=:U% &3_P )'9?\\-4_\%=S_P#&Z/\ A([+_GAJ
MG_@KN?\ XW6M10!D_P#"1V7_ #PU3_P5W/\ \;H_X2.R_P">&J?^"NY_^-UK
M44 9/_"1V7_/#5/_  5W/_QNC_A([+_GAJG_ (*[G_XW6M10!D_\)'9?\\-4
M_P#!7<__ !NC_A([+_GAJG_@KN?_ (W6M10!S.L:_9R6EN%@U($7UHWS:;<#
M@7$9/5.O' ZGH.:['_A*M/\ ^?;6/_!/=_\ QNL/6AFSMO\ K_L__2B.NWH
MQ/\ A*M/_P"?;6/_  3W?_QNC_A*M/\ ^?;6/_!/=_\ QNMNB@#$_P"$JT__
M )]M8_\ !/=__&Z/^$JT_P#Y]M8_\$]W_P#&ZVZ* ,3_ (2K3_\ GVUC_P $
M]W_\;H_X2K3_ /GVUC_P3W?_ ,;K;HH Q/\ A*M/_P"?;6/_  3W?_QNC_A*
MM/\ ^?;6/_!/=_\ QNMNB@#$_P"$JT__ )]M8_\ !/=__&Z/^$JT_P#Y]M8_
M\$]W_P#&ZVZ* ,3_ (2K3_\ GVUC_P $]W_\;H_X2K3_ /GVUC_P3W?_ ,;K
M;HH Q/\ A*M/_P"?;6/_  3W?_QNC_A*M/\ ^?;6/_!/=_\ QNMNB@#$_P"$
MJT__ )]M8_\ !/=__&Z/^$JT_P#Y]M8_\$]W_P#&ZVZ* ,3_ (2K3_\ GVUC
M_P $]W_\;H_X2K3_ /GVUC_P3W?_ ,;K;HH Q/\ A*M/_P"?;6/_  3W?_QN
MC_A*M/\ ^?;6/_!/=_\ QNMNB@#$_P"$JT__ )]M8_\ !/=__&Z/^$JT_P#Y
M]M8_\$]W_P#&ZVZ* ,3_ (2K3_\ GVUC_P $]W_\;H_X2K3_ /GVUC_P3W?_
M ,;K;HH Q/\ A*M/_P"?;6/_  3W?_QNC_A*M/\ ^?;6/_!/=_\ QNMNB@#$
M_P"$JT__ )]M8_\ !/=__&Z/^$JT_P#Y]M8_\$]W_P#&ZVZ* ,3_ (2K3_\
MGVUC_P $]W_\;H_X2K3_ /GVUC_P3W?_ ,;K;HH Q/\ A*M/_P"?;6/_  3W
M?_QNC_A*M/\ ^?;6/_!/=_\ QNMNB@#$_P"$JT__ )]M8_\ !/=__&Z/^$JT
M_P#Y]M8_\$]W_P#&ZVZ* ,3_ (2K3_\ GVUC_P $]W_\;H_X2K3_ /GVUC_P
M3W?_ ,;K;HH Q/\ A*M/_P"?;6/_  3W?_QNC_A*M/\ ^?;6/_!/=_\ QNMN
MB@#$_P"$JT__ )]M8_\ !/=__&Z/^$JT_P#Y]M8_\$]W_P#&ZVZ* ,3_ (2K
M3_\ GVUC_P $]W_\;H_X2K3_ /GVUC_P3W?_ ,;K;HH Q/\ A*M/_P"?;6/_
M  3W?_QNC_A*M/\ ^?;6/_!/=_\ QNMNB@#$_P"$JT__ )]M8_\ !/=__&Z/
M^$JT_P#Y]M8_\$]W_P#&ZVZ* ,3_ (2K3_\ GVUC_P $]W_\;H_X2K3_ /GV
MUC_P3W?_ ,;K;HH Q/\ A*M/_P"?;6/_  3W?_QNC_A*M/\ ^?;6/_!/=_\
MQNMNB@#$_P"$JT__ )]M8_\ !/=__&Z/^$JT_P#Y]M8_\$]W_P#&ZVZ* ,3_
M (2K3_\ GVUC_P $]W_\;H_X2K3_ /GVUC_P3W?_ ,;K;HH Q/\ A*M/_P"?
M;6/_  3W?_QNC_A*M/\ ^?;6/_!/=_\ QNMNB@#$_P"$JT__ )]M8_\ !/=_
M_&Z/^$JT_P#Y]M8_\$]W_P#&ZVZ* ,3_ (2K3_\ GVUC_P $]W_\;JC_ &O;
M:EXOTA8(KU"D%R3]ILIH ?\ 5]#(JY_"NIK%U#_D;-%_ZXW/\HZ -JBBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH *Y_QG_R+R_\ 7_9?^E45=!7/^,_^1>7_ *_[+_TJBH AKA]2\3:]
M;3>([NV&F&PT1P&AFC<22KY2R-APV ?F('R^E=Q7(6G@ZUN?$FN:AJU@LRSW
M<<EMOD+(RK$@R4!QPP/4=J -*[\7:59%$G:Y,I@6XDCAMI)C#&>C/L4[1UZ^
MAJO/KTDGB.UBM+J)M/GTB>\5]NY2RO&%;CDC#'@=:KRP:QHWB36+VST@ZE#J
M2Q,A2>-/*=$V;7WD?+P#D9ZGBJ6F>%-0TLZ7!A94M="GLY)%8 ><[QL% /..
M&Y]J -F/Q58VVEZ7+=7#W5Q>VJSH+.TE<R+M!+B-065>1U]<=:NP>(M+N(;V
M:.Z_=V4:RW!9&78C)O#<CD%>?P(ZBN8TW2M:T"71;V/2FOF31(-.N((IXU>&
M1,'.6(4J22#@]AUJOXJT^\N_$.DP(B0MKT M-2A5\[4B82L0<#/RF1,_[8H
MZ?7]<;3_  9>:Y8JKM':&XA$R$ \9&1P?PX-:-YJ$.GV/VJY\S9P,11-(Q)Z
M *H)/Y5G^+M.N-4\'ZKIUE&'N)[9HXDR%!)' R>!69J%UXFO](\NVT>[L)(Y
M8C(%NH3)-%GYUC8,0K8QR<>QH EU3QS867AZ[U6VAN9WMIE@DMVMY(W1S@X<
M%<J,'.2,'@9YK0G\3Z;;V]K*XO"]T&,-NMG*9F"_>/E[=P ]2!U'J*Y/_A&=
M8GT/Q5&+.:.74)(9+6*ZNQ+(VQ4X9\G!)7'7 R.<5>U?3-2OM9T_7?[+U#'V
M1[::SMK]8)XB7#*VY7"L#CD;O3TH W9/%>D):V=Q'--<+>!F@2VMY)78+PQV
M*I(VDX.0,'CK59_%]LGBN#1/LMVPFMA,LRVTI&690 ?DX7#<L3@'@X-8][H,
MD.C62:?H&I17D9GDAE@U%/.MI';)WL[X8,>2,L/8U?2SUNU\2:/J5Q:"]=M-
M%G>R02(@CE+HS/AB,KPW3)]J +OBG5K_ $Q-*BTYK5)KZ^6U,ERC.B*4=LX#
M+S\@[]ZK:1XH8V^LMK4EHBZ5.(I+NVW>5)E588!R=PW!2N3S4WBS0VUUM$A:
MTBNK:#4EFN8Y0I7RQ'(,D'KRR\5@W?A'44T?5]%L(0MA'>07VFJ)MF0'#R0@
M@Y3#*<'MN'I0!T:^+]',,TDLL]N87C65+BVDB=/,;:C%64':3QNZ4NO:_;Z=
M;WL,=[%;WEO;+<EI8'D2-"^T%@O7)!&,Y[]JR+;PU%JEKJL=WI6I6<EW:?9?
M.O[_ .T.1DD;<.^ K<@\<UGKX<U^^\&:X^I6Z?V]J2QQF)95("1A54;LXY(=
M^O\ '0!U[^(+!-7.F W$ERK*LABMI'2)F&5#N 54D8/)[CUJI%XCM;6RO;J_
MOHY$BOY+6,06[[MP.!&%Y+O[J,&L[4=.U,^*X[O2=/NK21[B+[5>"Y3[/<0C
M&X/&3NW[<J"%ST^;%4V\/ZO;,M_#9B>:UUVXOEM?-4&:&167(). P#9 )'3M
M0!T"^+M&.FW=_)<O!%9NJ7*SPO&\)8@+N1@& .1SC%3Z5XBTW6+F:WM))A-$
MJR-'- \3%&SAU#@94X/(KE=1T#6-8MM?OGT_[-/J M(H;1Y4+[(9-Q9R"5R=
MQX!/ ]ZZ/^SKG_A.O[3\L?9/[-^S[]P^_P";NQCKTH K:IJ>M-XKBT;2I+")
M38F[9[J%Y,D.%P-KKCK[TNF^*2;?4(]8MS!?:=.L$\=JCS"0L 4:, %B&!Z8
MR.:AU2'5;3QK%J]EI,E_;G3C:L(YXXRKF0-SO(XP.U4)='\1166HZE&-FI:E
M>PRW%M:3*'2V0!?+1VP-^!DGCJ<>M &AJGCFPLO#EYJMM#<3O:RB&2W:"2-T
M<X.'!7*C!SDC'3GFM";Q/IL%O:RN+PO=!C#;K9RF9@IPQ\O;N 'J0!R/45R8
M\,:O/H/BN(6DT4VH/%):QW5V)9&V(HPSY.#E<=<#UQ5W5],U._UFPUXZ7J./
MLCVTUE;7ZPSQ'>&5MRN%8''(W>GI0!U]A?VNJ6,5[93"6WE&4< CO@@@\@@@
M@@\@BK-9?AZPCT[1HH([.6SR[R-#+/YSAF8L2SY.22<]3UK4H **** "BBB@
M HHHH **** "BBB@ HHHH **** ,_6?^/.W_ .O^S_\ 2F.NVKB=9_X\[?\
MZ_[/_P!*8Z[:@#BEUCQ9J6N:_!I)T80:7<K!'#<PR;YLQ(_,BOA>7Q]TU=L/
M'6F7/A[3M3GCN(IKXO&EE%$T\WF(2)%"H"3M*G)QC&.F:S;=/$NB>(?$LEEX
M=-['J-VD]M<->11Q@"&-/F&2XY4]%-94G@34M)B\/3QI=:D]E%=)>QV%X;65
MGG<2,\;%E! 8$8+#(QZ4 =C)XRT--)M]1%U))%<RF"&**WD>9Y!G<@B"[]PV
MG(QQCFB7QAH\5G:7&^ZD:\+B"WCLY6G8H</^Z"[QM/7(&/Q%<R/#U]IDFB:S
MI6A7)DM+JZEN=/GOEDG?SEVF3S&<J6RH.-W0GFGZWI&LZCK6E^(9-(OLK:S6
ML]A8ZF(9X@TBLC!PZ*V0OS+NP,C&<4 =#/XVT"WTZQOFO6:"_=H[;9!(S2.N
M<H%"[MV01M(SGC&:JQ_$;PS($(O)P#*(92UI*!;.6V!9CM_=$MQAL?ES5"S\
M,S07?A6:TTN:TAM;Z[NKN.XNA-(ADCD&YF+'<69@3@G&?QJMJ'A?5I_"GC*Q
MBM5-QJ6IM<6J^8HWH1%@YS@?<;KZ4 6Y/'=OI/BSQ#8ZM/,;:R\AXE@M'E,4
M;1[G=RBG"Y[M6YJ'BS2-/-LK337+W,/VB*.SMY+AC%Q^\Q&"0O(Y/7M7.7UI
MXCT_Q%XHN+'0!J%OJT<,<$BW4:;66'82X8CY,D],GCH<UFCP7J6B7NE3+;ZC
MJ<,.C6^G2C3=1^RR))$2=W+H&0[CWR,=.: .NO/'/A^RBL)&O'F_M"$SVBVT
M$DS3H-N=JJI)(W XZXSZ&M>_GNX].>73K5;FZ('E122>6I)(&6.#@ ')X)XZ
M9KE=)\-2V'B#P[<6VFM:6%EIMU"\<EP)6ADDDB8*6))8G#\C(]^E=9J%Q/:V
M4DUK927LRXVV\;JK/R!P6( QUY/:@#EM+\97 ^&T_B?5X83<6_V@/%:@JKM'
M*\:JNXDC.T#GUJ]X:U#5-0FD:^U?0[L!/GMM.4EK=\_=9_,;<.H^ZO-<OI_A
MO7-1^&&J^%[[26L+IS/) \TT<D<C/.\JJ=C$@#*@Y'?C-68+>YL];'BF[\/Q
M:!9Z5I4T<L8EB+7#$JP \LD;%V'&><MTH ] E,@A<PA6EVG8'. 3VR>PKCK;
M7]?TSQ=;:/KSZ9<0W=E-=B2QB>,V_EE<AMS-N4[N#QR.E=)9WMY<^'X;^33F
MBO9+83&R:0960KGRRQ &<\9KCO#%EKLVH7=QXB\/7,>H:G&T5Q?&Y@:*WB .
MV*-5<L%&?3))R?8 6S\7>(/L>A:]>1:>-&UFZBA2VCC<3VZ3'$3F0L5;DKD;
M1C/!XJYJ^M^)="UK2WN_[*FTW4-26Q6VACD$Z*^[:^\MAB ,L-HQSSWK*T_0
M_$5QH_ASPS?:4(+?1[FWDFU#[0C1SQVYR@10=^6*IG<!CGK5B%/$=QXU?5=6
M\,7,\5M*T.FB.[@\JWB/#3$%]Q=A[<#@=\@%WQ7XQO=*US3].TJWMYE^U6T>
MHRS D1)-*L:*N"/G.6;GH%Z<BNTKS?7_  #K+HS:7KMS)]IUF"_EB>&#Y,2J
M2^XC)V*HPN>B@8->BQ*R1(KR&1U4!G( +'UP.* 'T444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !6+J'_ "-NB_\ 7&Y_E'6U6+J'_(VZ+_UQ
MN?Y1T ;5%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 5S_C/_ )%Y?^O^R_\ 2J*N@KG_ !G_ ,B\O_7_
M &7_ *514 0T444 %%%% !436\#7*7#0QF=%*)*5&Y5.,@'J <#\JEHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@#/UG_ (\[?_K_ +/_ -*8Z[:N)UG_ (\[
M?_K_ +/_ -*8Z[:@ HHHH **** "BBB@ HHHH **** "D95==K*&'H1FEHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ K%U#_ )&W1?\ KC<_RCK:K%U#_D;=%_ZXW/\ *.@#:HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MN?\ &?\ R+R_]?\ 9?\ I5%7052U;3(=8TY[*>26-&>.0/$0&5D=74C((ZJ.
MU &-14G_  B8_P"@YJW_ 'W%_P#&Z/\ A$Q_T'-6_P"^XO\ XW0!'14G_")C
M_H.:M_WW%_\ &Z/^$3'_ $'-6_[[B_\ C= $=%2?\(F/^@YJW_?<7_QNC_A$
MQ_T'-6_[[B_^-T 1T5)_PB8_Z#FK?]]Q?_&Z/^$3'_0<U;_ON+_XW0!'14G_
M  B8_P"@YJW_ 'W%_P#&Z/\ A$Q_T'-6_P"^XO\ XW0!'14G_")C_H.:M_WW
M%_\ &Z/^$3'_ $'-6_[[B_\ C= $=%2?\(F/^@YJW_?<7_QNC_A$Q_T'-6_[
M[B_^-T 1T5)_PB8_Z#FK?]]Q?_&Z/^$3'_0<U;_ON+_XW0!'14G_  B8_P"@
MYJW_ 'W%_P#&Z/\ A$Q_T'-6_P"^XO\ XW0!'14G_")C_H.:M_WW%_\ &Z/^
M$3'_ $'-6_[[B_\ C= $=%2?\(F/^@YJW_?<7_QNC_A$Q_T'-6_[[B_^-T 1
MT5)_PB8_Z#FK?]]Q?_&Z/^$3'_0<U;_ON+_XW0!'14G_  B8_P"@YJW_ 'W%
M_P#&Z/\ A$Q_T'-6_P"^XO\ XW0!'14G_")C_H.:M_WW%_\ &Z/^$3'_ $'-
M6_[[B_\ C= $=%2?\(F/^@YJW_?<7_QNC_A$Q_T'-6_[[B_^-T 1T5)_PB8_
MZ#FK?]]Q?_&Z/^$3'_0<U;_ON+_XW0!'14G_  B8_P"@YJW_ 'W%_P#&Z/\
MA$Q_T'-6_P"^XO\ XW0!'14G_")C_H.:M_WW%_\ &Z/^$3'_ $'-6_[[B_\
MC= $=%2?\(F/^@YJW_?<7_QNC_A$Q_T'-6_[[B_^-T 1T5)_PB8_Z#FK?]]Q
M?_&Z/^$3'_0<U;_ON+_XW0!E:T<6=M_U_P!G_P"E,==O7,S>#(KA%676=595
M=) "\7#*P93_ *OL0#^%7/[!N/\ H8=7_P"^H?\ XW0!M45B_P!@W'_0PZO_
M -]0_P#QNC^P;C_H8=7_ .^H?_C= &U16+_8-Q_T,.K_ /?4/_QNC^P;C_H8
M=7_[ZA_^-T ;5%8O]@W'_0PZO_WU#_\ &Z/[!N/^AAU?_OJ'_P"-T ;5%8O]
M@W'_ $,.K_\ ?4/_ ,;H_L&X_P"AAU?_ +ZA_P#C= &U16+_ &#<?]##J_\
MWU#_ /&Z/[!N/^AAU?\ [ZA_^-T ;5%8O]@W'_0PZO\ ]]0__&Z/[!N/^AAU
M?_OJ'_XW0!M45B_V#<?]##J__?4/_P ;H_L&X_Z&'5_^^H?_ (W0!M45B_V#
M<?\ 0PZO_P!]0_\ QNC^P;C_ *&'5_\ OJ'_ .-T ;5%8O\ 8-Q_T,.K_P#?
M4/\ \;H_L&X_Z&'5_P#OJ'_XW0!M45B_V#<?]##J_P#WU#_\;H_L&X_Z&'5_
M^^H?_C= &U16+_8-Q_T,.K_]]0__ !NC^P;C_H8=7_[ZA_\ C= &U16+_8-Q
M_P!##J__ 'U#_P#&Z/[!N/\ H8=7_P"^H?\ XW0!M45B_P!@W'_0PZO_ -]0
M_P#QNC^P;C_H8=7_ .^H?_C= &U16+_8-Q_T,.K_ /?4/_QNC^P;C_H8=7_[
MZA_^-T ;5%8O]@W'_0PZO_WU#_\ &Z/[!N/^AAU?_OJ'_P"-T ;5%8O]@W'_
M $,.K_\ ?4/_ ,;H_L&X_P"AAU?_ +ZA_P#C= &U16+_ &#<?]##J_\ WU#_
M /&Z/[!N/^AAU?\ [ZA_^-T ;5%8O]@W'_0PZO\ ]]0__&Z/[!N/^AAU?_OJ
M'_XW0!M45B_V#<?]##J__?4/_P ;H_L&X_Z&'5_^^H?_ (W0!M45B_V#<?\
M0PZO_P!]0_\ QNC^P;C_ *&'5_\ OJ'_ .-T ;5%8O\ 8-Q_T,.K_P#?4/\
M\;H_L&X_Z&'5_P#OJ'_XW0!M45B_V#<?]##J_P#WU#_\;H_L&X_Z&'5_^^H?
M_C= &U16+_8-Q_T,.K_]]0__ !NC^P;C_H8=7_[ZA_\ C= &U16+_8-Q_P!#
M#J__ 'U#_P#&Z/[!N/\ H8=7_P"^H?\ XW0!M45B_P!@W'_0PZO_ -]0_P#Q
MNC^P;C_H8=7_ .^H?_C= &U16+_8-Q_T,.K_ /?4/_QNC^P;C_H8=7_[ZA_^
M-T ;5%8O]@W'_0PZO_WU#_\ &Z/[!N/^AAU?_OJ'_P"-T ;5%8O]@W'_ $,.
MK_\ ?4/_ ,;H_L&X_P"AAU?_ +ZA_P#C= &U16+_ &#<?]##J_\ WU#_ /&Z
M/[!N/^AAU?\ [ZA_^-T ;58NH?\ (VZ+_P!<;G^4=']@W'_0PZO_ -]0_P#Q
MNGVN@B#4H;Z;4K^[EA1TC6X9-JAL9^ZH]!0!KT444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !5+5YI+?1+^:)BLD=
MO(Z,.Q"D@U=JMJ%L;W3;JU#!#/"\88C.-P(S^M 'F'@C7[N_U?PW#8:]J.IO
M/8>?K4%XN4@S&"K(Q4$$R<8!((SZ9KHK?XC6]Q<VL@L0-*NKP64-U]J0R%RY
M16,74(6& <YY!P!5JW\(2VD?A.2"[1;O0X%M99-AQ<0^4$=<9XR55AZ$52T/
MP/<:#<PV]NFARZ?#<&6.:;3R;I4+%MN\-C(S@/Z <4 7X?&T,VDV=R+&07EQ
MJ9TLV>\;HY0[*^3CH%5GZ=*SH/&":?9A((;F[N;O6KNQA%]=JJ!XW?/[PCY5
M^0A5P3T'/6KUOX+,'CZ;Q!]L!LFW3QV6S[ERZ+&\N?=$QCU8U$WA+4(-&N]/
MA?2;N*[U"ZNYH=0M6DC999"ZCAARN??/M0!9N-;2U\2V/]H"ZM&_LFXNYHA.
M&AC"-'NW #YF&[A@>F>.:AL?&UQ-/I,E_H4]CI^KN([*Y:=7;<RED$B#[FX
MXY//!Q45EX!\F/3K>ZU!KF"VT:XTN8E2&D$K(20<G  0@#GMZ46/A+66;1;7
M6-5M+C3]%D66W$%LR2SNB%(S(2Q P#G ')].E #(/B#+*L-V^@7$>E-J)TY[
MPSI\LGG&(,$ZE-V 3QC/0XS5[XA:I<:-X3:^MYY(&2\M0SQ@EMAG0,  "3E2
M1@>M0#P7,/"::-]M3>NJ_;_-V'&/M?G[<9ZX^7-:_BC1'\0:,+%)UA87-O/O
M9<C$<JR$?CMQ^- '/-XQ@U7QUX<L=+N+Q8)%NC<QS6DL"OB,%?\ 6*,X.>E,
MT[QE]FT?18;2VN+VZU*>[2'[?>JI_=2L&!DV\GIM4#I],UTFHZ(]]XET35EG
M5%TX3[HRN2_F(%&#VQBL!_!>H)X2@T".32+N#?<-,M_:-(I,DC.K+AA@KN(]
M_44 33^(M?3X@V.D1Z4ILIM.-Q(C7"!D/F1AFS@_=W$8!YZTRX\?M#;7&JIH
MLTGA^VN&MY=0$ZAOE?8TBQ]2@;(SG/!.*GA\*:CIVI:!>6.IQ2OI]A_9URUY
M&SM/&3&2X(88?,??(YJA)X%U1M+NO#BZK:CPY<W+RLAMV^TK&\GF-$&W;<$D
MC<1D ]* -.7Q9?2>(M3TC3M FNSINSSYS<+&GSQ!U"Y&23G&.W7N!4MCXRM=
M27PY]DMWD;6HGF"[@# B)ERWT8JF/4U=TS17T_7]<U)IE==2DA=4"X*;(E3D
M]\XS7,^!] :S\5>)=0(E%G%=/::='(FWRT9O-FVC^Z96P#_L4 =]1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5C>*;JZ
ML]":2SN&MYFN;:(2HJL5#SHC8# C.&/4&MFL#QG_ ,B\O_7]9?\ I5%0!G>5
MJW_0R:E_WYMO_C-'E:M_T,FI?]^;;_XS5JLBY\4Z!97[6%UK-A!=(0&BEG56
M!(R 03Z$4 7?*U;_ *&34O\ OS;?_&:/*U;_ *&34O\ OS;?_&:L@@@$$$'H
M12,Z*5#,H+'"@GJ>O% %?RM6_P"ADU+_ +\VW_QFCRM6_P"ADU+_ +\VW_QF
MK517-Q#9VTMS<RI%!$I>21SA54<DD^E $7E:M_T,FI?]^;;_ .,T>5JW_0R:
ME_WYMO\ XS4EK=6][:QW5K/'-!(NY)(V#*P]014=AJ5EJEM]HL+N&ZAW%/,A
M<,N1U&10 >5JW_0R:E_WYMO_ (S1Y6K?]#)J7_?FV_\ C-9I\7Z%':+=7.H0
MVD#S2PQ/<.$$IC;:Q7)Y&>]:EE?6FHVRW-C=0W,#?=DAD#J?Q% #?*U;_H9-
M2_[\VW_QFCRM6_Z&34O^_-M_\9JM%K^G2ZK-IPG"W$4HAP^ 'DV;RJ^I"D$C
MWJ['>6TMW-:QSQM<0!3+&&RR!L[<CMG!H C\K5O^ADU+_OS;?_&:/*U;_H9-
M2_[\VW_QFK5% %7RM6_Z&34O^_-M_P#&:/*U;_H9-2_[\VW_ ,9JU10!D:?-
MK5T;OS/$>H#R;AHEVPVW08Z_NNO-7?*U;_H9-2_[\VW_ ,9JIHO^LU3VOG_]
M!6K\MY;0W4%M+/&D]QN\J-FPS[1EL#O@4 1^5JW_ $,FI?\ ?FV_^,T>5JW_
M $,FI?\ ?FV_^,U(UW;K>)9F9!<NAD6+=\Q4$ G'IDC\ZFH J^5JW_0R:E_W
MYMO_ (S1Y6K?]#)J7_?FV_\ C-6J* *OE:M_T,FI?]^;;_XS45S_ &Q#:S2K
MXDU'<B,PS#;=0/\ KC5^H+S_ (\;C_KDW\J *EBVLW.GVT[^)-0#RQ*[ 0VV
M,D _\\:L>5JW_0R:E_WYMO\ XS4>B$G0=.)Z_98O_014M_J%GI=JUU?W45M;
MJ0#)*X502<#D^] ">5JW_0R:E_WYMO\ XS1Y6K?]#)J7_?FV_P#C-6J:[I&A
M=V55'4L< 4 5_*U;_H9-2_[\VW_QFCRM6_Z&34O^_-M_\9I9-0M8M1@T]Y<7
M5Q&\D:;3\RH5#'/3C<OYU9H J^5JW_0R:E_WYMO_ (S1Y6K?]#)J7_?FV_\
MC-6J* *OE:M_T,FI?]^;;_XS1Y6K?]#)J7_?FV_^,U:HH J^5JW_ $,FI?\
M?FV_^,T>5JW_ $,FI?\ ?FV_^,U:HH J^5JW_0R:E_WYMO\ XS1Y6K?]#)J7
M_?FV_P#C-6J* *OE:M_T,FI?]^;;_P",T>5JW_0R:E_WYMO_ (S5JB@"KY6K
M?]#)J7_?FV_^,T>5JW_0R:E_WYMO_C-6J* *OE:M_P!#)J7_ 'YMO_C-'E:M
M_P!#)J7_ 'YMO_C-6J* *OE:M_T,FI?]^;;_ .,T>5JW_0R:E_WYMO\ XS5J
MB@"KY6K?]#)J7_?FV_\ C-'E:M_T,FI?]^;;_P",U:HH J^5JW_0R:E_WYMO
M_C-'E:M_T,FI?]^;;_XS5JB@"KY6K?\ 0R:E_P!^;;_XS1Y6K?\ 0R:E_P!^
M;;_XS5JB@"KY6K?]#)J7_?FV_P#C-'E:M_T,FI?]^;;_ .,U:HH J^5JW_0R
M:E_WYMO_ (S1Y6K?]#)J7_?FV_\ C-6J* *OE:M_T,FI?]^;;_XS5'69]:T_
M0]0O8?$>H&6WMI)4#0VQ!*J2,_NNG%;%97B?_D4]9_Z\9_\ T6U %ORM6_Z&
M34O^_-M_\9H\K5O^ADU+_OS;?_&:M#H*K'4;(:D-.-U"+UH_-%N7&\IG&[;U
MQF@!/*U;_H9-2_[\VW_QFCRM6_Z&34O^_-M_\9J2&Z@N))HX9DD>!_+E56R4
M; .#Z'!!_&I'=(T+NRJHZLQP!0!7\K5O^ADU+_OS;?\ QFCRM6_Z&34O^_-M
M_P#&:M44 5?*U;_H9-2_[\VW_P 9H\K5O^ADU+_OS;?_ !FK5% %7RM6_P"A
MDU+_ +\VW_QFCRM6_P"ADU+_ +\VW_QFK59]EK=CJ%_=6=K)))+;,4E80N(P
MP."H<C:2,\@'(H F\K5O^ADU+_OS;?\ QFCRM6_Z&34O^_-M_P#&:K:EXBT;
M1IHXM2U2TM))!E4FE"DCUP>WO5B#5+*ZOI+."=9)XX8YV"@D;'SM8'H<[3T-
M "^5JW_0R:E_WYMO_C-'E:M_T,FI?]^;;_XS5JB@"KY6K?\ 0R:E_P!^;;_X
MS1Y6K?\ 0R:E_P!^;;_XS5JB@"KY6K?]#)J7_?FV_P#C-'E:M_T,FI?]^;;_
M .,U:HH J^5JW_0R:E_WYMO_ (S1Y6K?]#)J7_?FV_\ C-6J* *OE:M_T,FI
M?]^;;_XS1Y6K?]#)J7_?FV_^,U:HH J^5JW_ $,FI?\ ?FV_^,T>5JW_ $,F
MI?\ ?FV_^,U:HH J^5JW_0R:E_WYMO\ XS1Y6K?]#)J7_?FV_P#C-6J* *OE
M:M_T,FI?]^;;_P",T>5JW_0R:E_WYMO_ (S5JB@"KY6K?]#)J7_?FV_^,T>5
MJW_0R:E_WYMO_C-6J* *OE:M_P!#)J7_ 'YMO_C-'E:M_P!#)J7_ 'YMO_C-
M6J* *OE:M_T,FI?]^;;_ .,T>5JW_0R:E_WYMO\ XS5JB@"KY6K?]#)J7_?F
MV_\ C-'E:M_T,FI?]^;;_P",U:HH J^5JW_0R:E_WYMO_C-'E:M_T,FI?]^;
M;_XS5JB@"KY6K?\ 0R:E_P!^;;_XS1Y6K?\ 0R:E_P!^;;_XS5JB@"KY6K?]
M#)J7_?FV_P#C-'E:M_T,FI?]^;;_ .,U:HH J^5JW_0R:E_WYMO_ (S2Z=<Z
MG!XGL;6?6+J[MYX9F:.:.$#*[,$%(U/<]ZLU6@_Y&_2O^N%Q_P"R4 =?1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %<_P",_P#D7E_Z_P"R_P#2J*N@KG_&?_(O+_U_V7_I5%0!#7):
M'%;3:UXR2[2)[<WJ>8LH!4K]GCSG/&*ZVL2[\(:!?WTU[=Z9#-/,0TI<DJY
M &5S@\ =NU ''Z%>.?"FB:?%<ZN9)?M+VL&GF,226Z2$(S/)P%"E<<C.1UJ%
M6OO$%AX*NKS4KR&X?4+B!GC,:ME%G4-]TC?A,''')KO]0T#2]4%N+NS1_LX(
MA*DH4!&" 5(X( R.G%1R>&-%ETJ'3&T^(64$AEBB0E1&Y).5(((Y9NGK0!R>
MHW_B#4-<URTTX:H6T[RXK7[*]NJ;S&'W2B0@MDMC &,#CFMSQ>T[_#75WNHQ
M'<-IDAE13D*^SD _7-7[WPOHVH7 N+FR5I@@C+H[(64=%;:1N'L<U?N;&UO-
M/EL+B%7M98S$\1X!0C&./:@#SH7<VCVM_P"#K9S'<W\J'32/X8;C)D(]HRLI
M_P"^:LZ5<CP[X-\0)IR!94U6>TLHQ_ST9ECC'YD?@*[A]*L9-0MK]K6,W=M&
MT<,I'S(K=0/RJC/X;MI;^RGB(B@M[N2^D@"Y\Z=E(#$YXQDG&.N.F* ,0Z9%
MH_B7P7IL/,=M:W<>3_$0D>2?<G)_&DMKJST;QGXHNH-L>G6]A#<7HCX43CS"
M>.FXH%S^%=)JN@Z9K;0-J-HL[0;O*)9E*[L9P01UP*J7GA6PET5=(LHXK*R:
M=)9XXHO]<JL&93S_ !8 ).>* ,+^P+A_AX9Y2(=9WG5Q(1_J[G)D /L!\A]J
MU_!-NQT!-6G(:\U<B_G8=MX!1![*FU?P]ZZ"6))HGBD4,CJ593W!ZBFVMM#9
M6D-K;1B.""-8XT'15 P!^0H EHHHH **** ,K1/]9JG_ %_/_P"@K6;XXB>+
M1X-9@4M/H]PEZ O5HQQ*OXQEOR%:6B?ZS5/^OY__ $%:TI8DGA>*5 \;J593
MT(/!% ' 7FKRI;>*_%]EME-O$MC8.1D!4Y=_0CS'/_?NI8Y?$EA#J,S+JBV2
MZ9-(9=0EMW99U&59/*8\$;L@\# Q786FCZ=8Z2NE6UG$E@$9/L^,J5.<@@]<
MY/YU4M/"VC6*3);V059HC X:1V'EGJHR3M'L,4 1>%H;J/1+:\O]4GO)[R*.
M5O-VJB,5SA  ,#GN3TK=JE-I%A<6UI;2VR/#:21R0(<XC9/N$?2KM !4%Y_Q
MXW'_ %S;^53U!>?\>-Q_US;^5 %?1/\ D :=_P!>L7_H(KD_&D]MJ>O6.AW5
MI>75E%!)=74=K;M*<LK1Q A1QUD;ZJ*ZS1/^0!IW_7K%_P"@BIXK&V@O;F\B
MA5;BY"B:3NX487\LG\Z .%TKQ#>S>'?"RM+)%=)JBZ;?*Z[68I'(,,#R"=J-
M^-5_&%S<ZAI7C>V:^E6"R:W\I(RN #&I93P>"3GZBNVN?#FD7D5U'/8QNMW*
ML\PR1ND4 !P0>&P!R,4EOX9T6ULKNSATZ%;>[7;<1X)$HQCYL]3[]>] '-ZK
MI5PWC'P[8IJ]ZA%E>%[KY#,Z[H3C.W ZCG'0?C5:WUC5;FSTS2'U*6.2?5[J
MPEOPJB4QP^80!QM#L% SCU[UV5IH>G6+6K6]L%:U1XX6+LQ17(+#))SD@=?2
MF3^'=)N;&2RFL8WMY)VN64Y_UI)8N#G(.2>1ZT <9J>JZQI5GXETZWU265["
M6Q-M=S*K.GG2 ,C8 #8Q]<-7=Z;926%F();ZYO7R29K@KN.?]T 8_"JT/AS2
M(--DT^.QC%M)()9%))+N""&9B<DY4<D]JU* "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "LKQ/_R*>L_]>,__ *+:
MM6LKQ/\ \BGK/_7C/_Z+:@#5'05YWXCTVYN_'=W?:<,ZIINFVUS:C^^1),&C
M/LZDK^(]*]$'0576RMEOWOEB NI(EA:3N44D@?FQ_.@#S_2-?L[K3O$6IP7=
MW!'>ZI L)M44S,[PP@1J&! 8G*G/3GIBJ&L7&H7?A+QAI]W<:C$EAY+Q+=/$
MTVUT!*.R9!7/(YSTYKT$^&-%-G=VG]G0B"[G^T3(N1NEX._CH<@<C%+;^&M&
MMK2[M8K"(0WB[;E6);S1@CYB3DGD\]: ,UI;O3?%6@Z7]ON)X)K:[:1IRI:1
ME,97) '0,<8[5A2ZOJUY8P1VVJ20O/XFGL?/158B >;A1D8X"C!]0.M=9-X5
MT6>PMK*6Q#P6K%H<R/N0G.<-G=SGGFI8/#VDVL$$%O81116]Q]IB1!@))@C<
M!]"?;F@#E+^XU<^(Y="MIM9GALK**026LMNLLCNSC>YD*Y V@  8SG/:M\ZC
MJVG> Y=2U&W7^UK:P>:6(8(,BH3_  G')';UJYJ7A_2]7GCGO;4/-&I595=D
M<*>J[E()'MTJ[#:P6]HEK%$JVZ((UCQP%QC% '%QR:GIL_AN<ZY=7W]KOY5S
M%($V_-$S^9& HV[2ON,'FK/P]LGMK#4W:]NIP=3NTVS,I *S.-W ')ZG^E;6
MG>%]$TFZ%S8Z?'%,JE4;);RP>H0$D*#Z#%7[2RMK".2.UB6)))7F8#N[$LQ_
M$DF@#F?""Q3:OXJDN%5K_P#M-XY-XRPA"+Y0_P!W;R/QJA)IDEYXWU6+3]3F
MTZWBTFUV?8E09^:;9@D$!1Z#KQ72ZEX6T35[L7=]I\<MQMV&0$J67T;:1N'L
M<U<M]*L;29IK>UCB=H4@.P8'EIG:H'0 ;C^= '&Q:W<ZUHN@@W.K-J5UIXNI
M8-+\E"?N@R,TF !D\ 'OT.*AT_5=8UVW\'Q-JDUJ=0M+E[N2!$#2%-F",@A3
MR>0.YQVQU<WA30YX+2"33X_+M(_)A"LR[8^/D)!Y7@<'(JU;:)IMH;,V]I''
M]B1TM]N?W:OC<!]<#\J .(?7=2BTFWLI;^\D9=<GL))[>(/<R01AV! "\M\J
M@D#. <<TV2_\0:=HEJCS:I))J>KFWA,OE+<);89E #A55V"X^;U]>*W]?\(Q
MZBEM]C@LFCBO'NYK2[0M#<.ZD$MCH03D<$>U+H_@^WM],OK/4H;62"[N!.+.
M!2L-O@  1Y.0<KNR,<G@"@"?PN-90W\6IQ7:VRR*;-KR2)YBI7Y@QC)! ;H3
MS@^U=#5+3=)LM)B>.RA,8=MSEG9V8].2Q)-7: "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "JT'_(WZ5_UPN/_9*L
MU6@_Y&_2O^N%Q_[)0!U]%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 5S_C/_ )%Y?^O^R_\ 2J*N@KG_
M !G_ ,B\O_7_ &7_ *514 0T444 %%%% !1110 4444 %%%% !1110 4444
M%%%% &5HG^LU3_K^?_T%:U:RM$_UFJ?]?S_^@K6K0 4444 %%%% !4%Y_P >
M-Q_US;^53U!>?\>-Q_US;^5 %?1/^0!IW_7K%_Z"*OU0T3_D :=_UZQ?^@BK
M] !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !65XG_ .13UG_KQG_]%M6K65XG_P"12UG_ *\9
M_P#T6U &J.@HH'044 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 56@_P"1OTK_ *X7'_LE6:K0?\C?I7_7"X_]DH Z^BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
MYWQN^SPT7".^V]LCM12S'_2HN !U-=%6+XI_Y!$'_81L/_2N*@#$_M-_^@5J
MW_@#)_A1_:;_ /0*U;_P!D_PKM:* .*_M-_^@5JW_@#)_A1_:;_] K5O_ &3
M_"NUHH XK^TW_P"@5JW_ ( R?X4?VF__ $"M6_\  &3_  KM:* .*_M-_P#H
M%:M_X R?X4?VF_\ T"M6_P# &3_"NUHH XK^TW_Z!6K?^ ,G^%']IO\ ] K5
MO_ &3_"NUHH XK^TW_Z!6K?^ ,G^%']IO_T"M6_\ 9/\*[6B@#BO[3?_ *!6
MK?\ @#)_A1_:;_\ 0*U;_P  9/\ "NUHH XK^TW_ .@5JW_@#)_A1_:;_P#0
M*U;_ , 9/\*[6B@#S71=197U/_B6:HV;YS\MFYQPO!XX-:O]IO\ ] K5O_ &
M3_"MOP]_K-9_["4G_H*5M4 <5_:;_P#0*U;_ , 9/\*/[3?_ *!6K?\ @#)_
MA7:T4 <5_:;_ /0*U;_P!D_PH_M-_P#H%:M_X R?X5VM% '%?VF__0*U;_P!
MD_PJ"]U)S87 _LO51F)N392 =#[5WE5M1_Y!EW_UQ?\ ]!- '"Z-J3+H>GK_
M &9JC8MHQE;*0@_*.AQ5[^TW_P"@5JW_ ( R?X5TGA__ )%O2_\ KSB_] %:
M- '%?VF__0*U;_P!D_PH_M-_^@5JW_@#)_A7:T4 <5_:;_\ 0*U;_P  9/\
M"C^TW_Z!6K?^ ,G^%=K10!Q7]IO_ - K5O\ P!D_PH_M-_\ H%:M_P" ,G^%
M=K10!Q7]IO\ ] K5O_ &3_"C^TW_ .@5JW_@#)_A7:T4 <5_:;_] K5O_ &3
M_"C^TW_Z!6K?^ ,G^%=K10!Q7]IO_P! K5O_  !D_P */[3?_H%:M_X R?X5
MVM% '%?VF_\ T"M6_P# &3_"C^TW_P"@5JW_ ( R?X5VM% '%?VF_P#T"M6_
M\ 9/\*/[3?\ Z!6K?^ ,G^%=K10!Q7]IO_T"M6_\ 9/\*/[3?_H%:M_X R?X
M5VM% '%?VF__ $"M6_\  &3_  H_M-_^@5JW_@#)_A7:T4 <5_:;_P#0*U;_
M , 9/\*/[3?_ *!6K?\ @#)_A7:T4 <5_:;_ /0*U;_P!D_PH_M-_P#H%:M_
MX R?X5VM% '%?VF__0*U;_P!D_PH_M-_^@5JW_@#)_A7:T4 <5_:;_\ 0*U;
M_P  9/\ "C^TW_Z!6K?^ ,G^%=K10!Q7]IO_ - K5O\ P!D_PH_M-_\ H%:M
M_P" ,G^%=K10!Q7]IO\ ] K5O_ &3_"LOQ+J+/X5UA?[,U1=UE,-SV;@#Y#R
M3C@5Z36+XP_Y$G7O^P=<?^BVH PQJ;X'_$JU;_P!D_PI?[3?_H%:M_X R?X5
MV@Z"EH XK^TW_P"@5JW_ ( R?X4?VF__ $"M6_\  &3_  KM:* .*_M-_P#H
M%:M_X R?X4?VF_\ T"M6_P# &3_"NUHH XK^TW_Z!6K?^ ,G^%']IO\ ] K5
MO_ &3_"NUHH XK^TW_Z!6K?^ ,G^%']IO_T"M6_\ 9/\*[6B@#BO[3?_ *!6
MK?\ @#)_A1_:;_\ 0*U;_P  9/\ "NUHH XK^TW_ .@5JW_@#)_A1_:;_P#0
M*U;_ , 9/\*[6B@#BO[3?_H%:M_X R?X4?VF_P#T"M6_\ 9/\*[6B@#BO[3?
M_H%:M_X R?X4?VF__0*U;_P!D_PKM:* .*_M-_\ H%:M_P" ,G^%']IO_P!
MK5O_  !D_P *[6B@#BO[3?\ Z!6K?^ ,G^%']IO_ - K5O\ P!D_PKM:* .*
M_M-_^@5JW_@#)_A1_:;_ /0*U;_P!D_PKM:* .*_M-_^@5JW_@#)_A1_:;_]
M K5O_ &3_"NUHH XK^TW_P"@5JW_ ( R?X4?VF__ $"M6_\  &3_  KM:* .
M*_M-_P#H%:M_X R?X4?VF_\ T"M6_P# &3_"NUHH XK^TW_Z!6K?^ ,G^%']
MIO\ ] K5O_ &3_"NUHH XK^TW_Z!6K?^ ,G^%']IO_T"M6_\ 9/\*[6B@#BO
M[3?_ *!6K?\ @#)_A1_:;_\ 0*U;_P  9/\ "NUHH XK^TW_ .@5JW_@#)_A
M1_:;_P#0*U;_ , 9/\*[6B@#BO[3?_H%:M_X R?X4?VF_P#T"M6_\ 9/\*[6
MB@#BO[3?_H%:M_X R?X4?VF__0*U;_P!D_PKM:* .*_M-_\ H%:M_P" ,G^%
M,T^[-QXSTL&SO(,6]QS<6[1@_P"KZ9'-=Q6+J'_(VZ+_ -<;G^4= &U1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %8OBG_D$0?]A&P_]*XJVJQ?%/\ R"(/^PC8?^E<5 &U7G>H>(O$
M<VG^(O$&FW=K%8Z)<31)8O;[C<K /WI9\Y4DA@,#C SG->B5YY>>&O$<=EXB
M\/V$%F^G:U<S2K?/.5:V2?\ UJF/;\Q&6VX.#D9QB@!-2\<I=:_/81>)-.T&
MUMH87,MTJ/+/)*N\ !F "*I7)]6ZC%;?B^]NTT"STVRNRNHZM/%9Q7$!VE0W
MS22K@\8C5V&#P<<UE7?AO6=*U'6QHVGV-[::Q:Q0YN9_+-NZ1>5\PVG>A4*<
M#G(/KFG^'-)=/$UG9.[S6OA?2XK&*5A@27$B+O8?2-4'MO(H NZEJVN6/CO0
M=/S:)H][)-%M&YYI-D#/N9CPOS#&!G.,D\XJ'QU?>(M"TJ_UZQU6RBM;)%>.
MRDM-YG.0"K/NR"2<#:/3K1XCM/$=UXLT:_L-(M9[72I99%:2^\MIO,A*8QL.
MW!;WSBH=?T_Q-J'BJ"X.D6E_H]ELEM;9K_R0T^.9)!L;=M/"CH.O7& #2\87
M]W_85GI]E)):ZEK%Q':1-&V'A#?-*P(Y!6-7.?4"L_QGJ'B3PY:2:S:ZG:/:
MQ3P10Z:UJ2TX=U0J9-V=Y+$C [=#R:M68GUKQ^]U<P>5%HMDL*IG<HN9P&DP
MV!NVH$7/^V:I:K8>*+GQE_:$NC6>H:=8D'386U#RE1\?-*Z^6VY^2!V49QR<
MT 3WNI>(=7U[7+/1+ZVL8M'2- );;S3<S-'YF&.1M0 J..<D\\51U;QAKDW@
M+2O$NE1V5O!<1VTEQYNYWS)(B%$7@8&X_,2>G3N+ESIGB72]=UN\T:SL[F/6
M4B?,UR8_LLZQ^621M.]<!3Q@Y!]:JZWX7UBW\ :?X3T:S@NT@BMU>YFN?*PT
M4B.?EVG.[:>_&: .IURVUFY2,:7J]OIL:*S2RR6OG,3QMQE@ .N>O;I5;P1K
M5WXB\&Z;JM]'''<W",7\L$*V&*AE![, &'UK)\5VOBG7--L+.#3;9;28L=4M
MEU#8[J.D2R;/NM_$0 <<<9S73Z,;K^S(DN].@T]T&Q;:";S$11PN#M7MVQQ0
M!?HHHH **** ,7P]_K-9_P"PE)_Z"E5_$NL7>B7^A7"E/[-N+T6EX"O*^8"(
MV![ /M!_WJL>'O\ 6:S_ -A*3_T%*D\4:,/$/AC4=*W;'N(2(G_N2#E&_!@I
M_"@"B=8U&Y\8:CIVGI#);:=IZO(DAV^9=2$F-"V#M 5<G /WQ4?@O5=6U+^W
M8=9DMGN+'4VME-M&50+Y4;X&22<%SR>M+X4TK5=(T&\NM2C@FUV^FDN[A(Y,
M(SXVH@;' "J@SCCFJ?A6S\1Z=?:])>Z5:1)J%V][&R7N_:QCC0(1L']S.[WZ
M4 6M9U+5;OQ7;>'=)NXK%OL37MQ=/")6"[PB(JD@<G<23V'O5GP?K-WK&D3_
M -H"+[=97DUE<-$I5':-RNX DX!&#CWK,N=/\1PZYIWB6#3[.XOFTXV5_8BZ
M*!3N#JR.5.<-N!R.AK5\):+<Z+I,RWSQ-?7EW->W/E$E%>1RVU2>2 ,#/?%
M&]5;4?\ D&7?_7%__035FJVH_P#(,N_^N+_^@F@"OX?_ .1;TO\ Z\XO_0!6
M7=Z_/9^-IM/E(_L^'1FOW 7+;EDVGG_=[5J>'_\ D6]+_P"O.+_T 5C:MX?O
MKSQ3>ZA%Y?D3:')8+EL'S6<L./3'>@!VE^/-+U:ZM((+;4(Q>PM+9RS6Q1+D
M*NY@A/4@<\X!QD$BK=OXMTNZT[1KV%I7CU>416JA/GW;68[AVVA6SZ8K,MO#
M=_$O@8-Y7_$EC*W>'[_96B^7U^8C\*JZ%X.OM/\ &5U<W+Q'1K5YY=+C5OF1
M[@JTN1VVD.![.: -:U\;Z7=WEO$D5XMM=3FWMKYX"+>:09^56Z\[3@D ''!-
M26?BVVU$7,EGIVISV\(DV7"6_P"[G,;;65#G).00,@9P<5ROAGP-/HK:=I]W
MH5O=)83!H]1.IR8(4DHXA((#CCCIGO6IHF@ZM:>+C?QV$.D6#+*;R""]::*[
ME8C:ZQE0$/4D\$YQSUH =H/Q AOO!EIKNIV-U:O/Y:)$D);[1*_"K",DMFKP
M\<Z4FGZI=74-[9OI<:RW=M<P[941ONL!DA@<'D$]#7.V7A;Q%;^$-$T\VMF+
MWP]>1S6^;DF.\50ZG)VYC)5^,@\U)J_A77?$5GXEO;JWMK2]U'3H]/M+59]X
M559F+.^ ,DN> . />@#M-&U>/6[(W<-K=P1;]J?:H3&9%P"'4'G:0>,X^E>=
MV'C;6W:QNO[7TZ\DN=7>Q;1U@ F6(3M'O5@V?E5=Q)7&,UZH. *\ZMO M]8:
M#9W-I#:1^(;+5);N.53M\V)YW+1LX&<-&_3U ]* .AU#QOI>FW5W%)#>RP63
M*E[=PP%H;9B <.WL""< X!YQ5>TUZXA\2>*EN#<7-K8FT\B"WB\QQOCR0H49
M.20?;KP*PKKP1<QZQK.[0[?5[34[IKE7DU.2W";U 9)$ ((R"00#D'!'%7]4
M\,ZYYWB:;2ID@:_>R, 2<Q,\<0 D3>!E"P! 8=,]J )M7^($5IX9UR_M=-O1
MJ&E1AI;.YAVLFY2R,V#C8<'D'L:OQ^(&N]4T%2UU8"]6X)L[BU&Z78H.2V<H
M!G(QG.>U<U;^"-4FT[QE"UO#8_VU8QP6L;WKW)1E60'>[<]67IGKWQ6TVCZO
MJVI>';Z_M(;/['%=17,27'F$>8BJI4X&>A^E %BU\>Z1=W-JJ0WR6=W-]GM;
M][<BWFDR0 K=>2" 2 #V-1S?$+1X+FXC:#4##:W?V.ZNEMB88)-P4;F]"2.F
M<9&<9K&L_#'B.31-#\,7MM91V&E7$#O?QW!9IXX&#(%CVY5CM7.3@<XS5J[\
M):G/X/\ $VF)Y/VC4=2ENH,OQL:16&3C@X4T ="?$UJVO2Z3!:7UQ) Z1W$T
M,.Z*!G4,H8YST(/ (&1G%;5<3JN@ZM=>,+?4-.L(;!UN8FFU**]8?:+=<;HY
M(0N&)&5&<XX((Z5VU !1110 4444 %%%% !1110 4444 %%%% !1110 5B^,
M/^1)U[_L'7'_ *+:MJL7QA_R).O?]@ZX_P#1;4 ;(Z"N#U[QEJ.A_$*&SE6$
M^'UM8#=OM^>%YI)$63/]T,B@^F[-=X.@KF;KPS_:7BK5KB^BCETN_P!)BL60
MGYB0\I;CMPXP: ([;Q8MK+XFFU60"UTW4$M8!'&2[;HHBJ@#EF+R$#ZBI?\
MA.=,BAN7N[>^LY;62!9X+B':\:ROL23@D%"<\@G&#FN2M?AYKO\ PBVJV%_=
M6]U>G5H;VUD:5E%Q'"L:J)& RK,L9R1G!.:V;7P>E_H^MVMSH46F27]I]F$O
M]H/=2-]XC)8?*%8@C!/.>!0!O/XMTB/4]8T]YRL^D6RW5V"O"QE2V0>^ .?J
M*@\2Z_-8_#V_\0:>I29+ W4 G3E25R-R^O/2N*D^'OB*\L+*:ZEM1J5_-+%K
MC+(<-;2/&2%..2$A51_O&N[\8Z3<:WX+U?2;((+BZM7AB#G:N2,#)["@#'L=
M>U32_%2:1K&I6=];2Z;)?M<)!Y+VH1E!W@,1M(8X/'W36AIOC?3=2OK.V%MJ
M%LM^";*>ZMC''<X&[Y#Z[>0& )%.?P7I$?AG4](TVPM-..H6CV\LMO"JDED*
MY..N,UDVNC>(M3N?#L&L65E9VVBRB=Y8+DR&YD6-HUV+M&U?F+'//0>] #?#
M/B"\N[/PY]MU)_/O;R_C9/(5O/$;R[06XV;0HY .<8K27QYILD%S=0V6J36,
M*2NMY':$PR^6"6V-W^ZV"< XX)K,T?PCJ=D?"_G^3C3;N_FN-KY^6;S=F..3
M\ZYJWX0TW7]#TZS\.WEA8OIMFC0_;1<DM-'SLQ%MX;D;LG'!QG- &ZOB#3Y+
M[2[2)VEDU*![BW*+D>6H4EB>P^90/<UJ5YS\,])EAO=6N9IA/;:=(^C::XSQ
M;Q2,Q^IRRH3_ -,J]&H **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *Q=0_P"1MT7_ *XW/\HZ
MVJQ=0_Y&W1?^N-S_ "CH VJ*** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ K%\4_\ ((@_["-A_P"E<5;5
M8OBG_D$0?]A&P_\ 2N*@#:HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** ,7P]_K-9_P"PE)_Z"E;58OA[_6:S_P!A*3_T%*VJ "BBB@ HHHH *K:C
M_P @R[_ZXO\ ^@FK-5M1_P"09=_]<7_]!- %?P__ ,BWI?\ UYQ?^@"M&L[P
M_P#\BWI?_7G%_P"@"M&@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K%\8?\ (DZ]_P!@ZX_]
M%M6U6+XP_P"1)U[_ +!UQ_Z+:@#9'04M(.@I: "BBB@ HHHH **** "BBB@!
ML<:1)LC147).%&!D\FG444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %8NH?\C;HO_7&Y_E'
M6U6+J'_(VZ+_ -<;G^4= &U1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %8OBG_D$0?]A&P_]*XJVJP?
M&$2SZ"D+,ZJ]_8J3&Y5AFZBZ$<@^XH WJ*Q/^$7L_P#G]UC_ ,&EQ_\ %T?\
M(O9_\_NL?^#2X_\ BZ -NBL3_A%[/_G]UC_P:7'_ ,71_P (O9_\_NL?^#2X
M_P#BZ -NBL3_ (1>S_Y_=8_\&EQ_\71_PB]G_P _NL?^#2X_^+H VZ*Q/^$7
ML_\ G]UC_P &EQ_\71_PB]G_ ,_NL?\ @TN/_BZ -NBL3_A%[/\ Y_=8_P#!
MI<?_ !='_"+V?_/[K'_@TN/_ (N@#;HK$_X1>S_Y_=8_\&EQ_P#%T?\ "+V?
M_/[K'_@TN/\ XN@#;HK$_P"$7L_^?W6/_!I<?_%T?\(O9_\ /[K'_@TN/_BZ
M -NBL3_A%[/_ )_=8_\ !I<?_%T?\(O9_P#/[K'_ (-+C_XN@!?#W^LUG_L)
M2?\ H*5M5QNA>'+6235LWFJC9J$BC;J4XS\J]</R?>M?_A%[/_G]UC_P:7'_
M ,70!MT5B?\ "+V?_/[K'_@TN/\ XNC_ (1>S_Y_=8_\&EQ_\70!MT5B?\(O
M9_\ /[K'_@TN/_BZ/^$7L_\ G]UC_P &EQ_\70!MU6U'_D&7?_7%_P#T$UF_
M\(O9_P#/[K'_ (-+C_XNJ]_X9M%TZY87NKDB)CSJEP1T/^W0!I>'_P#D6]+_
M .O.+_T 5HURNA^&K23P_IKF\U8%K6(D+J<X ^0= 'XJ_P#\(O9_\_NL?^#2
MX_\ BZ -NBL3_A%[/_G]UC_P:7'_ ,71_P (O9_\_NL?^#2X_P#BZ -NBL3_
M (1>S_Y_=8_\&EQ_\71_PB]G_P _NL?^#2X_^+H VZ*Q/^$7L_\ G]UC_P &
MEQ_\71_PB]G_ ,_NL?\ @TN/_BZ -NBL3_A%[/\ Y_=8_P#!I<?_ !='_"+V
M?_/[K'_@TN/_ (N@#;HK$_X1>S_Y_=8_\&EQ_P#%T?\ "+V?_/[K'_@TN/\
MXN@#;HK$_P"$7L_^?W6/_!I<?_%T?\(O9_\ /[K'_@TN/_BZ -NBL3_A%[/_
M )_=8_\ !I<?_%T?\(O9_P#/[K'_ (-+C_XN@#;HK$_X1>S_ .?W6/\ P:7'
M_P 71_PB]G_S^ZQ_X-+C_P"+H VZ*Q/^$7L_^?W6/_!I<?\ Q='_  B]G_S^
MZQ_X-+C_ .+H VZ*Q/\ A%[/_G]UC_P:7'_Q='_"+V?_ #^ZQ_X-+C_XN@#;
MHK$_X1>S_P"?W6/_  :7'_Q='_"+V?\ S^ZQ_P"#2X_^+H VZ*Q/^$7L_P#G
M]UC_ ,&EQ_\ %T?\(O9_\_NL?^#2X_\ BZ -NBL3_A%[/_G]UC_P:7'_ ,71
M_P (O9_\_NL?^#2X_P#BZ -NBL3_ (1>S_Y_=8_\&EQ_\71_PB]G_P _NL?^
M#2X_^+H VZ*Q/^$7L_\ G]UC_P &EQ_\71_PB]G_ ,_NL?\ @TN/_BZ -NL7
MQA_R).O?]@ZX_P#1;4G_  B]G_S^ZQ_X-+C_ .+K)\5>'+6'P?K<JWFJL4L)
MV ?4IV4XC;J"^"/8T =@.@I:Q!X7L\#_ $W6/_!I<?\ Q='_  B]G_S^ZQ_X
M-+C_ .+H VZ*Q/\ A%[/_G]UC_P:7'_Q='_"+V?_ #^ZQ_X-+C_XN@#;HK$_
MX1>S_P"?W6/_  :7'_Q='_"+V?\ S^ZQ_P"#2X_^+H VZ*Q/^$7L_P#G]UC_
M ,&EQ_\ %T?\(O9_\_NL?^#2X_\ BZ -NBL3_A%[/_G]UC_P:7'_ ,71_P (
MO9_\_NL?^#2X_P#BZ -NBL3_ (1>S_Y_=8_\&EQ_\71_PB]G_P _NL?^#2X_
M^+H VZ*Q/^$7L_\ G]UC_P &EQ_\71_PB]G_ ,_NL?\ @TN/_BZ -NBL3_A%
M[/\ Y_=8_P#!I<?_ !='_"+V?_/[K'_@TN/_ (N@#;HK$_X1>S_Y_=8_\&EQ
M_P#%T?\ "+V?_/[K'_@TN/\ XN@#;HK$_P"$7L_^?W6/_!I<?_%T?\(O9_\
M/[K'_@TN/_BZ -NBL3_A%[/_ )_=8_\ !I<?_%T?\(O9_P#/[K'_ (-+C_XN
M@#;HK$_X1>S_ .?W6/\ P:7'_P 71_PB]G_S^ZQ_X-+C_P"+H VZ*Q/^$7L_
M^?W6/_!I<?\ Q='_  B]G_S^ZQ_X-+C_ .+H VZ*Q/\ A%[/_G]UC_P:7'_Q
M='_"+V?_ #^ZQ_X-+C_XN@#;HK$_X1>S_P"?W6/_  :7'_Q='_"+V?\ S^ZQ
M_P"#2X_^+H VZ*Q/^$7L_P#G]UC_ ,&EQ_\ %T?\(O9_\_NL?^#2X_\ BZ -
MNBL3_A%[/_G]UC_P:7'_ ,71_P (O9_\_NL?^#2X_P#BZ -NBL3_ (1>S_Y_
M=8_\&EQ_\71_PB]G_P _NL?^#2X_^+H VZ*Q/^$7L_\ G]UC_P &EQ_\71_P
MB]G_ ,_NL?\ @TN/_BZ -NBL3_A%[/\ Y_=8_P#!I<?_ !='_"+V?_/[K'_@
MTN/_ (N@#;HK$_X1>S_Y_=8_\&EQ_P#%T?\ "+V?_/[K'_@TN/\ XN@#;K%U
M#_D;=%_ZXW/\HZ3_ (1>S_Y_=8_\&EQ_\75'^R8=.\7Z0T4][*7@N01<W<DP
M'^KZ!V./PH ZFBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH *Q?%/_((@_P"PC8_^E45;58OBG_D$0?\
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
MJ;!GYY&"KGVR>:X*71WT2[\->&[[5)5L]1GO;J^FMY&MA/<$AUC#*<JI+N0
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
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !6+XI_Y!$'_ &$;#_TKBK:K!\8.\>@H\<32NM_8E8U(!<_:HL $\#/O
M0!O45B?VOJW_ $+5W_X$P?\ Q=']KZM_T+5W_P"!,'_Q= &W16)_:^K?]"U=
M_P#@3!_\71_:^K?]"U=_^!,'_P 70!MT5B?VOJW_ $+5W_X$P?\ Q=']KZM_
MT+5W_P"!,'_Q= &W16)_:^K?]"U=_P#@3!_\71_:^K?]"U=_^!,'_P 70!MT
M5B?VOJW_ $+5W_X$P?\ Q=']KZM_T+5W_P"!,'_Q= &W16)_:^K?]"U=_P#@
M3!_\71_:^K?]"U=_^!,'_P 70!MT5B?VOJW_ $+5W_X$P?\ Q=']KZM_T+5W
M_P"!,'_Q= &W16)_:^K?]"U=_P#@3!_\71_:^K?]"U=_^!,'_P 70 OA[_6:
MS_V$I/\ T%*VJXW0M5U1)-6V>'KI]VH2$XN(1M.U>.7K7_M?5O\ H6KO_P "
M8/\ XN@#;HK$_M?5O^A:N_\ P)@_^+H_M?5O^A:N_P#P)@_^+H VZ*Q/[7U;
M_H6KO_P)@_\ BZ/[7U;_ *%J[_\  F#_ .+H VZK:C_R#+O_ *XO_P"@FLW^
MU]6_Z%J[_P# F#_XNJ]_JVK'3KD'PW=J#$V3]I@XX/\ MT :7A__ )%O2_\
MKSB_] %:-<KH>JZJOA_357PY=NHM8@&%Q -PV#GEZO\ ]KZM_P!"U=_^!,'_
M ,70!MT5B?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?_%T ;=%8G]KZM_T+
M5W_X$P?_ !=']KZM_P!"U=_^!,'_ ,70!MT5B?VOJW_0M7?_ ($P?_%T?VOJ
MW_0M7?\ X$P?_%T ;=%8G]KZM_T+5W_X$P?_ !=']KZM_P!"U=_^!,'_ ,70
M!MT5B?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?_%T ;=%8G]KZM_T+5W_X
M$P?_ !=']KZM_P!"U=_^!,'_ ,70!MT5B?VOJW_0M7?_ ($P?_%T?VOJW_0M
M7?\ X$P?_%T ;=%8G]KZM_T+5W_X$P?_ !=']KZM_P!"U=_^!,'_ ,70!MT5
MB?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?_%T ;=%8G]KZM_T+5W_X$P?_
M !=']KZM_P!"U=_^!,'_ ,70!MT5B?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\
MX$P?_%T ;=%8G]KZM_T+5W_X$P?_ !=']KZM_P!"U=_^!,'_ ,70!MT5B?VO
MJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?_%T ;=%8G]KZM_T+5W_X$P?_ !='
M]KZM_P!"U=_^!,'_ ,70!MT5B?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?
M_%T ;=8OC#_D2=>_[!UQ_P"BVI/[7U;_ *%J[_\  F#_ .+K)\5:KJDG@_6T
MD\/74:-83AG-Q"0H\MN<!\\4 =@.@I:Q!J^K8'_%-7?_ ($P?_%T?VOJW_0M
M7?\ X$P?_%T ;=%8G]KZM_T+5W_X$P?_ !=']KZM_P!"U=_^!,'_ ,70!MT5
MB?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?_%T ;=%8G]KZM_T+5W_X$P?_
M !=']KZM_P!"U=_^!,'_ ,70!MT5B?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\
MX$P?_%T ;=%8G]KZM_T+5W_X$P?_ !=']KZM_P!"U=_^!,'_ ,70!MT5B?VO
MJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?_%T ;=%8G]KZM_T+5W_X$P?_ !='
M]KZM_P!"U=_^!,'_ ,70!MT5B?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?
M_%T ;=%8G]KZM_T+5W_X$P?_ !=']KZM_P!"U=_^!,'_ ,70!MT5B?VOJW_0
MM7?_ ($P?_%T?VOJW_0M7?\ X$P?_%T ;=%8G]KZM_T+5W_X$P?_ !=']KZM
M_P!"U=_^!,'_ ,70!MT5B?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?_%T
M;=%8G]KZM_T+5W_X$P?_ !=']KZM_P!"U=_^!,'_ ,70!MT5B?VOJW_0M7?_
M ($P?_%T?VOJW_0M7?\ X$P?_%T ;=%8G]KZM_T+5W_X$P?_ !=']KZM_P!"
MU=_^!,'_ ,70!MT5B?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?_%T ;=%8
MG]KZM_T+5W_X$P?_ !=']KZM_P!"U=_^!,'_ ,70!MT5B?VOJW_0M7?_ ($P
M?_%T?VOJW_0M7?\ X$P?_%T ;=%8G]KZM_T+5W_X$P?_ !=']KZM_P!"U=_^
M!,'_ ,70!MT5B?VOJW_0M7?_ ($P?_%T?VOJW_0M7?\ X$P?_%T ;=8NH?\
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
MC:%7J.!4-AX=UA_$DGB'5KZQ-\EBUE;1VD#+&@9@Q9RS$L<@<< #/KFNKHH
MY*Y\/:\-0TW6[34;$ZS#9&SO#-;MY-PI(;("L"I# D=>"16KX:T,Z!I)MI+C
M[3<S3R7-S/LVB261BS$+DX&3@#T K8HH *K:C_R#+O\ ZXO_ .@FK-5M1_Y!
MEW_UQ?\ ]!- %?P__P BWI?_ %YQ?^@"J%]X8CU+Q'<W]TZO:7.E-ITEN5Y(
M9RQ.?H<5?\/_ /(MZ7_UYQ?^@"M&@#@].^'L]EX6M]-GU3[5?C4K>^N+R1.9
M1"Z;5QG_ )YQJOUYJMJWPYO-2O\ 4W%SIC1WM['=BZGM"]U&%*'RE?=P@V<8
M[$C'.:]%HH Q],T5]/U[7=1:9774Y8I%0+@ILB6/!/?.W-8/A7P+/X4ETZ2S
MOH\"V%OJ47ED)<E<[)%Y^5QT)YR/H*[:B@#&O=$>[\6:3K(F54L;>YA:,KRY
ME\O!![8V'\ZS/$?A*34]?MM;LUTV6YCMC:R0:E;>=$Z%MP(P<JP.>><@FNLH
MH YJ#PS.NH^'[V22RB.F)<B2*TMS%&QE 'R+DXQC\>O%5/\ A"YMX;[9'_R,
M']L?</W<8V=>OO7844 <?K'@8:RWB,2W:HNK"U:+]WN\EX.5)!X8%@,CTR*B
M;P??W?A_6=.N(]!LY+^R>U233K$QD%@1N8EN1T^7]:[6B@##T_09++Q-=ZLT
MZND]C;V@C"X(,1D).??>/RK<HHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MM:E^WWL__$WO8MD\H9?EF;YL8^\>YKK4T?3HX]/C2TC":=C[( /]3A"GR_\
M 21^--L]"TO3]2NM0M+**&[NSF>1!C>>Y(Z9..3WH YN!-0U3XD:Q"^L7L-A
MIL=I+':0,%61W#D[B025^7IQG/L*Y[PM?^+M;BT?78H]1/VJZW7?FW4'V40%
MBK(L8.Y2HQ@XW$J<]:]-BL;6"]N+R*!%N;D(LT@'+A<[<_3)_.LV/PEH$.J?
MVE%I5NEWYAFWJ"!YAZOMZ;O?&: ."T6]UKQ%K%A/!?ZT7&J3F]96"67V5&D"
M!..>1&,=3\V?6KEWXAU"+P'KEW_:#K=PZ_):Q.6 94^V*H0?\ )&/2I+'X:3
MV]U9>;)I.;6]%VVIPV96^GPY?:[[OXLX8\Y&1@=NJN/!GARZU"6_GT:TDNIF
M#O(R<EACYL=-W YZT <K<7\.GZWXV>6XO8#-?6$$9L0OG.[PQA43=\H+$XR<
M8!)R.M<_K<VHW7@[Q[I=[<:I%%IT4,T,=W<1R3*'0DH[H2&4D9QG/->JW?A[
M2+Z.]2ZT^"5;YD:Y#+GS&0 *3[@ 8(Z8J*T\+Z'8VEW:V^EVZ07B;+E-N1,,
M$?/G[WWCR?6@# O[F]T'7_#]C!>WEW"UE?S2+/)N:9D$;("0.<;B!]:Q;.^U
M6WT+PEXE_M^[N[K5[NUCN;5V4P.LWWE1 /E*9R"#GY#G-=[9>'M)TX68M+&.
M/[&LBVY&28PY!?!)[X'Y5!9>$?#^G:E_:-II-K#= LRNJ?<+?>*CHI/<@#-
M'!7-[K4>BZUXB&O7WFZ?KTEO!:@KY/DBZ"%&&,ME6(SGC QC'.]>W.H:9XX6
M;5[C45TRZNHH-.EM)5^SJ64+Y4T>-V6?=\W/4<KBNI;0]+>QN+)K*(VUQ,;B
M:/'#R%MY8^^X U ?"^B'6/[6.FP&^W^9YI'\>,;L=-V.^,T :]%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %8NH?\
M(VZ+_P!<;G^4=;58NH?\C;HO_7&Y_E'0!M4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !6+XI_Y!$'_8
M1L/_ $KBK:K%\4_\@B#_ +"-A_Z5Q4 ;5%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110!B^'O]9K/_ &$I/_04K:K%\/?ZS6?^PE)_Z"E;5 !1110
M4444 %5M1_Y!EW_UQ?\ ]!-6:K:C_P @R[_ZXO\ ^@F@"OX?_P"1;TO_ *\X
MO_0!6C6=X?\ ^1;TO_KSB_\ 0!6C0 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5B^,/^1)U[
M_L'7'_HMJVJQ?&'_ ").O?\ 8.N/_1;4 ;(Z"EI!T%+0 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !6+J'_(VZ+_UQN?Y1UM5BZA_R-NB_
M]<;G^4= &U1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %8/C"0PZ"D@C>4I?V+"./&YL747 R0,UO5B^
M*?\ D$0?]A&Q_P#2J*@!/[?N/^A=UC_OB+_XY1_;]Q_T+NL?]\1?_'*VZ* ,
M3^W[C_H7=8_[XB_^.4?V_<?]"[K'_?$7_P <K;HH Q/[?N/^A=UC_OB+_P".
M4?V_<?\ 0NZQ_P!\1?\ QRMNB@#$_M^X_P"A=UC_ +XB_P#CE']OW'_0NZQ_
MWQ%_\<K;HH Q/[?N/^A=UC_OB+_XY1_;]Q_T+NL?]\1?_'*VZ* ,3^W[C_H7
M=8_[XB_^.4?V_<?]"[K'_?$7_P <K;HH Q/[?N/^A=UC_OB+_P".4?V_<?\
M0NZQ_P!\1?\ QRMNB@#$_M^X_P"A=UC_ +XB_P#CE']OW'_0NZQ_WQ%_\<K;
MHH XW0M<G235L:#JK[M0D8[5B^7Y5X/[SK6O_;]Q_P!"[K'_ 'Q%_P#'*7P]
M_K-8_P"PE)_Z"M;5 &)_;]Q_T+NL?]\1?_'*/[?N/^A=UC_OB+_XY6W10!B?
MV_<?]"[K'_?$7_QRC^W[C_H7=8_[XB_^.5MT4 8G]OW'_0NZQ_WQ%_\ '*KW
M^O7#:=<C_A']7&8F&2L6!P?^FE='5;4?^09=_P#7%_Y&@#GM#UV=/#^FH- U
M9PMK$-RK%@_(.1^\J_\ V_<?]"[K'_?$7_QRK7A__D6]+_Z\XO\ T 5HT 8G
M]OW'_0NZQ_WQ%_\ '*/[?N/^A=UC_OB+_P".5MT4 8G]OW'_ $+NL?\ ?$7_
M ,<H_M^X_P"A=UC_ +XB_P#CE;=% &)_;]Q_T+NL?]\1?_'*/[?N/^A=UC_O
MB+_XY6W10!B?V_<?]"[K'_?$7_QRC^W[C_H7=8_[XB_^.5MT4 8G]OW'_0NZ
MQ_WQ%_\ '*/[?N/^A=UC_OB+_P".5MT4 8G]OW'_ $+NL?\ ?$7_ ,<H_M^X
M_P"A=UC_ +XB_P#CE;=% &)_;]Q_T+NL?]\1?_'*/[?N/^A=UC_OB+_XY6W1
M0!B?V_<?]"[K'_?$7_QRC^W[C_H7=8_[XB_^.5MT4 8G]OW'_0NZQ_WQ%_\
M'*/[?N/^A=UC_OB+_P".5MT4 8G]OW'_ $+NL?\ ?$7_ ,<H_M^X_P"A=UC_
M +XB_P#CE;=% &)_;]Q_T+NL?]\1?_'*/[?N/^A=UC_OB+_XY6W10!B?V_<?
M]"[K'_?$7_QRC^W[C_H7=8_[XB_^.5MT4 8G]OW'_0NZQ_WQ%_\ '*/[?N/^
MA=UC_OB+_P".5MT4 8G]OW'_ $+NL?\ ?$7_ ,<H_M^X_P"A=UC_ +XB_P#C
ME;=% &)_;]Q_T+NL?]\1?_'*/[?N/^A=UC_OB+_XY6W10!B?V_<?]"[K'_?$
M7_QRLGQ5KD\O@_6XSH.JQAK"=2[K%M7,;<G$F<5V-8OB_P#Y$G7O^P=<?^BV
MH 0:_<8'_%/:Q_WQ%_\ '*/[?N/^A=UC_OB+_P".5M#H*6@#$_M^X_Z%W6/^
M^(O_ (Y1_;]Q_P!"[K'_ 'Q%_P#'*VZ* ,3^W[C_ *%W6/\ OB+_ ..4?V_<
M?]"[K'_?$7_QRMNB@#$_M^X_Z%W6/^^(O_CE']OW'_0NZQ_WQ%_\<K;HH Q/
M[?N/^A=UC_OB+_XY1_;]Q_T+NL?]\1?_ !RMNB@#$_M^X_Z%W6/^^(O_ (Y1
M_;]Q_P!"[K'_ 'Q%_P#'*VZ* ,3^W[C_ *%W6/\ OB+_ ..4?V_<?]"[K'_?
M$7_QRMNB@#$_M^X_Z%W6/^^(O_CE']OW'_0NZQ_WQ%_\<K;HH Q/[?N/^A=U
MC_OB+_XY1_;]Q_T+NL?]\1?_ !RMNB@#$_M^X_Z%W6/^^(O_ (Y1_;]Q_P!"
M[K'_ 'Q%_P#'*VZ* ,3^W[C_ *%W6/\ OB+_ ..4?V_<?]"[K'_?$7_QRMNB
M@#$_M^X_Z%W6/^^(O_CE']OW'_0NZQ_WQ%_\<K;HH Q/[?N/^A=UC_OB+_XY
M1_;]Q_T+NL?]\1?_ !RMNB@#$_M^X_Z%W6/^^(O_ (Y1_;]Q_P!"[K'_ 'Q%
M_P#'*VZ* ,3^W[C_ *%W6/\ OB+_ ..4?V_<?]"[K'_?$7_QRMNB@#$_M^X_
MZ%W6/^^(O_CE']OW'_0NZQ_WQ%_\<K;HH Q/[?N/^A=UC_OB+_XY1_;]Q_T+
MNL?]\1?_ !RMNB@#$_M^X_Z%W6/^^(O_ (Y1_;]Q_P!"[K'_ 'Q%_P#'*VZ*
M ,3^W[C_ *%W6/\ OB+_ ..4?V_<?]"[K'_?$7_QRMNB@#$_M^X_Z%W6/^^(
MO_CE']OW'_0NZQ_WQ%_\<K;HH Q/[?N/^A=UC_OB+_XY1_;]Q_T+NL?]\1?_
M !RMNB@#$_M^X_Z%W6/^^(O_ (Y5'^T9+[Q?I"R:9>V>V"Y(-R$ ;_5]-K&N
MIK%U#_D;-%_ZXW/\HZ -JBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH *Q?%/_((@_P"PC8?^E<5;58OB
MG_D$0?\ 81L/_2N*@#:HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M ,7P]_K-9_["4G_H*5M5B^'O]9K/_82D_P#04K:H **** "BBB@ JMJ/_(,N
M_P#KB_\ Z":LU6U'_D&7?_7%_P#T$T 5_#__ "+>E_\ 7G%_Z *T:SO#_P#R
M+>E_]><7_H K1H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH *Q?&'_(DZ]_V#KC_T6U;58OC#
M_D2=>_[!UQ_Z+:@#9'04M(.@I: "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH *Q=0_Y&W1?^N-S_*.MJL74/^1MT7_KC<_RCH VJ*** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ K%\4_\@B#_L(V'_I7%6U6+XI_Y!$'_81L/_2N*@#:HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** ,7P]_K-9_["4G_ *"E;58OA[_6:S_V
M$I/_ $%*VJ "BBB@ HHHH *K:C_R#+O_ *XO_P"@FK-5M1_Y!EW_ -<7_P#0
M30!7\/\ _(MZ7_UYQ?\ H K1K.\/_P#(MZ7_ -><7_H K1H **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH *Q?&'_(DZ]_V#KC_ -%M6U6+XP_Y$G7O^P=<?^BVH V1T%+2#H*6
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "L74/^1MT7_K
MC<_RCK:K%U#_ )&W1?\ KC<_RCH VJ*** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K%\4_P#((@_["-A_
MZ5Q5M5@^+X5N-!2%]VR2_LE;8Y4X-U%G!&"/J* -ZBL3_A%-+_O:C_X,[G_X
MY1_PBFE_WM1_\&=S_P#'* -NBL3_ (132_[VH_\ @SN?_CE'_"*:7_>U'_P9
MW/\ \<H VZ*Q/^$4TO\ O:C_ .#.Y_\ CE'_  BFE_WM1_\ !G<__'* -NBL
M3_A%-+_O:C_X,[G_ ..4?\(II?\ >U'_ ,&=S_\ '* -NBL3_A%-+_O:C_X,
M[G_XY1_PBFE_WM1_\&=S_P#'* -NBL3_ (132_[VH_\ @SN?_CE'_"*:7_>U
M'_P9W/\ \<H VZ*Q/^$4TO\ O:C_ .#.Y_\ CE'_  BFE_WM1_\ !G<__'*
M-NBL3_A%-+_O:C_X,[G_ ..4?\(II?\ >U'_ ,&=S_\ '* %\/?ZS6?^PE)_
MZ"E;5<;H7AG3I7U7<U_\E_(HQJ-P.-J^C\_4UK_\(II?][4?_!G<_P#QR@#;
MHK$_X132_P"]J/\ X,[G_P".4?\ "*:7_>U'_P &=S_\<H VZ*Q/^$4TO^]J
M/_@SN?\ XY1_PBFE_P![4?\ P9W/_P <H VZK:C_ ,@R[_ZXO_Z":S?^$4TO
M^]J/_@SN?_CE07_A;3%T^Y8-J&1$Q&=2N#V/_32@#1\/_P#(MZ7_ -><7_H
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
M^O.+_P! %:- !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !6+XP_Y$G7O^P=<?^BVK:K%\8?\
M(DZ]_P!@ZX_]%M0!LCH*6D'04M !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %8NH?\C;HO_7&Y_E'6U6+J'_(VZ+_UQN?Y1T ;5%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 5B^*?^01!_P!A&P_]*XJVJQ?%/_((@_["-A_Z5Q4 ;5%%% !1110
M4444 %%%% !1110 4444 %%%% !1110!B^'O]9K/_82D_P#04K:K%\/?ZS6?
M^PE)_P"@I6U0 4444 %%%% !5;4?^09=_P#7%_\ T$U9JMJ/_(,N_P#KB_\
MZ": *_A__D6]+_Z\XO\ T 5HUG>'_P#D6]+_ .O.+_T 5HT %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %8OC#_D2=>_[!UQ_Z+:MJL7QA_R).O?]@ZX_]%M0!LCH*6D'04M
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %8NH?\C;HO_7&
MY_E'6U6+J'_(VZ+_ -<;G^4= &U1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %8OBG_D$0?]A&P_]*XJ
MVJRO$5I<WFD".SB66>.ZMIQ&S[=PCG20C/;A30!JT5B_VEK?_0O_ /DZG^%'
M]I:W_P!"_P#^3J?X4 ;5%8O]I:W_ -"__P"3J?X4?VEK?_0O_P#DZG^% &U1
M6+_:6M_]"_\ ^3J?X4?VEK?_ $+_ /Y.I_A0!M45B_VEK?\ T+__ ).I_A1_
M:6M_]"__ .3J?X4 ;5%8O]I:W_T+_P#Y.I_A1_:6M_\ 0O\ _DZG^% &U16+
M_:6M_P#0O_\ DZG^%']I:W_T+_\ Y.I_A0!M45B_VEK?_0O_ /DZG^%']I:W
M_P!"_P#^3J?X4 ;5%8O]I:W_ -"__P"3J?X4?VEK?_0O_P#DZG^% !X>_P!9
MK/\ V$I/_04K:KEM,?7K!KXMH:O]INFG&+Q. 0!CI[5?_M+6_P#H7_\ R=3_
M  H VJ*Q?[2UO_H7_P#R=3_"C^TM;_Z%_P#\G4_PH VJ*Q?[2UO_ *%__P G
M4_PH_M+6_P#H7_\ R=3_  H VJK:C_R#+O\ ZXO_ .@FL[^TM;_Z%_\ \G4_
MPJ*YO=<GM)H1H !D1E!-XG&1CTH O>'_ /D6]+_Z\XO_ $ 5HUSFFW&NV.EV
MEHV@AF@A2(L+Q,$JH&>GM5G^TM;_ .A?_P#)U/\ "@#:HK%_M+6_^A?_ /)U
M/\*/[2UO_H7_ /R=3_"@#:HK%_M+6_\ H7__ "=3_"C^TM;_ .A?_P#)U/\
M"@#:HK%_M+6_^A?_ /)U/\*/[2UO_H7_ /R=3_"@#:HK%_M+6_\ H7__ "=3
M_"C^TM;_ .A?_P#)U/\ "@#:HK%_M+6_^A?_ /)U/\*/[2UO_H7_ /R=3_"@
M#:HK%_M+6_\ H7__ "=3_"C^TM;_ .A?_P#)U/\ "@#:HK%_M+6_^A?_ /)U
M/\*/[2UO_H7_ /R=3_"@#:HK%_M+6_\ H7__ "=3_"C^TM;_ .A?_P#)U/\
M"@#:HK%_M+6_^A?_ /)U/\*/[2UO_H7_ /R=3_"@#:HK%_M+6_\ H7__ "=3
M_"C^TM;_ .A?_P#)U/\ "@#:HK%_M+6_^A?_ /)U/\*/[2UO_H7_ /R=3_"@
M#:HK%_M+6_\ H7__ "=3_"C^TM;_ .A?_P#)U/\ "@#:HK%_M+6_^A?_ /)U
M/\*/[2UO_H7_ /R=3_"@#:HK%_M+6_\ H7__ "=3_"C^TM;_ .A?_P#)U/\
M"@#:HK%_M+6_^A?_ /)U/\*/[2UO_H7_ /R=3_"@#:K%\8?\B3KW_8.N/_1;
M4?VEK?\ T+__ ).I_A5'6WU[5=!U'3DT)8WN[66!7:\3"EE*Y/'O0!TXZ"EK
M%&I:V!_R+_\ Y.I_A1_:6M_]"_\ ^3J?X4 ;5%8O]I:W_P!"_P#^3J?X4?VE
MK?\ T+__ ).I_A0!M45B_P!I:W_T+_\ Y.I_A1_:6M_]"_\ ^3J?X4 ;5%8O
M]I:W_P!"_P#^3J?X4?VEK?\ T+__ ).I_A0!M45B_P!I:W_T+_\ Y.I_A1_:
M6M_]"_\ ^3J?X4 ;5%8O]I:W_P!"_P#^3J?X4?VEK?\ T+__ ).I_A0!M45B
M_P!I:W_T+_\ Y.I_A1_:6M_]"_\ ^3J?X4 ;5%8O]I:W_P!"_P#^3J?X4?VE
MK?\ T+__ ).I_A0!M45B_P!I:W_T+_\ Y.I_A1_:6M_]"_\ ^3J?X4 ;5%8O
M]I:W_P!"_P#^3J?X4?VEK?\ T+__ ).I_A0!M45B_P!I:W_T+_\ Y.I_A1_:
M6M_]"_\ ^3J?X4 ;5%8O]I:W_P!"_P#^3J?X4?VEK?\ T+__ ).I_A0!M45B
M_P!I:W_T+_\ Y.I_A1_:6M_]"_\ ^3J?X4 ;5%8O]I:W_P!"_P#^3J?X4?VE
MK?\ T+__ ).I_A0!M45B_P!I:W_T+_\ Y.I_A1_:6M_]"_\ ^3J?X4 ;5%8O
M]I:W_P!"_P#^3J?X4?VEK?\ T+__ ).I_A0!M45B_P!I:W_T+_\ Y.I_A1_:
M6M_]"_\ ^3J?X4 ;5%8O]I:W_P!"_P#^3J?X4?VEK?\ T+__ ).I_A0!M45B
M_P!I:W_T+_\ Y.I_A1_:6M_]"_\ ^3J?X4 ;5%8O]I:W_P!"_P#^3J?X4?VE
MK?\ T+__ ).I_A0!M45B_P!I:W_T+_\ Y.I_A1_:6M_]"_\ ^3J?X4 ;58NH
M?\C;HO\ UQN?Y1T?VEK?_0O_ /DZG^%0QIJM]XAL+NYTU;2"VBF4M]H5R2^W
M' '^R: .@HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **X4?$&[C2XO[G0=FBP:D^GR7D
M=X'=")O*#F,J/EW8Z,2,]ZZ=_$>B1ZLNE/J]BNHL0HM3<*)"3T&W.<^U &G1
M61J'BGP_I-V;74=<TZSN  QBN+I$8 ].":EN_$.BV%[#9WFK6-O=3X,4,MPJ
MN^>F 3DY[4 :5%1BXA:X:W$T9G50[1!AN"G@$CKC@\^U8FK^(+JWUF'1M(TY
M+_47@-S()9_)BABSM!9MK').0  >AZ8H WZ*AM)+B6TB>Z@6"X909(DDWA&[
M@-@9^N!5*U\1Z'?:A)I]IK%A/>19WV\5PC.N.N5!SQW]* -.BN0\*>,1XIUK
M54M;S2I+"TE>&*.";?.X4J!*<'&QB6QQV'-6KKQ'J,VM7FFZ%I$5\UAL%U-<
M7?D(KLNX1KA&+-M()X &1S0!TM%(,E02,'N*6@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@#S
MOPOX,%XE[/K$FI>4NMW5S%I\K;(&Q.S1OMV@L.C#)(/!Q63XE?6]3NKNR-E?
M1O#K5O)!;6NEDQ/"LT9\]I\$$D9)VD$=", FO6J* /&;VX;^U?$9O1/%X?37
M$NKJZAL#,5,(B/$P?@909^0E?F&?2YJFDS_VOXJLM4GUI+75Y@\1L-+%TEQ"
M8E4+Y@C8HRD$8)4#@CKFNZN/!/A^ZNYKB6RD/GR^=-"+F402OG.YH@VQB2.<
MKS704 9%FMI%KTD"Z=<?;([*(/J,D Q*F6 3S.[ @DCMNSWKC_$^E64?CV74
MM:TG4;_3;K38X8C9Q32A)D=R598N02'&&(P,'D5Z/10!RGAW3]:7X:16%Y)+
M'JS6<J(TTFYXRV[RPS?WE4J"?45R^G0/?V'@O1[/0K^QOM'N(9+R2:S:*.!4
MC*R 2$;7WDX^4G.<FO4Z* .7\%64UDFO>?;/ 9=9NI(]Z%=Z%AM8>H/8UQ6N
M:)';ZGXMCN=&U>ZU*_E^T:1<V:3%-[0JHPZG9&RNO);'&.HXKUVB@"MIT=S%
MI=I'>N)+I8469Q_$X4;C^>:LT44 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
0 !1110 4444 %%%% '__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>20
<FILENAME>cgnx-20241231_g1.jpg
<TEXT>
begin 644 cgnx-20241231_g1.jpg
M_]C_X  02D9)1@ ! @$ 8 !@  #_[@ .061O8F4 90     !_]L 0P " 0$!
M 0$" 0$! @(" @($ P(" @(%! 0#! 8%!@8&!08&!@<)" 8'"0<&!@@+" D*
M"@H*"@8("PP+"@P)"@H*_]L 0P$" @(" @(% P,%"@<&!PH*"@H*"@H*"@H*
M"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*_\  $0@$
M) 3R P$B  (1 0,1 ?_$ !\   $% 0$! 0$!           ! @,$!08'" D*
M"__$ +40  (! P,"! ,%!00$   !?0$" P $$042(3%!!A-180<B<10R@9&A
M""-"L<$54M'P)#-B<H()"A87&!D:)28G*"DJ-#4V-S@Y.D-$149'2$E*4U15
M5E=865IC9&5F9VAI:G-T=79W>'EZ@X2%AH>(B8J2DY25EI>8F9JBHZ2EIJ>H
MJ:JRL[2UMK>XN;K"P\3%QL?(R<K2T]35UM?8V=KAXN/DY>;GZ.GJ\?+S]/7V
M]_CY^O_$ !\!  ,! 0$! 0$! 0$        ! @,$!08'" D*"__$ +41  (!
M @0$ P0'!00$  $"=P ! @,1! 4A,08205$'87$3(C*!"!1"D:&QP0DC,U+P
M%6)RT0H6)#3A)?$7&!D:)B<H*2HU-C<X.3I#1$5&1TA)2E-455976%E:8V1E
M9F=H:6IS='5V=WAY>H*#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6V
MM[BYNL+#Q,7&Q\C)RM+3U-76U]C9VN+CY.7FY^CIZO+S]/7V]_CY^O_:  P#
M 0 "$0,1 #\ _?RBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
MQ8\!>.?"NKZ=+JFF>&/B-K L?$,5]J-M8^2;077EV\B2722(T"J"%9&5MRE
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
M_'W_  1$^%S:C]L_:+\4Z=8^'M;M?F7PW8S_ +OQ'<L"<E6TN D =#&YY+4
M?HW\8]"U7X^?\$8?VW/^"K?CO39HM4_:*C:7P5#>1E9;#P5I=W'9:-#M;_5M
M*JS7+[<!_/1B,\U^5'_!L1_RG-^!7_7UX@_]1W4Z_HE_X+A?#SP?\(O^"$'Q
MD^%'P]T6+3= \,_"ZUTK1-/A'R6UI;RVT,,0]E1%'X5_.U_P;$?\IS?@5_U]
M>(/_ %'=3H _L'K^(3_@K+_RE/\ VEO^R_>,?_3W=U_;W7\0G_!67_E*?^TM
M_P!E^\8_^GN[H _JP_X*%_M@_!S]C#_@CUKWQ%^+/B^PL+C4_@XVD^%M+N;A
M1/K&J7.E^3;VT,9.Z0F212^T'9&'=L*I-?S/_P#! S]AKXO_ +;7_!3/X86W
M@#PW>2>'O ?C'3/%/C?7EA86^FV%E<I<['DZ+).T0AC7EBSYQM1R/Z'/@U_P
M;@_\$<?%7P[\(_$#QW^R==>(]7N/#=A.]UX@^(OB"[4%K>-BHC>_,83).%VX
M&< 8XK[:^ W[.'P"_9;\!Q?"_P#9Q^#?AOP1X?A<R#2?#&CQ6<+R$ &1Q&H\
MR0X&7;+'')- ':U^=G_!;?1O%7[?'Q&^&_\ P12^%7C.XT67XGP7/C#XMZY8
MH'?1O">F-F'>O_3UJ7V>)#R,P,",&OT)US7-'\,Z)>>)/$.IP66GZ?:R7-]>
M7,@2."&-2SR.QX554$DGH!7XU_\ !.+_ (*^?LAI^T)\=?\ @H/^T9IOQ,/B
MKXM^*8].\#0:7\(M=U&#2_!&G)Y>F11SP6KQA[@M)<S+&Q4NR$\@X /P5^!O
MQ.^./_!*W_@H1H_Q FTJ2P\;?!GXA/!K6E&0J)GM9WM[VS9L?ZN:/SH21U24
MD=:_MC^#?Q:\#?'OX2>&?C?\,=874/#OB[0;36-#O5_Y;6MS"LL;$=CM<9'8
MY':OY0/^#E37OV:_CO\ MOK^V/\ LIZ1XOM](\=Z1;IXQ3Q+\/M3T1(];MU,
M6^,WL$2R>=;1PL0F3OBE9OO5^IW_  9P_P#!0#_A=G[('B/]A7QQK?F^(/A+
M?&^\-)-)EY] O96?8N>6\BZ,JD]%2Y@4<"@#]EJ_A3_;?_Y/2^+_ /V5'Q!_
MZ<9Z_NLK^%/]M_\ Y/2^+_\ V5'Q!_Z<9Z /[C=:\=>"?AG\.'\>?$;Q?IF@
M:'I>F+<:GK&LWT=M:VD2H"SR2R$*B@=R0*_C/_X*<?%8_P#!2K_@K=\3?B!^
MRUX6U'Q*OQ"\?"Q\$6&EV+O<:ND216=O)'%C=F985D (! ?YL8./OW_@YN_X
M(=6W[*'PZ\,_MG?LB6WB27X8PVUOIWCGPQJ?B;4-7_L"\<X@U!);V::46\S/
MY3AFQ'*8\<382/\ X,_/V]_V;/@_^T'JG['?QF^&/A'3O%OCF<R_#OXF2Z-;
MIJ<ER4 DT26[*^9Y<H4/"NX R!X_F,L:@ _>O_@G!^S?XC_9!_8*^$7[,WC*
M]CN-:\&> M.T[6Y()-\?VU85-PJ-_$BREU4]U /%?A#_ ,'N?_)XGP8_[)I=
M?^G"2OZ2:_FV_P"#W/\ Y/$^#'_9-+K_ -.$E 'V)_P92_\ *,/XA_\ 9>=1
M_P#3+HU>%_\ !ZG^Q+\5?$NH?#3]O?P?H=UJ7AC0M#D\*>,)+:,N-()NGN+.
MXD SMCE>>>(N<*KK$I.9%%>Z?\&4O_*,/XA_]EYU'_TRZ-7Z?^(/BG\$/B5\
M9O$/[$7C72+?5M5?X>VWB#6-!UC3XY[+4=&O;J[L2A1\B4"2U=9$9=H6:/EM
MQ  /YB/^"1?_  = ?M7?\$Y?"ND?L^_&7PTOQ4^%.EJL&F:;>WI@U?0K<<".
MSNB&5X4&=L$RD  (CQ**_?7]G']NK_@FQ_P7;_9[O? ?PN^)#:DJ76FZIKW@
MC466PU[1Y[.^M[VWE> ELJEQ!#^^B,D1/RA\Y%?!?_!3;_@SF^#7Q5GU/XL?
M\$V_'T7@+6YB\[_#OQ-+)-HMPYR2MK<@--99.<(XFCR0!Y2CC\,-?\,?MO?\
M$D/VQ[:'7M-U_P"%_P 5_ .HQW=H^\!@/X71T+175K*NY207BE0LIW D4 ?U
M#_\ !SU^T[XH_9B_X(\_$.Z\$ZE+9:MXYNK+PA;WD+D-'#>R'[6!C^_:17,?
MMYF>U?@!_P &Q/PRTKXG_P#!;/X-6NN6J36NB3:OK31NN?WMKI5W) WU6<0M
M_P !K]A_^"[_ (BU[_@I+_P;3^'_ -KOPQX=\FZ-AX7\?:II-H&86VY1;WB)
MG)*0F\E;<?X(2QK\B_\ @UC\:Z;X._X+<_">#5)UBCUFRU[38Y'. )'T>\>,
M?5GC51[L* /Z\*^&/^#D_P"'FF?$?_@BE\<;#4+57DTO1]/U:SD(YBEM=3M)
MMR^A**ZGV<CO7W/7Q-_P<9>,=.\#_P#!%7X^:KJ<ZHMSX9M=/BR?O276HVEL
M@'K\THH _F__ .#<C]IGQ/\ LR?\%A/@]?Z)J4D5AXWUY?!NOVBL0EY;:EB"
M-'QU"7)MIA_M0K7]('_!Q/\ \H@_B=_V&_"'_J5Z17\T'_! /X&^(_C]_P %
MA?@+X9\/64DHT/QW:^)M0E53M@MM+)OW=S_"";=4!/5G4=2*_I?_ .#B?_E$
M'\3O^PWX0_\ 4KTB@#\V?^#JS_@A/M.L_P#!4O\ 9%\'<'-S\9O"^F0?GKL*
M*/\ P* ]IR/]>]?'?_!M[_P6^U#_ ()G_'8? 'X^>(IG^"'C[4D&K/,Q9?"^
MI-M1-4C':(@*EPHY**L@RT6U_P"KW4-/L-6L)]+U2RAN;6YA:*YMKB,/'+&P
M(9&4\,I!((/!!K^4S_@Y'_X(;W__  39^-3?M(?L\>&IG^"'CK4V^QP0(6'A
M/4GR[:<Y[0/AFMW/\*M$>8PT@!^ZW[>NHZ?J_P#P5:_8 U;2;Z&ZM;KQ/X_F
MMKFWE#QS1MX1G975ER&4@@@C@@U]QU_+S_P;U?\ !0_XW?M#_M\?L>_L5?%R
M\.KZ;\(O$/C&X\%ZW<SEKF#3KKPK?I_9[Y^_'"T.8B3E4<Q_=1 O]0U !7\?
M7_!R_P#M.>*/VEO^"PWQ3@U?4Y9-*^'][%X/\.V;.2MI!9(!.%_W[M[J0_\
M73':O[!:_C6_X.'O@AXB^!/_  60^.6B:]921Q>(/%A\2Z9.RD+<6VHQ)=AT
M/<!Y9(R>S1,.U ']%'_!KW\,M*^&W_!$WX0SV5JB77B1M9UK4Y57'G2RZK=(
MC'W$$4"?\ %?H#7PC_P;.^-=-\;_ /!$CX'W5A.K/IVG:KIMW&#S%)!K%['@
M^A*A6^CBONZ@#^1?_@ZH^'FF> O^"U_Q-O=)M5AB\1:5H6K/&BX'FOI=O%(W
MU9X6<^I8U^Z'_!J]^TSXH_:2_P""/?@RS\9:E)>ZA\.M;O\ P<;N9B7>VM?+
MFM$/M':W4$(_V8EK\/?^#L/QCIWBG_@M;\0-+T^=9&T#PYX?T^Y*G($ATV"X
M(^H%PH/O7[1_\&D/P-\1_!S_ ((\:)XC\264ELWQ"\<:OXFLX95*M]F;R;&-
M\'LXL=ZGNKJ1P10!^*?_  =;_P#*;OXG_P#8%\.?^F:TK]H_^"%_[<?[(7[(
M_P#P00^#GC3]HW]HWPAX4M=%T/6I;VWU3785NVQK6H.(X[8,9II6!&V-$9VR
M, YK\7/^#K?_ )3=_$__ + OAS_TS6E?I[_P2$_X(8_\$T?^"@7_  1$^%/B
MKXX_L[V4'C3Q)I&KM<_$'P_<26>L1SIJ]]#%-YBG9,42-%"3)(F% *F@#[(_
MX(P?M,6__!3/]AWQ]\<OB%I]Y=^'OB)\4_%MO9Z)JURSM;Z')-Y,%DQ#?+BV
M*JP0@;BQ&,U]G>$_"V@^!O"VF>"O"NGBTTO1]/AL=-M1(SB&WB01QIN8ECA5
M R22<<DU\-?\&Z7[-WB?]CW]A'Q'^RYXQO5N]0\!_&KQ7HTM]''L6\2&\"QW
M"J22JRQA) #R XK[UH 1F55+,0 !DD]J_D=_:N_X+\?MD^"?^"K_ ,</VP?V
M*?C%::'8^*]730--GN/#>GZDEWH&FL8+)4-W!*T"2A/M#B)DW/+EBV!C^N"Z
MM;:^MI+*]MXYH9HRDL4J!E=2,%2#P01P0:\(\<_\$L?^":/Q)T>30O&G[ /P
M<O()%*[A\.--BECSW26.%7C/NK ^] 'XA_L.?\'I/Q]\->*+'PO_ ,% ?@-H
M7B?P[+*L=UXI\ V[6&J6BD\RO;2R-!=8_N(;?CG)(P?Z _V>_P!H/X.?M5?!
MK0/V@/@!X\LO$OA'Q/8BZT?6+%CME3)5E96 :.1&#(\;@.CJRL 017XC_P#!
M;/\ X-0?@EX6^"WB7]JW_@FE9ZCH6H^&-.FU37?A;=7TM[:7]G$IDF?3Y)F:
M:*=4#.(7>19 -J>60%?5_P"#('XP^/\ 7_@]\?/@7JU]/-X;\,:]H.KZ)%(Q
M*6US?Q7T5RJYZ!A86[8'&0QZMR ?NM1110!_*M_P=;?\$P/^&+?VWS^U%\,?
M#OV?X>_&F>?4MMO%B'3=?4AKZVXX42EA=)G&3+,JC$5?H[_P:=?\%8- ^-O[
M$^M_LB?'WQU;6GB'X$:0UY8:EJMV$$WA)<E969CPMDV86)PJ1-;#U-?<?_!:
MG]C7X;?MR?\ !-;XH_"3XB1+%+I?ANZ\1>&M5$0>33=4L())X)E]CM>%\<F*
M:101G-?R)_\ !/+1;SQY^VK\,O@A)XKUC2M%^)GCG2/!GB_^Q-1>VEO-&U._
MM[6\M2Z]4DBD8$'(Z9!Q0!_4Q_P2\\-:_P#MY_M*>+O^"T/Q<T:Y@TC7+6;P
MG^S5H6HPE&TKPA#,PEU8QM_J[C49U:3.-RPJ%#-&XK[]K/\ "?A3PUX$\*Z9
MX'\&:';:9H^C:?#8Z5IME$(X;2VB01Q0QJ.%1455 '   K0H _D%_P"#I+_E
M.I\;_P#<\,_^HUI5?L5_P3O_ ."KO[(/_!.S_@WB^%WQ!^)GQM\+/XLT;X?W
MYT+P%%K<,FJZIJ)O+LV]LMJC&559RFZ0J%C0EF( K\=?^#I+_E.I\;_]SPS_
M .HUI5?IY^Q1_P $%?V'_P#@HA_P0&^'7B2V^">BZ!\8]9\"7UUH7Q%TI&MK
MM]5CN[H0&[*$+<Q,42)Q(&(0DJ5958 'W_\ \$N/ /A3]I7_ ((E_"/X9?&O
M2_[<T7QY\$;;3O%5I-*T9OK>\M&CN%+H59"RR/\ ,I# G(((!KZZL;*VTVRA
MTZSCV0P1+'$N2<*HP!D]>!7S'_P11L;S3/\ @DK^SUINH6SPW%O\*]*BGAD7
M#1NL(#*1V(((KZ'\$?$7P1\2;74;WP+XDM]3ATG6KO2-1EMB2L-]:RF*X@)(
MY:.161L9 92.H- #/BA\2?!GP:^&OB#XN_$?6XM-\/\ A?1;K5M<U"8_+;6E
MO$TLLA]E1&/X5_)]_P %N?V1?VE?'/PI\#?\%M/C-]O"_M*>(]1N[K0KE,CP
MO8L WAZTW?Q"72X0P/;R?4U^U?\ P<;?M7^ ]'\)_##_ ()X^)-7UV'3?C%X
MJM[[XK2^%=$N]2O[+P1I]Q%+>A(+-'F#74WDVZ,%*D"8-QFN#_X*@?\ !1;_
M ()B?MZ?\$[_ !W^QIIWA_XI64U_X<7_ (0C'P%\11PZ;J=H!+IY7%E^[C$D
M:1MMQ^Z=UZ'% 'E/_!F%_P % /\ A//@EXT_X)U>.=;WZEX'N'\2^!HII/F?
M2;J4+>0(.RPW;I+ZDW[=EK]Q:_B+_P""8'[9_BO_ ()L_P#!0/P!^TT8+VW@
M\+^(?LGC#2_+999]+FS;W]NT9_C$3R%58?+*B'&5%?VS^'/$6A>+_#UAXL\+
MZM!?Z9JEE%=Z=?6L@>*X@D0/'(C#@JRL"#W!H _%'_@]W_Y-0^"/_90[_P#]
M(*\__P"#&3_CW_:@_P!_P5_+7:] _P"#W?\ Y-0^"/\ V4.__P#2"OBK_@V8
M_P""8OP4_P""F/P3_:E\$_$+5]>T/Q1I.D^'(/ OBS0_$E_:?V-=W2:QF:2V
MMYXX;U"UO"&CG1\('"&,N6H _0'_ (/$_P!MCX&^#_V#;7]BRU\::;J'Q!\9
M>+-/O9?#UK=))<Z9IUHS3M=3JI)A#2"*- V"^]RN1&V/DW_@S _8G^,&K?M0
M^,?V\=9\.7=AX$T7P==>&]'U.XB9$U;4[FXMWD2$GB1(8H'\PCA7EB'7./RH
M\=_#OXN_\$ZOVWKCP-^T1\)-&U;Q3\-/&4;>(/"GB[3UOM,UD12+)LE208N+
M6YB(8/CYXY5=2"0:_LG_ ."</[6'[.7[:G[&G@GX^_LL:9I^E>$M1TM8(O#.
MGV\4(\/W,0"S::\4058FA?*X4!67:ZY5U) /<:*** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M9>0:A\2/A5X;\07%M&8[:?7-#M[MXD)R55I48J,\X%8G_#)_[+/_ $;5\/\
M_P (VQ_^-4 5;#]LC]DK4_A%:?'VT_:9\!GP3?6K7%IXJD\5VB6,D:HKN?.:
M0*"JLI92<KN&0*_B'_:D\9Z#\1_VF_B-\0_"MY]HTO7O'>KZCIMP%(\VWGO9
M98VP>1E6!Y]:_N-F_9N_9VN-$@\-3_ 3P6^FVMQ)<6VGOX6M#!%+(%5Y%C,>
MU68(@+ 9(1<]!53_ (9/_99_Z-J^'_\ X1MC_P#&J .>^''Q)_9)_P""@/[-
M1T+PWXS\)?$7P7XS\(K!K.EV.J0W<<UE<P!)(9TC8M&<,596VLC CAAQ_)-_
MP6(_X)F?%;_@CU^W'<?#O2]4U3_A&;NZ_MWX3^,XI&CEN+)90T8\U,;;NV?;
M')MVG<J2 *LB5_8KX(^#GPB^&5U/??#?X5^&_#T]U&([F;0]#M[1YD!R%8Q(
MI8 \X-3>.?A9\,?B=%;0?$KX<Z#XA2S9FM$US1X;L0%L;B@E5MI.!G'7 ]*
M/@/_ ((-_P#!=3X/?\%&OV7].\,_'CXH>'] ^-/A&S%IXPTG5-1AM&UJ.),C
M5K9'*AT=%+3*@_<R!\A4:,M^3_\ P>4?'_X,_&;]N;X<>&OA-\2]$\2S^%OA
MR\&OOH6I1W4=E<37TSK!(\3%5EV*'*$[@KH2!N%?T?VO[+7[,EE(9K+]G/P)
M"[1O&SQ>$+)24=2K+D1="I*D=P2#UJ/_ (9/_99_Z-J^'_\ X1MC_P#&J /R
M!_X,P/VD_@-X8_8C^(_P$\4_%SP[I7BY?BW/K,6@:GJ\-O<SV5QIFG6\<T22
M,#(OFVTJ$KG:0 <;ERW_ (+?_MO_ !Y_X)]?\'!WP7_:&^!OPSUSQK#;_ ".
MS\;^$=!LI9YM4T&36=2-RN(U8J8V2*9'(VK)#'N^7(/[!VO[+/[,5C<QWME^
MSEX#AFAD#PS1>$+)61@<A@1%D$'D$5T<7P[\!P?$&X^+,/@_35\3W6C0Z1<:
M^+-/M<EA%++-':F7&[REEFE<)G&YR<9H \/_ &5?^"L'_!/;]LGX;VWQ)^"_
M[4WA%D> /J&A:YK4&GZKI3@9>*ZM)W62)E(8%L%&VDHS+\U?C;_P</V_A#_@
MM]_P46^#?['?_!,^ST[XB^+_  9I.H6WQ"\>>'I!<:1I=M=7%LT27-]%NC\J
MU\JXD8J6 >Z\I-TI,=?MC\:O^";O_!/W]HWQ,_C;X[?L5?"[Q7K<K[I]:UOP
M/8SWDQ_VYVB\QQ[,Q%=[\&_@#\"OV=?"W_"#_L__  8\*^!]&W[SI7A'P_;:
M=;L^,;C';HBEO<C- '+? []D'X4_!W]BWPU^PU?Z5%K_ (/T/X>0>$=1MM1A
M^75K1;06TYF4'_EL-[, >LAQ7\R__!1/_@D'^V9_P06_;5T+]LK]GSPMJGBW
MX6^$_&5KXA\%^-+:V>==.6&=95T_5A&,P$ >492!%.C94AF:)/ZOJ;-#%<1-
M!/$KHZE71UR&!X((/44 ?+G[&/\ P66_X)X?ML_!'3/C%X"_:<\&Z)<3V"3:
MYX4\4>)K6QU/1)]H,D-Q#,Z-A6W*)5!C?;N1B*_)K_@YJ_X*I^&/^"A;^%?^
M"4W_  39N+GXLWUWXCBU3QG?^ 8'U*&]GA5A;:=:O &%RJLYGED3,:&.$!R1
M(%_8OQY_P2D_X)D?$[6W\2^//^"?GP;U+499?,GOYOASIPFF;UD=80TG_ B:
M]&^"G[,/[-G[->FRZ-^SM^S[X)\!VLX N+?P=X6M-,6;'3>+>--Y]SF@#\^/
M^#;[_@A;J/\ P2Z^&.I_'W]H^ULY?C1XZTY+:]L[:59H_#&E[ED_L]95)629
MW5'G=24S%&B$A"\EK_@Z"_;A_9M^$O\ P3+\8_!#4OBQH%WXZ\2^)/#T.D^#
M[/5X9=0;['K=EJ$[O K%XXUBM) 78!0[(N<L ?TVKBM=_9M_9U\4:Q<^(?$O
MP#\%:CJ%Y*9;N^OO"UI--.YZL[O&68GU)S0!2_9S_:O_ &<?VMOA_IOQ-_9S
M^,WA[Q;I.IZ?'>0OHVJQ32PHX!VS1*Q>&12=K(X#(V58 C%:'[0GP ^$G[4_
MP5\2?L]_'7P=;:_X3\5Z8]CK.EW0XDC;D,K#F.1&"NDBX9'164@J#5WP1\&?
M@_\ #.]FU+X;_"GPUX?N+F+RKBXT30K>T>5,YVLT2*6&0#@\9KI: /YK?V!O
M^"4WQ;_X),_\'/\ \&/@OXO^TZIX/UB;Q/??#OQ@\.(]8T[_ (1W5!M<@;5N
M8=RI-&,88JX&R1"?Z4JQ?$?PY\ ^,/$>@>+_ !5X-TS4=5\*7\M[X:U*\LDD
MGTNXEMY;:66!R-T3/!-+$Q4C*2,#P:VJ "OS(_X..O\ @AG>_P#!4[X4:9\;
M?V>H;.W^-'@.PDM]*@NY5AB\2Z86,ATZ25L".5'9W@=B$#22(Y42>9'^F]%
M'\\7_!L[_P %0]%_X)F^)_&?_!++_@I8M[\)FG\1-K'A/4/'EL^GPZ;?2(D5
MS973S "WBD$4<T4K8B+>;E_WB9_8+]KC_@L-_P $Z_V-O@QJ7QD^(_[4_@O4
MQ:V+3:5X=\,^);34-3UF7:3'#:V\,C,Y=L+YAQ&F=SLJ@FO9OC1^S9^SK^T?
MI$>@?M"_ 7P9X[L8<^1:>,?#%IJ<<6>NU;B-PI]QCI7F7@K_ ()._P#!,'X=
M:ZOB?P7_ ,$]_@U8:C'+YL%['\.--:2!\YS&S0DQGTVXQ0!_.-^PI_P2F_;.
M_P"#@S]N_P 2?MH?&[PCJG@[X6>+?&5QKGB_QG<P-%'/;O,673-*,BC[2ZQA
M8%E ,<*IN<E@L<G]2GAS1/A-^SI\*='\%:*-(\)^$/"VE6NEZ1;S7*6]K86L
M,:PP0AI"  %55&3DXKI+:VM[.WCM+2!(HHD"111J%5% P  .  .,50\6>#?"
M'CW1)/#7CKPIINM:;,RM+I^K6,=S Y4Y4F.0%200".."* /Y!?\ @Y8^-7PM
M^/?_  63^*WCGX.>.=,\2:'%%HVG1ZSHUXEQ:SSVVE6L,ZQR(2KA)5>,D$C=
M&V":_>G_ (-=_P!I3X"^,?\ @D#\(OA!H7Q>\.R^+?#?]L:?K?A?^V(1J%I.
MVKWL\:M 6\S#PRQR*0,%7X/!Q]R?\,G_ ++/_1M7P_\ _"-L?_C57?#O[.?[
M/?@_6K?Q+X2^!'@W2]1M'WVNH:=X7M()X6P1E'2,,IP2,@]#0!U&EZ'HFB&Y
M;1M'M;0WMTUS>&UMUC\^=@ TK[0-SD* 6.2<#GBK5%% %?5;NZL-+N;ZQTY[
MN:&W>2&TC<*T[!20@+< D\9/'-?SZ? '_@\Q_:*\"_M-ZIX"_P""@G[(.BZ3
MX1BUJ:RO++PA9W=KKOADK(5*3Q7DS)>-'C:Z;;=B0S#'$=?T)UY1\;OV$/V)
M/VEM=7Q3^T-^R'\,_'&JJJJNJ^*O ]A?W051@+YTT3/M XQG% 'S]XH_X+N_
M\$\?B#\&9M4_9.^+UM\8_'.OZ3(G@SX5>#=.N+K7-7O70B.":S,8DM(]Q'FR
MSJB1H&9CP :'_!O[_P $I;__ ()2?L0Q_#_XC26D_P 2/&NHC7/'\UG*)([6
M<QA(-/CD'$B01@@L,AI9)BI*E:^KO@G^S'^S=^S7I4NA_L[?L_\ @KP'9S@"
MXMO!WA:TTU)L="XMXTWGW.37<T %%%% 'SW_ ,%*?VG?V??@-^QE\7+SXL_&
M/PUH4L7PYU>)+'4=:ABN9YI;&5888X6;?))(S*J(H)8L  <U_')_P3^^('A/
MX3?MY?!+XJ>/=8BT[0O#/Q=\-ZKK6H3G"6UI;ZI;332M[*B,Q]A7]N7BWX!?
M GQ]K<GB7QU\%?"6M:C*BK+J&K>'+6YG=5&%!>2,L0!P!G@5F_\ #)_[+/\
MT;5\/_\ PC;'_P"-4 ;_ ,/_ (M?"KXLZ?\ VM\+/B9X?\2VAACF%SX?UF"\
MC\MP2C[H78;6P<'H<'%:/B7Q7X6\%Z2^O>,?$NGZ38QL%DO=3O$@B4GH"[D
M9^M9O@;X2?"GX8/<R?#7X8^'O#S7H07C:'HL%H9PN=H?RD7=C<V,YQN/K5[Q
M=X)\&?$#16\.>/?".F:WISR*[V&KV$=S"S*<JQ212I(/0XXH _CQ_P"#C+XR
M_#'X^_\ !9OXU_$SX.^-M.\1^'KB^T>RM-9TB[6>VN);31+"TG\N1"5=5G@E
M3<I(.S()%?MQ_P $"?\ @L#_ ,$U/A;_ ,$F_A/\(/C'^V1X&\'>*_"&EWFG
MZ]H'BC64L;F"07US(C*LN/-1XGC<,FX?-@D,"H_2K_AD_P#99_Z-J^'_ /X1
MMC_\:H_X9/\ V6?^C:OA_P#^$;8__&J /S9_X**_\'4/_!.[]DOX):CX&_80
M\5Z=\2_'[6#VOAJQ\.Z7)%H.C2L"$N+B=D2.2-#EA#;[RY 4F,-O'NW_  1_
M^+GP\_9/_P""(_PG^/'[7?QFTKP]!K>AWWBWQ-XK\6:FD'VR[U:_O-5>1G<@
MRS2"X+!%!=^B@\"OK#_AD_\ 99_Z-J^'_P#X1MC_ /&JW]>^$OPJ\5>%K+P-
MXH^&?A[4M$TSR_[.T>_T6":UM?+0QIY<3H4CVH2HV@84D#@T ?E/_P $0/\
M@HW^R]^WY_P4,_:6_;:\??%C0M$\6:M>:5X.^$_ACQ+JT-I>VW@ZV\QX_L\<
MK NUS<XGG1-VR7:. RY_72[N[6PM9;Z^N8X8(8VDFFF<*D: 9+,3P  ,DFN'
MM?V6?V8[&ZCO;+]G+P'#-#('AFB\(62LC Y# B+((/((KM[^PL=4L9M,U.SB
MN;:YB:*XMYXPZ2HPPRLIX92"00>"#0!_(?\ \'.WP:^ WPG_ ."M7C'Q%^SW
M\0?#^N:5X_TNU\5:O;>'M2BN8]*U6Y>6.\MY&B8A99)8#=E3R!>+Q@BOV _X
M-3O^"M'PW_:'_8OT?]B#XQ_$S3;'XE?# C2?#UAJVHI%/KNADYLVMPY!F> 9
MMFC0$JD4#'[]?IM_PR?^RS_T;5\/_P#PC;'_ .-5:T/]FO\ 9T\,ZO;>(/#?
MP"\%:??V<RRVE]8^%;.*:"0'(='6,,K#L0<T ?B!_P 'I?[2WP%\?_"/X,?!
MCX?_ !<\.Z]XDLO%6HZIJ6E:+K$-U+8VPMDB5YEB9O*WNY"[L%MCXSM..!_X
M,J/VC_@9\(O''[0'PQ^*GQ7T#PYK'BJS\,7?ARTUS5HK0ZBEFVJK<"(RLH=D
M^UP$J,MAB<8!(_?-_P!E']EN1R[_ +-G@!F8Y)/@ZQ))_P"_5'_#)_[+/_1M
M7P__ /"-L?\ XU0!^9O_  =)_P#!&N']N/\ 9]'[</[.GAE;KXH_#C1V?5;/
M3HMTGB?0$S(\:A?]9<6^7EBQRZ&6,;F,0'Y'_P#!N7_P68NO^"7/[4#?#_XQ
M:[<?\*8^(MU%;^+XCND70[P?)!J\:#)^0828*,O"<X=H8UK^MZVMK>SMX[2T
M@2**) D44:A510,  #@ #M7"/^RE^RY(YDD_9L\ ,S'+,?!UB23_ -^J .E^
M'_Q&^'WQ9\(V7Q ^%GCK1_$N@ZC%YFGZUH.IQ7EI<I_>CEB9D<>X)K9K-\)>
M#/!_@'1(_#7@7PIINBZ=$[-%I^DV$=M C,<L0D8"@D\DXY-:5 !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% '-_&'XP_##]G_X7Z[\:?C1XVL/#GA7PUITE]KFMZE+LAM8
M$'+'J6).%55!9F954%B ?PP^+G_!S5_P4&_X*/?M2VO[&?\ P1"^ UKICZE<
M21V/C+Q3IT5UJ,L$?^LOWBFS::?;*#D^<LS$;/NNPBKDO^#S_P#X*">*]2^*
M'@O_ ()O>!M<EM]!TO28?%7CN*WD(%]>S/(EE;2>JPQ1M-MY5FN8V/,:X]K_
M .#*;]E;PUX6_93^)G[8^HZ5$VO^+?&/_"-:==R1@O#IMC!#,X1OX5DN+D[P
M.IM8\_=% 'TC\)O^"8/_  7+MM#@\8?%7_@OYJEIXPE3S+C3='^#6E:AH]M(
M1S&%N#%YZ9[^5"<=%!YKYO\ ^"J'_!7C_@N#_P $D_A!JGPN_:6^#/P[\8)X
MPL+C2OA[^T5X&6YL(;2[>)OGNK"02(E^B;I4CS'$Q3*^<L<@K]M*\,_X*3_L
M3^%/^"AW[$?Q!_9)\4-:02^*=#==!U.]A+IIFJQ8ELKOY?FQ'.D98+RR;UZ,
M10!>^-'@']ISXL?!72M1_9S_ &G9?A_XH7PV98;BX\*V.JVE_>20QM$;F.X3
M>$5PV?*="1(2<X6OYI?#_P#P==?\%LO$GB2Q\+6'Q?\ !HNK^^BM81)X L0!
M([A!GY.F2*_JP\*:1+X?\+Z;H-Q*LDEE80V[NG1BB!21GMQ7\('PC_Y+QX8_
M[&ZR_P#2I* /[A?V=OA;\?/ASHG_ !?W]J"]^(VJSV4*3R-X5T_2K2"=1^\>
M".VC$@5B>%DDDP .<Y)^/O\ @NW\5_\ @H_^P]^R7XP_;F_9$_:TL8-.\*7M
MC+JW@3Q%X"TZ[C2RN+F&T+6USL63<DLR2$2[\J7PPV@']"J^&_\ @Y/_ .4(
MGQZ_[ FE_P#IYL* /6_V1OA3^V_<?L\6&K_M2_MG7.K^./$?ABUFN9/#G@C2
MK*ST"[D5)7%NC02&X*9,6Z8E7&6\M"0%_)+_ (+1?\%8/^"W/_!+S]J_Q!\'
M_AU^TCH'C/P?IGAC2O$"ZY>_#/3HKFQM;^>XMHDN1&NTD3VSIYBA5.^/Y5+8
MK]X/ '_(B:)_V"+;_P!%+7YL?M=?LF^#?VZ/^"NWQ^_9,\=>6EEXV_8;TFQ@
MNY4W"RO!XDO9+2Z [F&X2&4#UC% 'C__  ;3_P#!?S]HS_@HM\?/&W[+G[;7
MBK1+WQ&V@QZUX"O-,T:&P$T<#E+VU98P!(^V6&5.,A8IB<@#'[.U_#S^R_\
M&KXQ_P#!+7_@H3X<^*]WHMS8>+/A#X_>W\1:(7VO(+>9[74+!CV$D7GP$^CD
MU_;#X,^+_P ./'WP@TOX]>&?%=I-X2UGPY#KUAK;RA(&TZ6 7"7!8\*GE,&)
M/04 ?F)_P<@_\%D/VK?V +_P]\*/V%;W2HO$FE^&V\7_ !,U34](BO4TO1I;
MZ#3+"/9*"H>>[F?_ &@( 1\I:OCS_@C-_P %O?\ @LC_ ,%3?VZ]"_93\1?M
M2>&/"^C3Z3>ZMKFKV'PUT^:Y6VMHPQCA5UVAW=D3<V0H8MM;&T[G_!1'0=6^
M/G_!$7]J7_@J[X\TV:+5/VBOBCX?E\%0WD966P\%:7K$%EH\.UO]6TJI-<OM
MP'\Y&(SS7RI_P9]_\IAK7_LF>N?^V] '](GQR^"_[7.I?!2/2O@5^VEJ.B>,
M](TB],>N:QX)TF]AUB[;YX#=0"",1HF/+Q 8R5;+;F&3_-CX0_X.M/\ @MEX
MT\6:7X.TKXQ^#%NM6U&"SMC)X L0HDED5%SA.F6%?U<7?_'I+_US;^5?P<_L
MZ?\ )P?@3_L<M+_]*XJ /[A/V>OA?\=OAQHS+\=_VG;_ .(VISVL*RRR>%M/
MTJU@F4'S'ABM8PX5R?NR228"C!SDGXT_X+Q_%_\ X*1_L)_LF>+/VZ/V2/VM
M+&/2O"^I6+:SX%\1^ =.NHXK.ZNH;,-;7(19-R33QL5DWY5G.X;0#^B-?"'_
M  <T?\H.?CO_ -@_1/\ T_Z=0![7^RU\'_VWA^S_ &MQ^U!^VE=:MXZU[P]:
MR75SX;\$:396F@WC;)9!;(\$AGV\Q;IB0PRP1"1M_&O_ (+5_P#!:W_@L=_P
M2E_;DU']EWPS^U1X9\5:)+H%EK>A:IJ'PUT^&Z%M<>8OE3!%V%T>*1=RX# *
M=JY*C^@SP]_R +'_ *\XO_0!7\MG_!Y#_P I<M/_ .R0Z-_Z57] 'ZW_ /!
MO]H+_@HY_P %)/V4K+]LO]IW]L:*UL+SQ9<V>F>$O"O@#2K=9[:TD5)#<7$L
M,C_O'WKMC"%57(?+?)^F%?FC_P &D_\ RA;\'?\ 8X>(/_2YZ_2Z@ HHHH _
M/;_@XV_X*P^)O^"6?['VAZQ\&M5M(OB9XX\5VUIX6BN8UD6.SM98[F_G9&X:
M/RQ';'N#>J1TK[*_96_:,\ _M=?LW^"?VF_A?=>9H7CCPW:ZO8*7#/!YL8+P
M/C_EI$^^)QV>-AVK^9[_ (.:O%7Q[_;;^+VH_M^Z#:&X^ W@OQ_>?"+P-?QN
MQ6>^L8A<7E\H VM%<71NXTF!PRV2K_"*^TO^#+[_ (* ?\)G\(O&_P#P3F\=
M:WNO_!\[^*/ D<TG+:9<2JE];H.RQ73QS8ZDWTAZ+0!^YU?D+XL_:J_X+S?M
M6?\ !8#XW_L;?L._%GP-X2^&'PJU'3TU'Q3XM\&074.FI<V,$R6X8(TES<2.
MTS*G "H2SJ-N?UZKA?A!^SQ\.?@CXK^('C7P3;7/]H_$OQC_ ,)+XGN+J1'+
MW@L;2Q54*J"L2PV<6$);#,YS\V* /QK_ ."V?[?O_!<#_@C/X=^&^MZY^WSX
M$^(#_$*YU2'R+3X*6>FBP-FMJQ.YIYO-#_:<=$QL[YXD_P"")?[>_P#P6]_X
M++^&/B-XBT?]OSP+\/F\ 7FFVY@N?@E9ZF+\W:7+ [EN(?*"_9\=&SO[8YP?
M^#Y#_D1?V;O^PMXI_P#16EU-_P &.7_)-OVC/^PYX9_]$ZE0![-X:_:M_P""
M\?[*/_!83X(_L9_MN_%KP1XN^%WQ4U._33/%?A7P7;VD6J1VUC--) 3L$EK<
M1N(69,D%7!5W!./0/^#@O]IG_@H__P $S_V:Q^V+^S!^U];7.E2^-H=-U'P=
MXH\ :7<"T@NQ,T1M[F.)'*Q-&L>V4.S*X8R94[_T!^,/[.OPV^./BSX?^-_&
M]I<'4OAIXP_X23PO<VLBHT=X;*ZLF5R5):)H;N7<@QEE0Y^6OST_X._O^4.N
MH?\ 92-#_P#0IJ /CK_@AY_P69_X+$_\%:?VVQ^S3XM_:J\.>%=!TSPG>>(M
M=U+3/AMITMW);P2V\ AA\Q=BNTMU%\S!@%#':3@5^EW_  5K_P"'FO[/'[%^
MM_M&?L/_ +4XO_$'PY\,-J'B'PYXC\!:9=GQ#;0.\MU=(\<4?D3I 2PC12CK
M;A0H=RQ_%3_@RY_Y2L>,/^R$ZM_Z=M'K^H2\L[34+26PO[6.>">-HYX)D#)(
MC#!5@>"""00>M '\Q?[#7_!S+_P5B_:=_;#^&O[.WQ4_:H\)^$= \;>,;'1=
M1\11?#C3Y6LQ<2B-2 P"@L[*@9CM7=N.0"*_I9^&GA?Q;X.\(6^@^./B7?\
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
MW''EXVG=D?8G_!X=_P H@&_[*EHG_HNZK\T?^#*G_E*;X^_[-_U7_P!/FAT
M?K)\=_V<O^#E+P9X+O=>_9__ ."C_P '_'6K6L)DM]!UCX/V^B/>8&?+CF\R
MXC$A/"^843.-SJ,D1?\ !NG^WW^W=^W'X#^,^F?\% FMH?&?PV^(4?AZ73(O
M#T.G2Z>ZP$SP2QQ  NLBD9/IQQ7N7@/]MRV^*?\ P6+\8?L6>!O&R7NC_#GX
M(P:GXIL+9T:.#7+K4X]L;D#(DCM/*)&< 7.",@X]:^"W[*G@SX'?'GXM_'7P
MI?$7'Q=UG3-5UK3EM@D=O=6>GQV1D4@_,9$B1VX'S;CR6)H _-75_P!JC_@O
M9^UM_P %<?CG^R'^Q-\7? OA#X6_"G6;2"_\5>+?!<%U%IZSVD4L=LI"&2ZN
M'8RL$R %4EG7*[O*?^"VW_!0;_@M_P#\$9=*^&>H:W^WMX$^(+_$635D\JU^
M"EGIHT\V*V9/S-/-YH?[7Z)CR^^[C]F?@Y^SQ\.?@9XA\>^*O UM<"^^(_C.
M3Q/XFGNI$9I+UK2UM,(552(UBM(@JG)!W'/-?B/_ ,'RW_( _9F_Z_/%_P#Z
M!HU '6_\$3OV[O\ @M]_P64\%_$+Q=H_[?\ X%^'S> ]1L+3[-<_!&SU,7QN
M8YW#;EN(?*"^3CHV=V>,8/I?@;]J_P#X+O?LM_\ !9+X*_L3?MS?%?P1XL^&
M/Q2N]4.E>*O"O@R"TAU:.UTZXG>'=L$EM/'(L!>/)&UUVLX)->0_\&/'_)'/
MVA/^QF\/_P#I/>U^SOQ=_9T^&OQK\;_#SXB>-+2X_M;X8>+)/$/A:ZM9%0I=
M2:?=V$B2$J2T30WDA* KETC;/RX(!^=/_!Q#^UQ_P4J_X);_  *TG]K7]FC]
MK>RO-#UOX@C0[WPAXC^'VFSG3DN8+JY@:"X2-6:.,6QB(D#NV]6WY#9^6_\
M@@]_P5]_X*^?\%=OVP=5^ WQ _:OT'PIX=\-^"[CQ#J]]HWPVTV2[N ES;6R
M6\1E0I&2UR'+LK +$1MRP(^C?^#S/_E$UX?_ .RU:/\ ^F_5*^ ?^#)S_E(?
M\4?^R+S_ /IVTZ@#^D-/"'C./X8-X+_X6OJ3ZZ=,:W7QC)IMG]J$Y4@7/D"$
M6Y8$@[/+V<<BOS+^(WQ1_P""TWAC_@LQX3_X)R>'OV[?#<O@3Q3X"F\:_P#"
M877PITXZC9Z;!++!-:F)<1R7'G)&HD&U-LZN5)4H?U7KX%^*7_*RK\*O^S3]
M>_\ 3W%0![[^T7\'?VR3\#IY?@)^VY?Z+XOT/PY=/#J.M^!=(O;;6+U=\D;W
M,2P1^4O2+]R4 4!B&8'=_.W\!/\ @Z)_X+1_&_XZ>"_@M_POWP?I?_"7^+-.
MT3^TO^%;6,_V3[7=1P>=Y?R^9M\S=MW+G&,C.:_J/\9_\B?JW_8,G_\ 1;5_
M#;^P3_R?/\%_^RL^'/\ TYV] ']2G[1/P!_X.,OA;X U#QO^SG_P46^%?Q0U
M?3;9[B+PCKGP1M]!?4=JDF&&9+JX7S6QA0[1J3C+J.:^)O\ @F;_ ,'@GC;Q
MI\==,_9Z_P""FWP@\.>&K;5=472T\?>%H+BR32+HOY8&H6EQ)+B/></*CIY6
M,F,C<5_>:XN(+2![JZG2**)"\DDC!510,DDG@ #O7\-7[:NK:'\>/^"@WQ:U
MWX%6#ZMIOC/XR:]/X-M=+A,C7D%WJT[6B0HHRQ=9(PH YR * /[>/BCX8\9^
M,O U[X>^'GQ,NO"&KW 3['XAL],MKQ[4AU8_N;E'C<, 5((SAB00<$?SM?\
M!4O_ (+E?\%X/^"7G[9?B/\ 9+\=_M%^ ]?738H;[0M?L_AY8QKJ.G7"EH)G
MB(8PR8#*\9)VNC89EVLW]"G[/'A;Q=X&^ '@;P3X_NS<:]H_@[3+'6YS)O\
M,NXK2..9MW\69%8Y[YK\NOVX/^"7_P '?^"K?_!3+]J;]G[XC"+3M>L_@GX$
MO_ ?BT0;IM#U02:L$DXY>!Q\DL7\:'(PZHR@'H?_  ;M_P#!=VT_X*G?#._^
M"_[0U_IFG_&_PE$USJ$%G"MO!XBTTOA;ZWB'"/&66.:-> 2CKQ(53[M_:2^&
MOQ]^)/A!;+]G?]I27X:ZY!%,8=0;PG9ZQ;7$C*/+\^&Y 8HI!.(WC)W')X%?
MQ=WME^V%_P $C/VZ/)F-[X'^+'PH\2!D=#N3>HX8=%N+6XA?W2:&;G*M7]<_
M_!(W_@J-\(?^"KW[)NF_'OP"8--\26&RP\?^$1/NET34PF649Y:WDP9(9/XD
M.#ATD50#YU_X(B?%K_@K5^V;IOB_XP_MG_M9Z%9Z3X$^*>I>#W\&>&/A]81M
MJLVFNJ7<DMVR[HXFD8QJ$4/^[9MRY%?=OQ$_:O\ V8/A#\4- ^"?Q5_:(\$^
M&O&'BI0WAOPOKOB>UM+_ %,%S&I@@ED5Y-S@HNT'<P*C)!%?,7_!"?\ Y(?\
M</\ L[3XC?\ IX>O$?\ @NW_ ,$+/V'_ -L7QS-_P4-_:9_;&U?X-V_ACPS!
M8>*-8DC@GL)+>&1C RK*5>.<M*8PJ%O,8QA8]Y.\ XCPE^WM_P %8M0_X.D-
M1_8;U;6C_P *=M=/GNY/"BZ/!]BB\.#2_-@U07'E^<96NVB0OO(\US#@*,#]
M1?AA^U/^S/\ &SQWXB^%_P '?V@?!GBKQ)X1E\OQ1H7A[Q-:WEWI3[BN+B*)
MV:+# J=P&&!4\@BOP+M?V@/$-U\/H?VS?%/_  41^)6F?L^>(5/[/]G^T0_@
M"U/C>6RMUDU))IE3=(EA)(US!]J4&_W0*S ,YV_H)_P0G_X(;_L8_L ^(+W]
MMS]FS]JW5/B^?'?A-M,T#Q)&]O'IHTR6XBFEV+ 6\V4RVT0+,WR&-EV!MU '
MZ6T444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!_)
M1_P=D^%/$?AW_@M?X_U?6XI%MM>\,^'K[1RXX>V73(+9BOMYUO./J#7[ _\
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
MN?.RAFOPTDF,96>1>AK^:G_@FA^V5XK_ .";W[??@#]IZT6<1>$_$8@\4Z?
MX)N]+ES;W]O@':S&!Y-F<@2*C?PBOZ^_^'3O_!++_I&G^S__ .&;T/\ ^1:_
MFU_X.GO^"<G@;]@[_@H+:>,_@CX%TKPW\/OBIX?35M#T+0K".TLM,OK;;;WM
MK!#& L:9\B<!0%!NRH "XH _JZ\+>)_#WC?PQIWC3PEJ\&H:5J]A#>Z9?VK[
MHKFWE021RH>ZLC*P/H:OU^4?_!I1_P %%;']JK]@)?V4?&_B-9?&_P $W738
MH)Y<S7?A^0EK&90>JP_O+4@#"+#!DYD&?U<H _!?_@^0_P"1%_9N_P"PMXI_
M]%:74W_!CE_R3;]HS_L.>&?_ $3J55/^#Y*^LU\*?LV:8;A/M#:CXKE6'=\V
MP1Z2"V/3) J;_@QPO;5_ 7[1^G+<*9X]7\+R/%N^8(T6I@-CT)5A^% '[SU^
M7/\ P=_?\H==0_[*1H?_ *%-7ZC5^6?_  >#7UI:?\$>[F"YN$1[GXFZ'%;J
MS8,C@7#E1ZG:C'Z*: /S#_X,N?\ E*QXP_[(3JW_ *=M'K^HBOY<_P#@S O;
M6U_X*N^*H+BX1'N?@=J\<"LV"[C5-(?:/4[58_0&OZC* /Q;_P"#RW]@3_A;
MG[*WA3]O?P3HOF:W\+KX:3XKDAC^:70KV4+%(QZD07C( .@%[*QZ5\>_\&@_
M_!2_PK^R_P#&GXC?LE?'#QK#I/@OQ;X<NO%FE7M]-MAL-1TNV>:\/L)+".21
MCS_QX1@=:_HX^/GP3\!_M)?!'Q;^S_\ %#3!>>'?&?AV[T;6(,#<8+B)HF92
M?NNH;<K=58 CD5_(+^QY_P $COBY\5/^"R]K_P $P?'EM=0R^'/'%W9^/M0M
M T070K-F>ZN48<JEQ; ")CPQNHA_%0!_2A_P1:\#>*OB/\/_ ![_ ,%-/B[H
MDUGXP_:;\3CQ'I]G>+^^TGPE;H;?P_8'MQ9C[02.&-WDC-?;%5=#T31_#.BV
M?AOP]ID%EI^GVL=M8V=M&$C@AC4*D:*.%55   Z 5:H _EA_X/)/^4N&F_\
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
M7:+0O$O_  0@^$/A[4+>VOK9F\46FI64\:R1NK^(=3+12(<@ADD&5(P0WH:
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *^3_P!M
MG_@B%_P3'_X*!:Y/XV_:)_9@TJ7Q3<<S>+_#EQ+I6IS-P-TTMJR"Z8 8!G63
M X&,"OK"B@#\V? __!KA^P1\/;(^'?#?[07[1,'AYL"3PM;_ !;DM]/=<DE#
M';P1L0<\_-V[<Y^P?V./^"?'[&O[ /@^X\%_LC_ /1?!\%\5.J7]LKW%_J)7
M.#<WD[///@DD!W(7<=H&37LM% !7@W[<W_!,S]B+_@H]X2M?"G[7OP)TWQ,^
MG*PT?6DDDM-3TW=R1!=P,DJ(3@F,L8V(!96P*]YHH _+SPA_P:2_\$T/A_KD
M^K^!/BU\=]%@NAMN],TGXCQVT$Z\_*YCM%E88)'+]#7VK^Q1_P $Y?V,O^">
M?A*]\)_LE_!#3O#)U5UDUS6'FEN]2U5QDAKF\N&>:4 LS!"VQ2S;57)KVZB@
M#(\>^"M-^(O@_4/!.L:IJ]E:ZC!Y4UUH&MW.FWD8R#F*YM7CFA;C[R.IQD9Y
MKX[TS_@WG_X)?:+\93^T9I'P\^(-M\06O&NW\<P?&[Q2FL-<,NUI3>#4?.+E
M206+9(.#Q7VW10!F^#?"MAX'\*Z?X/TS4-3N[?3;1+>&YUG59[Z[E51@-+<7
M#O+,Y[N[,Q/))K ^!/P ^#W[,WP\3X4_ KP)9^&_#T>J7^HQZ78AO+6XO+N6
M[N'&XD_---(0,X4$*H"JH'8T4 ?+G[6__!'7]A[]NR_:X_:NT/Q[XQL_[3?4
M+?0M0^+OB%=+M+A@P,D%E'?+;P$!F4;$7:I*C XKRWX=?\&T/_!'WX0>-M.^
M)7PG^ /BCPQXBTB?SM*U[P_\6_$EG>6<F"N^*:*_5T."1E2."1WK[UHH Q/A
MSX#TKX8^"['P+HFKZW?VNGJZPW?B/7[K5+V0,[.?-NKN22:4@L0"[DA0%&
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
M4LH\M7,KJSM(6D8EV+'P%?\ @U:_X(=HP=/V2-1!!R"/B3K^0?\ P-K]#J*
M/A6\_P"#;[_@DSJ.EG0]0^#GC6>R92K6<WQE\3M$5]-AU#&.3V[U>_9Y_P"#
M=?\ X)&?LL?&OPY^T-\$?V9;O2O%GA/45OM!U&;QSK%TMO<!2 YBGNWC? 8\
M,I&>>U?;E% !6)\1? >E?$[P7?\ @76]7UNPM=0C5)KOPYK]UI=[&%=7S%=6
MDD<T)RH!*.I()!X)%;=% 'P5\0_^#9__ ((]_%WQKJ/Q)^*_P \4>)O$6KS^
M?JNO>(/BWXDO+R\DP!OEFEOV>1L #+$G  [5ZQ^R%_P2#_8G_8.OXKC]E+1O
M'GA*RCOS>R^'[7XM^(9=)N;@KL,DUA+>M;3,5 !+QDG:OH*^G:* /+_VP/V,
MOV:_V]/@G=_L\_M6?#*W\5>%+R\@O&L9;J:WDAN(6W1S13P.DL+C++N1E)1W
M0Y5V!^7/AQ_P;2?\$@/@[XVT_P")7PD^ GBKPOXBTF;S=+U[P]\7/$EE>6DF
M"-T4T-^KH<$C((X)'>OO.B@#Y)_:=_X(C_L!_MGW5O/^U/X>^(?CJ*RNY;G3
MM/\ $/QG\2SVEE+)G>T%N;_RH20=OR*/E 7H *\MTO\ X-;?^")NB:A#JVB_
MLKZO9W=NX>"YM?B=X@CDC8=U9;X$'W%?H110!\#^)_\ @V7_ .".GC=D;QI^
MSWXGU<QG,9U3XM>)+C:<8R/,OSCBO7_V$_\ @D!_P3]_X)K^+=>\<_L=?!*;
MPOJGB73H[#6+NX\3:CJ!FMXY/,5 +N>4)\W)*@$X&>E?3-% $.H64>I6$^G3
M2S(D\+1N]O,T<BA@02KJ0R-SPP((/(-?%_Q\_P"#?/\ X)A_M4>+XO'_ .TI
M\-_'?CS6H+46UMJ7BSXS>)K^6" $L(HS-J#>6F23M7 RQ.,DU]K44 ?%G[/_
M /P;^?\ !,O]E+Q3<>-OV9_A[X]\!:M>6WV>]O\ PE\9_$UA)<PYSY<IAU!?
M,3.#M;(! .,BOM"V@2UMH[6-W98T"JTLA=B ,9+'))]SR:?10 5\%_MD?\&U
M_P#P2;_;4\?7OQ6\9_ V]\(^)M4G:?5M7^'NKMIGVZ5CEI)+?:]L9&)+-((@
M[DDLS'FOO2B@#\W_ (6_\&LO_!,/P&MCIGCK5OBU\1M$TZ19+3POX[^(\TFF
M(RD%<V]FELK $#Y3E3C!!'%?H5X#\!>"/A=X-TSX=?#7PAIF@:!HUFEII&BZ
M-9);6MG @PL<448"HH'0  5K44 >1?M6?L1_!']L_P /R>#_ (Z:EXXET6XT
M^2QU#0_#?Q*UK1++4+=R=\=S!I]U#'<@@D$2ALCCIQ7R</\ @U:_X(=*0R_L
MCZB"#P1\2=?_ /DVOT.HH \^_9Y_9I\ ?LR>&IO"'PZ\2^-K^PD6)8X_&GQ"
MU;Q ULD:E42%]2N9VA3!QM0@'"Y' QXG^VS_ ,$2_P#@FC_P4-^*MM\;OVKO
MV<TU_P 4VVE1Z=_;%CXCU#39)K>-F:-919SQ+*5WL [@L%PN<  ?5M% 'R#^
MSW_P0T_X)]_LF:;J^C_LQZ'\2_ -IKRC^UK;PE\</%%A'<L"-LC+#J"CS %P
M)/OA20#@D'!\*?\ !O+_ ,$O/ GQ>;]H+P7\./'^E>/'NI+F3QII_P ;/%$.
MJR329\R1KI=1$K,^3N)8[LG.<U]N44 9_A/PW9^#O#&G^%-.OM0NH--LX[:&
MXU;4IKVZE5%"AI9YV:69R!DN[,S')))-7;BW@NX'M;J!)8I4*21R*&5U(P00
M>H([4^B@#RG]D']C#X#?L,?#S6/A-^SEX<FT;PWJWB[4/$*Z,9@T%A<7CJ\L
M-N H\N!2OR1G.P' .  /5J** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH Y#XW?M _ O\ 9I\#2_$S]H7XP^&O!'AZ&58G
MUGQ5K4%C;&5@2L8>9E#.<'"#+'' -8O[.7[8O[*7[7NC7>O_ ++O[1/@[Q]:
MZ>ZKJ1\+>((+Q[-FSM$R1L7A+8. X&<'%>??&7_@F5^S;^U3^T#=?';]LCPC
MIWQ3@TZSBL/ '@[Q3IXFT;PS:^6AN76T=FAN;NXG#.]S(FX1);Q*JB)GD_-_
MPU_P3K\/_L4?\'27PTTS_@G/X=F\+>"]:^$]WXE^+WAG2I7.FZ792?;K38RD
MD1PSW,-FT4)X69=Z (H"@'[55XU-_P %%/V"[?XU?\,YS_MC?#5/'/V\6'_"
M+MXRLQ=B\)P+79YG_'QG_EC_ *S_ &:^1O\ @Y]_X*'?$#]@[_@G8V@?!#7[
MC3/'GQ7UU?"^AZE8R%+G3[1HGEO;J%ARLGEJL"LN&1KI74@J#7O'AW_@E3^S
MI8?\$M(_^"95YX&TO^P)_ 7]EW]R;12\FL-!\^KEL9-U]K_TD2]0X&. !0!]
M35YG^T/^V9^R;^R5%I\O[3/[1O@WP*VK,PTN#Q-K\%K->!?OM%&[!Y%7^)E!
M"_Q$5\"?\&\/_!5'Q+\9O^"57C;Q'^UMXENKWQ-^S6=0L?&6KW<OF75YI%G:
M-=07,SD_/*L4<\!8G+FUWL2SL:H_\&S%UXE_;2\.?&+_ (*Z_M%V\>I_$CXH
M?$6ZT31;JY'FC0?#ME%"T.FV189A@$L\B,JXW_9XV?<V30!^G?P\^(_P]^+O
M@O3_ (C_  I\=:/XF\/:M!YVEZ[H&I17EG=QY(WQ31,R.,@C()Y!%;5?D?\
M!?XOS?\ !-+_ (.4O$G[ 7AEUT[X1_M,>%H_&6@>%XODL]$\1&"X\ZXMT^[$
M+F33KQ710 SRP]!&HK]<* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@#G/BSH/Q,\3> K_0OA!\1+#PIK]S'LLM?U'P__:D=H<\N+;SH0[8Z
M;GV@]0W2OPUU'XL_\%4?^""?_!6GP[K_ .V-\>++XT_"O]IKQC:V/B+QH=$C
MM9YI$:*U1Q& 6L);-)XW2T1WMGA+JGS9,7Z*?%3_ (.!O^"</[/_ .VKXD_8
M7_:/\;>(_AWXE\."#=XA\7>''@T2_,L*3+Y%RC.P7:_^MECCB)4A7;C/EO[7
MND^!?^"X_P"T/\!?AU^SA:W/B'X._"7XD0>/_B'\6TT^6+2+V6TC9;70]-GE
M51J$L[2$SO!NB@C"DN7(2@#YI_X/'K.[D\=?L=ZA>[AHL7CW6H]28_<#M+HQ
M3/;[B3=>V:_<&OAC_@X5_P"":OBC_@IC_P $]]3\ _":T67XB^"=5B\3^ HO
M,$;7EU#')'+9!S@*9H)) F2%\Y82Q !(Q]*_X+J_L[WG[ 4'Q#'C"*;]H)_"
MQTL_ 2"!F\7'QFMOY;:=_9 'VL+]K'^M,6P1?.3CB@#\I_\ @D'I_B;7?^"=
MG_!5O7O#*2M8WWA:8V1B!VLJ6_B&6X Q_P!,'3/L17Z6_P#!I=]@_P"'*W@C
M[(P,G_"5^(/M6.TG]HRXS_P#976_\$(O^"3DW["'_!,>Y_9]_:.T."Y\6_%5
M[W5?BCIK2B40_;+=;8:<TBDA_+ME57()7S9)MI(()\0_X(Q^-/!__!$J_P#B
MQ_P2[_;\^*FC^ ],TCQO=^*O@YX^\;:E%INE>+- N8HT<6]W,5@^T0M KRV^
M[S%:X< ,J$@ \J_X*V)>:W_P=E_L<Z5X>!:[M?!VAS7/E]1"NK:Y)(#[")7)
M]C7[@U^6'[$7[/.N_P#!0O\ X+<>,_\ @M#JWAG4+/X2^"?#,?A+X"7^KV$E
MM+XE?[,T%SJ\$<JA_L8\^^$4A4"7[4C*<QN!^I] !7&?&;X&>$/CGIEEI/B_
M5-:M8[&=IH6T75I+1F8KM(8I]X8[&NSHH ^4?VE_V//AG\)/@-XH^)/A7Q3X
MR;4='TQKBT6[\773QEPP'S*&!(Y]17OOP[\):=?_  _T*^N;N],DVC6LDA^U
MORQB4GO[US/[<_\ R:/X]_[ +_\ H:UW7PN_Y)GX=_[ 5I_Z)2@"7_A!](_Y
M^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\
M MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\
M"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH
MQ_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0
M?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!
M](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F
M]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?
MF]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK
M8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"V
MH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,
M?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2
M/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](
M_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_
M\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_
M ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV
M** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_
MX0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\
MA!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^
M?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y
M^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\
M MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\
M"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH
MQ_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0
M?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!
M](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F
M]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?
MF]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK
M8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"V
MH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,
M?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2
M/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](
M_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_
M\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_
M ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV
M** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_
MX0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\
MA!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^
M?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y
M^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\"VH_X0?2/^?F]_\
M MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH Q_\ A!](_P"?F]_\
M"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VK8HH
MQ_\ A!](_P"?F]_\"VH_X0?2/^?F]_\  MJV** ,?_A!](_Y^;W_ ,"VH_X0
M?2/^?F]_\"VK8HH 2-!%&L:DX50!D\TM%% !1110 4444 %%%% !1110 444
M4 %%%% &?K7A+PIXDEBG\1>&=/OW@SY#WME'*8\]=I8''0=/2KZJJ*$10 !@
M #@"EHH *JKH6B)J[>($T>U%^T7E-?"W7SBG]POC=MXZ9Q5JB@ JKJ^AZ)X@
MMELM>T>UO85D$BQ7=NLBAQT8!@1D9/-6J* "BBB@ HHHH \H_;G_ .31_'O_
M & 7_P#0UKNOA=_R3/P[_P!@*T_]$I7"_MS_ /)H_CW_ + +_P#H:UW7PN_Y
M)GX=_P"P%:?^B4H W:*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** /*/VY_^31_'O\ V 7_ /0UKNOA=_R3/P[_ -@*T_\
M1*5PO[<__)H_CW_L O\ ^AK7=?"[_DF?AW_L!6G_ *)2@#=HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH \H_;G_Y-'\>_
M]@%__0UKNOA=_P DS\._]@*T_P#1*5PO[<__ ":/X]_[ +_^AK7=?"[_ ))G
MX=_[ 5I_Z)2@#=HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH \H_;G_P"31_'O_8!?_P!#6NZ^%W_),_#O_8"M/_1*5PO[
M<_\ R:/X]_[ +_\ H:UW7PN_Y)GX=_[ 5I_Z)2@#=HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH \H_;G_ .31_'O_ & 7
M_P#0UKNOA=_R3/P[_P!@*T_]$I7"_MS_ /)H_CW_ + +_P#H:UW7PN_Y)GX=
M_P"P%:?^B4H W:*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** /*/VY_^31_'O\ V 7_ /0UKNOA=_R3/P[_ -@*T_\ 1*5P
MO[<__)H_CW_L O\ ^AK7=?"[_DF?AW_L!6G_ *)2@#=HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH \H_;G_Y-'\>_]@%_
M_0UKNOA=_P DS\._]@*T_P#1*5PO[<__ ":/X]_[ +_^AK7=?"[_ ))GX=_[
M 5I_Z)2@#=HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "JVJ
MZUHV@VOV[7-6MK*'=CSKN=8USZ98@=JJ>-?&GAKX>>%KWQEXOU2.STZPA,EQ
M/(>@[ #JS$X  Y)( K\]/C1\7OB3^V3\7K31?#NEW#V[7!M_#NAQM_JE/61^
MV\@;G8\*!C.%S0!]TZQ^TC\ -"R-2^,OAL,OWDBU>*5A_P !1B:Y76/V\?V6
M](R@^)!NG'\%GI=R^?\ @7EA?UKYVT?_ ()A?&R[P^L^,?#5FIZK'//*X_#R
M@/UKJM'_ ."5C</K_P : /[T5GH?_LS3?^RT ?7]%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 >4?MS_P#)H_CW_L O
M_P"AK7=?"[_DF?AW_L!6G_HE*X7]N?\ Y-'\>_\ 8!?_ -#6NZ^%W_),_#O_
M & K3_T2E &[1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%5]5U?2M"T^75]<U
M.WL[2!=T]S=3+''&OJS,0 /K0!8HKYV^,'_!1SX2^"?-TKX<V<OBB_7*B:)C
M#9H?>1AN?_@*D'^\*\-E_P""E'[13WLES'!X?2-V)2W_ +,<J@] ?,W'\30!
M]]U6UG6=*\.Z3<Z[KNH16EG9PM+=7,[A4B11DL2>@ KX<L_^"GOQVA(%YX1\
M*S#N19W*L?Q\\C]*Y#X\?ME?%7]H?0K3P5?Z=:Z;8^<&GLM)$A^VR9&P/N))
M /(4<9.3D@8 +G[4O[2?BG]J+Q[;^#?!%I='0H+P1:)I<2'S+Z8G:)G4=6;.
M%7^$'U+$_5'[(/[*>E_L_>&/[:U^**Y\5:E"/[0N5PPM4.#]GC/H#C<P^\1Z
M 5@?L3?LA0_"#2H_B5\0K!7\47L/^CVT@S_9<3#[H_Z:L/O'L/E'\6?H:@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** /AO]N[]N?\ X*(ZK\=-
M3_8\_P""2?[,'AWQIXM\*V5M<?$CXA?$&^-MX?\ #$ES$)K?3U EB>ZO7@>.
M<JC$11S0LR.)#L^7_P!F_P#X+N?\%#?V5OV]O"__  3\_P""W?[-/ACPI/X]
MN8+7P9\0_!89+.2:>00P/(?/FAG@>8K&SQF-X"P\R/&2OZW>%O OA#P3-JMS
MX4T"WL9-=U:34]8DA4[KR\=$1II">6;9'&GLL:J,!0*_+K_@OC\#+7]NC_@H
MK^Q;^Q;X#L5NO$VG^+]0\:^+;R!,R:%X6MI;+S[B1OX%F>W>.//#30JN<D9
M/T'_ &UOVPO@Y^P5^S%XL_:M^.^J2V_AWPII_G2P6P#7%].["."T@4D!I996
M2-02 "V6(4,1\HZ;^TC_ ,%E-8_8U_X>/VWAWX3PV<GAL^++3]G%_#-^VI2Z
M!Y7VE8#KOVP;=3:V^<+]A,0D(C*9R1\J?\'F_CWQ!JGPM_9Q_94L-1E@T_X@
M_$B]O=06)L>8]E':VT0/J!_:CMCID ]0*_:2TT?2K'1XO#]KI\26,-LMO':A
M!Y:Q!=H3'3;MXQZ4 >7?L.?MG?!G_@H#^R]X5_:N^ ^I2RZ!XHLB_P!DNP!<
MZ==(QCGM)U!(66*160X)#8#*2K*Q^9OA=^W_ /M0_P#!2[]I#XE_"_\ X)T^
M+?!7@OX8?"#6!H7B#XN^+_"D_B"3Q)KPR9+/3;.*\M(UMH0/WEP\K%P\9C4*
MX>OS6_X()_M,>,OV8_\ @F?_ ,%%/ ?@S6)X8_@]#?ZUX0=93_HE]=6&IVL<
MBG/&'TNV;C^[GJ:^V?\ @T(\$67A7_@CEI?B"VB"R>)_B)KNIW3!<%W22*S!
M/K\MHH_"@#Z&_8#_ ."D/BKXV?M'?$S_ ()Z?M9^%]%\-?'CX2O'<ZE#X=>4
M:3XJT698G@UC3UF9I8D*SP"2!W<Q-*@WOE@GU[7XH_\ !1+Q=>?L^_\ !W7^
MS!XV\(S& ^./AS8:3K\49P+M;NYUK3SO'\0"BW89Z-"I["OVNH ***YGXF?&
M7X7?!NQM=3^*'C6RT2WO9C%:RWKD"1P,E1@'G'- ''?MS_\ )H_CW_L O_Z&
MM=U\+O\ DF?AW_L!6G_HE*^??VN_VN_V:?'/[-/C'PEX2^,>CW^I7^CM%9V<
M$K%Y7W*=HRO7BO;_ (6>,_"S_#'PXZZW 0=!LR#D_P#/%* .PHK-_P"$Q\,?
M]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#
M2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'P
MQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\
M0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH T
MJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?
M#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?
M]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#
M2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'P
MQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\
M0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH T
MJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?
M#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?
M]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#
M2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'P
MQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\
M0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH T
MJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?
M#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?
M]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#
M2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'P
MQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\
M0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH T
MJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?
M#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?
M]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#
M2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'P
MQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\
M0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH T
MJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?
M#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?
M]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#
M2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'P
MQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH TJ*S?^$Q\,?\
M0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[ZH T
MJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?
M#'_0:@_[ZH TJH>*/%'A_P %^'[OQ3XIU6&QT^QA,MU=3MA44?S)Z #DD@#)
M-4-?^)_@#POHUSX@U_Q3:VMG:1&2XGD8X51^&2>P Y)( YKX*_:>_:>\8?M/
M>,(?"?A2TNH= BN@FDZ3&/WEW(3@2R@=7.>%Z*#ZY) .R^('_!2[XGR^.[F\
M^&FDZ;#H,1\NSM-5LS)), 3^]<JZE2W]T' &!R<DZOAO_@J=XDAVIXO^$EC<
MY^])INI/!CW"NLF?IN%=U^R[^R?\)/AEX5;5/BO!H^N:_J4(%U;WT"7%O9(>
M?*16!5FZ;G]1A>,ENK\2?LK_ +'?B?<]UX&TZUD;I)IMU-;;?HL;!?S% '+Z
M#_P4W^!U_#_Q/?#'B+3Y0N2!;13(3Z!ED!_-165XD_X*D_#VTW#PC\,-8OB/
MNG4+J*U!_P"^/-I->_X)Z_LVW\OG:%\2-;T_+?-$UQ%,F/09C##\2:UO#?[!
M_P"R5HNUM7U75-8(^\+[52BG\(%C('XT >5>)/\ @J!\7+_='X7\#:#IR-T:
MY\VYD7Z'<B_FM>=1VW[4O[8.O>81K'B!4E^^Y$-A:'_QV*,X[#YC[U]L^&_@
M;^RCX3VG1OAQX<W)]V2[M!<N/<--N.??-=Q9>(_!>FVJ6.G7UG;P1#$<,"!$
M0>@ &!0!\T_!_P#X)D:!IWE:M\:_%+:A*,,=(TAFCA'L\I =Q_NA/J:^A-(^
M!WP:T+2(M"TSX6: EK",)$^E1/\ B2RDL?<DDUL?\)CX8_Z#4'_?5'_"8^&/
M^@U!_P!]4 8%Y^SQ\!+\'[5\%?"I)ZLN@6ZG\P@-0Z'^S;\!O#6OVWBC0?A3
MHUI?V<OF6MQ!: &)^<,!TR,\'''&.@KI?^$Q\,?]!J#_ +ZH_P"$Q\,?]!J#
M_OJ@#2HK-_X3'PQ_T&H/^^J/^$Q\,?\ 0:@_[ZH TJ*S?^$Q\,?]!J#_ +ZH
M_P"$Q\,?]!J#_OJ@#2HI$=9$$B-E6&01W%+0 4444 %%%% !1110 4444 %%
M%% !1110!Y?^U;^U1X+_ &5/ -MX@U?1KWQ#XDUZ_72O G@71-K:EXHU9U)B
MLK96.!P"\DS8C@B1Y9&5$)KB/V(OV._$'P9UWQ9^U)^T;J]AK_QP^*+PS^.-
M;L=QL]'LXABTT'3=XW)8VJG&X@/<2[YY/F953Y2_;!_X(1_MM?M8_M@ZC^V#
M9?\ !:CQQX"U1;>XT[PEIO@SP-)9IX=TB20-]A@DAU5&;=LC,LI :9D#,  J
MKP_B'_@V_P#V\OB%IC^$/BS_ ,'#OQZ\1>&KYA'KF@7%O?K%J-J3B2!\ZRRE
M77*_,K+SDJ<8H XS_@\ \ 77BW]EOX ?MW?#>2'7]#^''Q!$TU_I,ZSP/8ZG
M';S0W2R(2K0M)8P('!P3<1XSNK]A8?B%X.N/AXGQ6BUZ ^'WT4:LNIAOW9LS
M#YPFS_=\OYL^E<U\7?V7O@5\<OV<-5_9*^)/P]L[[X?ZQX<70[GP\ 4CCLU1
M4B6,CF-H]B-&ZD,C1HRD%0:^3M/_ ."6/[:MM^RZG_!.ZY_X*,6Y^!T6E'0A
MJ,'PYV^.'\.;?*&C'5#?&S51;GR/M0L?,\L ;0?FH _/K_@W8_8M\>_M.?\
M!)G]M3Q[_8\EM=?M%'5="\*"X^43S6]A>^5,">#&+O4FCS_>@D':OK'_ (-$
M/'=OKW_!)"/X;W,;V^J^ _B7KNC:O83J4FMI7>.\VNAY7BZQR.JL.H-?HG^S
M]\ _A-^RY\%O#?[/GP+\'V^@^$O">F)8:)I5L21%$N269F)9W9BSN[$L[NS,
M26)KYI;_ ()G?%K]G/\ :@\?_M1?\$XOCWX9\ -\6I4N_B3X \=>")];T*]U
M5-^-6M%M;ZSFL[EC(YE4.\<Q<DJI"D 'Q%^UMX U']K3_@\"^#/ASPQ UQ9?
M!CX4V6K>+9HAN%BL#:C>PE\=-\VH6"<_\]E-?M)7SI^PO_P3I\$_L<^)O'7Q
MO\4?$"_^(?Q?^*FII?\ Q(^)NM6,=M-J#1KMAM+:VC)2RLXEPL<"LQ "AG?:
MFWZ+H *I:SX<\/>(XD@\0Z#97Z1MNC2]M4E"'U 8'!J[10!XA^VQ\/O .E_L
MI>.=0TSP1H]O<1:&[13P:9$CH=R\A@N0:],^%VFZ</AEX< L(0!H5G@>4/\
MGBGM7%_MS_\ )H_CW_L O_Z&M=U\+O\ DF?AW_L!6G_HE* -?^SM/_Y\8?\
MOT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM
M/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J
M:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\
MY\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT
M*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_
M .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B
M@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA
M_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/
M[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\
M8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"
M'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?
M^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.
MT_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&
M'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^
MSM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_
M0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T_
M_GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\
MOT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM
M/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J
M:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\
MY\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT
M*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_
M .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B
M@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA
M_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/
M[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\
M8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?^_0J:B@"
M'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.T_\ Y\8?
M^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&'_OT*/[.
MT_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^SM/_ .?&
M'_OT*/[.T_\ Y\8?^_0J:B@"'^SM/_Y\8?\ OT*/[.T__GQA_P"_0J:B@"'^
MSM/_ .?&'_OT*/[.T_\ Y\8?^_0J:H[JZM;&W>[O;F.&*-=TDLKA54>I)X%
M#?[.T_\ Y\8?^_0H_L[3_P#GQA_[]"O-/'G[9?[./P^WPZC\2;2^N$_Y==&!
MNV)]-T>44_[S"O&/&O\ P5+T^.;R/AU\+)IHP_\ Q\ZU>B,E<\CRXPV"?7?Q
MZ&@#ZR_L[3_^?&'_ +]"C^SM/_Y\8?\ OT*\_P#@!^T[\-OVA-'\[PU??9-5
MAC#7VB7;@3P^K+_ST3/\:^HR%)Q7HU $/]G:?_SXP_\ ?H52\1ZEX3\(Z%=^
M)O$LMI96%C TUU=3H L:#J3Q^0')/ YJ]>WMGIUG+J&H74<%O!&TD\\SA4C1
M1DLQ/   ))-? G[87[5>K?M!>*$^'?P]-P?#=M=A+6&%&\S5;C.%D*CDKGA$
MZ\Y(R0% ,O\ :4_:-\5_M/\ C>W\(>!M&N(M$2[$6C:1;1?OKV4G ED"_><]
MEZ*#ZY)^GOV0_P!CK1?@=HZ>+?&UK!?>*KR']XQ >/3T(YBC[%NS/WZ#C):+
M]C#]D6S^"6B)XZ\<64<WBN^A^ZP##3(F'^J0_P#/0C[[#_='&2WO= $/]G:?
M_P ^,/\ WZ%']G:?_P ^,/\ WZ%344 0_P!G:?\ \^,/_?H4?V=I_P#SXP_]
M^A4U% $/]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ%344 0_P!G:?\ \^,/_?H4
M?V=I_P#SXP_]^A4U% $/]G:?_P ^,/\ WZ%']G:?_P ^,/\ WZ%344 0_P!G
M:?\ \^,/_?H4?V=I_P#SXP_]^A4U% $/]G:?_P ^,/\ WZ%']G:?_P ^,/\
MWZ%344    P!@#H!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% 'E'[<_P#R:/X]_P"P"_\ Z&M=U\+O^29^'?\ L!6G
M_HE*X7]N?_DT?Q[_ -@%_P#T-:[KX7?\DS\._P#8"M/_ $2E &[1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M12.Z1J7D<*HZDG % "T5FWWC'PCI@)U+Q5IMN%^\9[Z-,?F:YO6/VD?@!H61
MJ7QE\-AE^\D6KQ2L/^ HQ- ';45X_K'[>/[+>D90?$@W3C^"STNY?/\ P+RP
MOZUVGP>^-?P_^.GAN3Q1\/\ 4WG@@N6@N(IXO+EB<<C<O8$$$'N/<$  ZRBB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBO-OVD?VE_!G[.OA;[?JK+>:Q=H?[)T>.3#S-
MTWO_ '(P>K=^@R: +O[0'[0G@C]GOP@WB'Q//Y]Y.&72])B<"6[D'8?W4&1N
M<\#W) /PCJ6L?M#_ +:'Q%GAL8;O5;ALRIIT$_EV=A$#@8WL$0#IDG<Q[DFG
M^%_"OQK_ &W/C!->W=XT\\A5M0U&5"+73+?)PJCL!R%0<L<D_P 35]\?!7X)
M>!_@1X-B\(>"['&</?7TH!FO)<<NY_D.BC@4 ?*_@/\ X)>^.]1V7/Q&^(.G
MZ6AY:VTV%KF7'H6;8JGW&X5Z[HO_  3C_9RTS0Y]+U"UU?4+F>$HNI7.I%9(
M&/\ &BQA4R.P96'KFO>J* /SJ^.7[+WQ?_96\1Q>-?#NI75QI5O<!]/\2:9N
MC>V;. LH4YB;MG)5LX!Y*CW']F/_ (*%:/XJ^S^"?CI/!IVI'"6^O@!+:Y/0
M"8=(6_VON'_8[_3][96>HVDNGZA:13P3QE)H)HPR2*1@JP/!!'8U\D?M.?\
M!.]9/M'CCX 6X5N9+KPR[\'N3;L>G_7-O^ GHM ',_MQ_M@M\1+V?X/_  PU
M(G0K>79JNH0/_P A&13_ *M2.L2D=?XR,] "?1OV&OV/1X"M+?XQ?$_2_P#B
M>7$>_1].G3G3XV'^L<'I*P/ _@!_O$A>=_8<_8QNK>[@^,GQAT*2%X)-VA:)
M>PE6#J?^/B5&&1@CY%/?YC_#GZ^H **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@#RC]N?_DT?Q[_ -@%_P#T-:[KX7?\DS\._P#8"M/_ $2E
M<+^W/_R:/X]_[ +_ /H:UW7PN_Y)GX=_[ 5I_P"B4H W:*** "BBB@ HHHH
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
M:*;5HR?5PC=VCV=]=SJX<JYGC< L;F6&C0K5-7!/FE%=%.5E>7=6TVW1\[?
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
M4+>*Y1F Y.%$9&?J<5W%C^TFFC:=#I'A_P"'MG96EM&([>VAN-L<2#HJJJ
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
M8ZL3U 7 !Z+\-?AWX:^%/@C3_ 7A*T\FRT^ (A.-TC=6D<]V9B6)]36[110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% 'E'[<__)H_CW_L O\ ^AK7=?"[_DF?AW_L!6G_ *)2
MN%_;G_Y-'\>_]@%__0UKNOA=_P DS\._]@*T_P#1*4 ;M%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 445XQ^U;^U_X>_9WL
MDT#2+./4_$UY 9+:R=_W5JAX$LV#G!.<(,%L'E1S0!X__P %5OVK]>\)>%?^
M&6_@S<L_BGQ-9YU^\@DP-*TQ\J0S#[CS<J.X0,<99#7Q)\(/@5!H.H6UIH^G
M3:OKUTPBA,$!=RS<;(D&3STSU//0'%>P_#3X7?$_]JGXL:A_93B[U749S?:_
MK%V=L<(8[1)(0.!QM1%'1-J@*O'WI^SU^RK\-_V>M,$FBVW]H:W+'MO-<NXQ
MYK^JQCGRD_V1R>-Q; KZ^KQ7C<+D"R7+[TJ$M:C6DZTGUD_Y$M(P6EOBYFSX
MZEPE@<7Q \[S&U:O'2FGK"C%;**ZS;UE-ZW^'E2/ESP=_P $S_C?KMI#?>)M
M?T315E0,UO)-)-/'GLRHNS/T<U>N_P!D3P3\(O%,$5YXY?Q%?VAWS1K8""WA
MD[*1O<NPZ]0!QGT'U/\ &GXKQ^!]..BZ-,K:K<I\I'/V=#_&??T'X_7SWX,_
M"NX\=ZH?$?B%'.FPRY<R$YNI,Y*Y[C^\?P]<?QIXO>(&<Y[G$?#[@]\V,K:5
MZB>E&#^*/,MGRZSEO&/NJ\Y6C^P9%EF'PU!YIC]*<?A7\SZ.WY+J]=EK8^%7
MP'?QAIR^(?$UU-:V<A_T:&)0))E_O9.=J^G'/MP3Z&?V?/@W-$(=2\!6=^@P
M2FI;KA"1WV2$K^E=C'&D2+%$@55 "JHP /04M?I/ '@_P7P!@:2PV&C4Q,4N
M:O.*<Y2ZN+=^17VC&VEKMN[?DYGGN/S.I+GFU![13T2\^_JS"TOX7?#/1$$>
MB_#K0K-1T6UTB&,?^.J*U1I&DBW:T&EV_E,,-%Y"[3]1C%6**_49PA4BXR5T
M]TSQTVG='*:S\$OAKK4GG2^'$MWSDM9N8A_WRIV_I5:']G_X6Q??T&63_?O9
M?Z,*[2BOBJ_AIX=XG$O$5<HPTIO=NA3=_7W;-^9Z$<WS6$.6->:7^)_YG+0_
M!3X70?<\(PG_ 'YI&_FQJ.\^!OPNO<EO"ZQD_P 4-Q(F/P#8_2NMHK6?AUX?
M3I>REE&%Y>WL*5O_ $@E9KFBE?V\[_XI?YGGMY^S5\/;C)M[G4;<]A'<*1_X
M\IJSX+^ GA/PAK/]M/<37\D>#;+=*NV)O[V!U/IZ?7IW-%>5AO"'PSP>94\?
M0RJE&K3?-%J-DFMGRWY;K=76CLUJD;SSW-ZE%TI5I.+T?_#[A1117Z.>2%%%
M% '.>)/A-X \4[I-1\/0I,W_ "\6H\I\^I*\,?J#7GWBO]F.YM8);SPCKAGV
M*66TNTP[8[!UX)/N!]:]DHK\PXL\'/#KC&,Y8[ 0C5E_R\IKV<[]VXV4G_C4
MEY'L8+/LUP#2IU6TNCU7X[?*QX'\$?B7+X(UIO#6O2,FGW4NUO,X^S2]-W/0
M'HWX'M7O@((R#7C_ .T)\+_+9_'V@V_RL?\ B9PH.A[2C^3?@?6M']G_ .*'
M]LV:^"-=N,W=NG^@RN>98P/N?[RC\Q]*_'_"?B3-O#3BN?AQQ+.\;WP=5Z*<
M9-V@F^DM>57]V:E3N_=1[N=X2AF^"6;81:_\O(]FNORZ]U9]ST^BBN-^*GQ>
MTOX?VIL+/9<ZI(F8K?/RQ ]&?'0>@ZGV'-?TEQ)Q+DG".3U,SS6LJ5&"U;W;
MZ1BMY2?2*U9\GA,)B,=75&C&\G_5WV1UC:C8)?+ICWT(N7C+I;F0;V4=6"]2
M/>IJ^77_ .$Z\57-UXW6.^N9+>0/<7T*G]T>V"/N@#TZ#TKNOA[^T;>V.S2_
M'<;7,0P%OXE_>*/]M?XA[CGZU_/W"WTG>&\TS3ZOG6%G@J55MT*L[N$X7Y4Y
MNRY7=.[CS03NG)<MW]/C>#\71H\^'FJDE\45NGY=_P 'Y&+^VI_P3O\ A=^V
MEJFB>(_$GB*]T'5M'A>W.HZ;;H[W5LQW")P_96W,I[;W]>/(=-_X(1?LV18_
MM?XM>.)_7[-/9Q?^A6[^U?:^D:SI6OV":GHU_%<P2#Y98FR/I['V/-37%Q;V
MD+7%U.D4:#+R2,%51[D]*_LG*?$SBK+\FITLOS!K#)7BXN+CROWKJ5G[NMUK
M:VVA^.YIX<<&YKF=3&8[ QG6DUS-\UVTK:JZ5].UWU/C74/^"'G[)X\/WMGH
MOBCQB-1DLY$L;R^U6!TAF*$([(D";P&P2O&>1]/BG]C#XV>+/V _VQGT7XCQ
MR6-@NH2:#XVLV)*I%YFWSQZ^6X60,!\R;@.'K]</$GQX^'?A_=%%JC:A,O\
MRSL%WC_OLX7\B:_/#_@KA\&-/\?VEK^V'X$T(VS">/2?&EJC;BC8Q:7C$ <,
MH\ECV*1#G)-?2>%7CYPIQMQ?5X#SC-H8NIC8248J:FXRBKM*2O%2:U4;\RE%
M-+<_.O$_PPJ\*9-1XKX>P?L)X.:E+E5E*#:U:W:B]^C@Y7>Q^H$$\-S"ES;3
M+)'(H:.1&!5E(R"".H-.KY _X(]_M7?\+M^!!^#OBO4O,\1^!8X[>,ROE[K3
M3Q!)SU,>#$<= L9/+5]?U\7Q)D6,X9SNOEN)^*G*U^ZWC)>4DTUZGZWPUGV#
MXGR.AF>&^&K&]OY7M*+\XNZ?H%%%%>(>X9?C;QGX:^'7A#4_'GC+58['2M(L
MI+O4+N4\1Q(I9C[G X Y)P!R:_$/]HSXO?%+]NK]HK6O'^D^';^^D>WG?1]&
MMD,C6&EVT;R;<#^[&KR.1U=F(Z@5]6?\%J/VQO[1OX?V1O &JY@M6CO/&<T#
M\/+P\%F2.R_+*X_O&,<%6%>L_P#!'[]C@?!;X2-\=_'6D[/$WC.T5K**9/GL
M=+)#1IST:4A9&_V1$."&K^BN"J6%\,>#9\4X^FI8K$6C0@]'RO6_DI6YF_Y5
M%)WE8_G#C>KB_%'C2'"F J..%PUY5YK5<RTMV;C?E2_F<FTU&YXU_P $9/VQ
MX='U67]D'XE:@K:=JKR3^$9+ILI'.P+369SQMD&74=-X<<F0"M']H'X=^(?V
M3_VB5O\ PC(]O;Q7::IX;N.2/*WY\H^NTAHR#U4 G[U>-?\ !3;]DK5?V0?V
M@;?XG_#"*:P\,^(;XZAH%S9$I_95\C"1[=2/N;6Q)'T^4X&?+)KZ\\">*]-_
MX*A?L?Z?K^F3V-M\0O"]PL&J0RML5;G:!(> 2L4Z 2+Q@.FW/R,:\;Q6R# Y
MGA:/&.3J^'Q-O:)?8J;7=MKM.,O[ZW?,>UX3<08_+,56X,SEVQ&&O[-O[=/>
MROO9-2C_ ''LN5GU)\(_B7H?Q?\ AUI?Q#T!@(=1M@\D.[)@E'$D1]U8$>^,
M]ZZ2OSBO_P!F+]K[X.W3:EHOA#7[=E.1>>&;TRE@._\ H[%Q^(%3Z%^VI^U;
M\-;O^R]8\6W-R8OOV7B'3E=_^!,RB7_QZOPX_=3]%J*^7/V=O^"BMOX_\66_
M@OXO:'I^CR7N([/5;*1UMS,3PDBN6*!N@;<0#@' .1]1T %%%9OB_P 6^'_
M?AB^\8^*M12TT_3K=IKJ=_X5'8#N2<  <DD <F@#,^)'Q?\ AO\ "."QNOB+
MXJM]+CU*[^SVC3!CN?&22%!(4<98_*,C)&:W].U+3M8L8M4TF_ANK:= \%Q;
MRAXY%/1E9<@CW%?F[\2O&_Q*_;/^.B0Z!IDLLEU(;?0M*W@):6RY.6/0' +N
MWK[ "G^%/B7^TE^QSXL;0)H[W3 'WSZ)JL9DL[D9Y91G:0?^>D; GU[4 ?I+
M17AGP'_;T^$WQ;\G0_%,R^&M;?"BVOIA]GG;_IG,<#)_NOM/.!NZU[F"",@T
M %%%% !1110 4444 %%%% !1110 4444 %%%>=?M!?M,_#O]GG0OM?B2Z^UZ
MI/&3I^B6SCSIST#-_P \X\]7/H<!CQ0!WNIZOI.BVXN]9U2WM(BP42W4ZQJ6
M],L0,\'\JH?\+!\!?]#OH_\ X,HO_BJ_._Q/XO\ CY^VO\3(M/M[.:_FR39:
M7:92TTZ+/+$DX4=,R,<DX']T5T7_  [F_:6_Z!FC_P#@V7_"@#[M/Q#\ *"S
M>.='  Y)U.+_ .*KYF_:<_X*'6>E?:/ _P  KB.YN1F.Y\2,H:*(]"+=3PY_
MZ:'Y?0-D$>5_\.YOVEO^@9H__@V7_"O6_P!F_P#X)TZ=X;NT\6_'EK;4;F*3
M-KH5N^^V7!X:9L#S/]P?+Z[LX !XY^S_ /LC?%/]I?63XY\7ZA=V&B7,YEN]
M=O\ +SWS9^;R@W+D]"Y^4<_>(VU]T?"SX1> /@SX93PI\/\ 08[.W&#/+]Z:
MY?\ OR.>7;]!T  XKHX((+6!+:VA2..- L<:* JJ!@  = !3J "BBB@ HHHH
M **** "BBB@ H(!&"*** .1G^ OP:G\96GQ!/PVTF/6;&;SK>^@M1&PDP1O8
M)@.PSD%@2#@C! -==110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!Y1^W/\ \FC^/?\
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
M!"^K GC:,@'KW[$O[,,?P.\%_P#"5>*[%1XHUJ%3=AQDV4!P5MQZ'H7_ -K
MYV@GUCQY\.O _P 3M"?PUX]\,VNJ63\^5<QY*'^\C##(W^TI!]ZVJ* /BG]H
M+_@G%K?AFVNO%OP2U*34[*%&EET.[.;J-0,D1.!B7V4@-Q@;B:I?L0_MA7G@
M'5X?A+\5-:D?0KJ01Z9?W<A/]FRG@(Q/2$]/1#SP"Q'W'7QS^WM^R+]ADNOC
MM\,],_<.3+XDTV!/]63UND ['^,=C\W0L0 ?8P((R#D'H:*^3OV"OVN?[7AM
M?@7\3-4_TN-1'X<U&=_]<HZ6SD_Q ?</<?+U"[OK&@ HHKR_XR?M??!'X+PR
MVVL>)TU+5$R%T?2&6:8-Z.0=L7_ B#Z T >H5YM\8/VL_@A\%)_[-\5>*1<Z
MB'"OI>EJ)YX^>2X!"QXZX8@D= :^0_C!^W5\<OC-=MX9\%B70-/N7\N'3]&9
MGNKC/ 5I0 Q)Z80*#G!!H\$_\$]OC_XR\+W?BG5K2VT>86YEL=-U.4BYNWZ[
M2!Q%GGER#G&0 <@ ^]O"_BCP_P"-/#]IXI\+:K#?:??0B6UNH&RKJ?Y$="#R
M""#@BK]?G=^S/^TQXU_99\:W'@WQE87CZ&]X8]9T:92);.4'#2QJ?NN,<KT8
M#UP1^@7A?Q1X?\:>'[3Q3X6U6&^T^^A$MK=0-E74_P B.A!Y!!!P10!?K$^(
MOQ$\*?"OP?>>.?&FI+:V%E'N=NK2-_#&@_B=CP!_3FKOB;Q+H/@W0+OQ3XGU
M2*RT^Q@,MU=3-A40?S/8 <DD <FOSU_:'^/7CK]KCXG6GAGPEIMTVF+=^1X=
MT2+[\KGCSI .-[#\$7C/WF(!Z?!_P50UR._F:Y^#MI-:F9O(6/6&BD$>?E#$
MQL"V,9( &:Z71_\ @J5\/)\?V_\ "[6K;^]]CNH9\?\ ?7EYKHOA'_P3W^#/
MA_X?V^E_%7PZFN:W-^]O[M;V>)8G('[J/RW7Y5]3RQR> 0!8UC_@G#^S;J>?
ML5KK>G9Z?8]5W8_[^J] '&?%;_@IKX3/A$P_!OPYJ!UBYRHGUJV1([,8^_M1
MV\QO09QQDYZ'Q'X+_L\_&+]KKQE<>+M<U2Y6PEN<ZMXEU$%]S=TB!QYC@<!1
MA5&,D< _1.D_\$Q_@UIWB*VU.[\6ZY?6$,F^;3;IXQYX'16DC52!GK@ D=".
MM?1.C:+I'AW2K?0M!TR"SLK6(1VUK;1!(XD'0*HX H YWX0?!?X?_ _PLGA7
MP#HRP1G!NKN3#3W;@??D?'S'K@< 9P !75T44 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!Y1^W/\ \FC^/?\
ML O_ .AK7=?"[_DF?AW_ + 5I_Z)2N%_;G_Y-'\>_P#8!?\ ]#6NZ^%W_),_
M#O\ V K3_P!$I0!NT444 %%%% !1110 4444 %%%% !1110 456UC6=(\/:7
M/K>O:G;V5G;1E[BZNI1''&H[LS< 5\B_M(?\%&9KC[1X/^ &8TY2?Q)<189O
M7R(V''^^XSZ*.&H ]L_::_:L\%?L]^'Y;=;F#4/$D\?_ !+]&27)4D<2S8Y2
M,=>Q;H.Y'YI_'7X^WD^L77Q!^)&K3:IJVHREEA$@5Y<=%7@B-%& .,*,  ]*
MKWGC'Q+\0?B1;?#SP-8W?BOQGKMX8X;19B[-*W+232$_* ,LQ)X"DD@<U]/_
M  F_X(I^&=0U=?&G[4_Q2N?$-\Y#/HGAT-;6<>/^69F;]ZZ?[HB/N><_>Y!P
M[E.#J4L?Q/.5+#-<T::3]K67]U+6,'_/)Q3V@[W<?@.(.(\VQM.KE_"\(UL2
MGRRJ-KV5%_WF])37_/N*DUO-6LI?&]]^V_\ M7_$C1[7X*?!>:[\/:5*2EOX
M>\"6DBW5ZYX+R3)NN)I&'WL,%/0*  !T_P"S'_P4D_:=_8V\0M\.?B)9W^O:
M'8W!BO\ PMXE:2*[L#GYA#)("\+#^XP9.OR@G=7ZO_"7X"?!GX$:/_8?P@^&
MND:! RA96L+0"68#IYDIS)*?=V)KD/VH_P!B/X!?M;:*;;XE^%Q#JT46RP\2
M::%BOK;T&_!$B#^XX9>3@ \U^D4O%#P_KMY36R:,,!+2ZMSI])M))W7=3<EN
MI/8_-*OA7XAT+9O1SJ4\PCT?-[-KK!-MJS?1P4'LXK<XWP?X]_8R_P""EG@S
M[3H5_'_;EM;YEMI-MMK&F?5>?,C!/4;X\GKGIY/XV_X)C_%W2)I9O _BO1]9
MMPQ\J.=WMIV';Y2&3/\ P.OE#]I?_@GU^U%^PWXD7XG>#M1OM3T/3IO.L?&?
MAHR136..AG1#OMS_ +63&<XWY.*Z[PG_ ,%O/VL?#?@RV\.ZEX;\):WJ-NNQ
MM<U6PF$LZ]BZ031H6Z\@ 'CC.2>+,O!N.<0CC^$<5#$8>;VE)*4/)NVMNJ:C
M):73W.W+/&B633EE_&&%GA\3!;QBW&?FE?2_1IR@];-;'HTGPD_;(^!4C3:9
MX>\7:3'&<O+H=Q)+#]6-NS+CZUR7Q<_:!^+/Q#T:#3OB[XXN;JTT4O(D=W$D
M0B.,,S[54LP P"V2,D#J:XCQ)_P66_;BUS=_9GBO0=&ST_LWP["VWZ?:/-_6
MO/M1U3]LW]O#XCZ18>(KG7O$VH7[QV%K=-I_D6<,;2;MS^3&L2("=S.1P%]A
M1@_ 7/:3]MFV+HT**UDU)RDDM]XQCMUYOD/&>/V0UDZ.482M7K/2*<5&+;T6
MTI2WZ<NO='IW[%?[.NJ_M[?M!K>^(K*:+X=^$I4N-6SE1=DG,=MD?QRE?FQ]
MV-6Y!*Y_4#XJ_$W3OA?H\&@>'[2$7KVX6SMXT CM8@-H;:. !C"KTX]!6)\!
M?@Q\//V*/V>++P%H6UXM-@\[4KW8%DU*^<#?*?=F 51SM15&<+FN"T+2]?\
MC1\0F>\E;-Q)YMY,HX@A&!@?084#UQ[U_'OTHO&C%8:MA.$N#(M5ZO[K#07Q
M4Z;=I5G?:I5E>TGLE*3=X7?[;X4<#U,OPE;-<[ESUZK]I7GT<K>[3C_<IK1)
M:=M'96/A]\.?$7Q9UV75]5NIA:>;NO;^3EI&_NKGJWZ*/P!]^T/0]*\.:7%H
MVC6:P6\*X1%_F3W)[FGZ5I6GZ)IT.DZ5:I#;P(%BC08 '^/OWJQ7G>%7A/E/
MAOETJDG[;'5M:U9ZMMZN,6]5"^O>;]Z711^KSK.Z^;5;+W:<?AC^K\_RV044
M45^MGAA1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !6?XJ\.V7BSP]=^'K\?N[F(J&Q]QNJL/<$ _A6A17-C<'A<QP=
M3"8F"G3J1<91>SC)6:?DT[%TZDZ513@[-.Z?FCYF\./:^$_%-[X1\<Z='/I=
M_%-I>OV,XS'-;R HX([K@Y]QGUKSCPY_P0J_9QM=1EOO$WQ4\6ZA;M.SVUK9
MO;VZK&22J,QCD+X&!N!7.,\=*]]_:6\$>3<P>.K"'Y9<07V!T8#Y'_$#;^"^
MM=1\ ?&__"4>$!I%Y-NN]+Q$V3R\7\#?D"O_  'WK^>_H^\<<6>"O'&:^&T<
M7.E2JR]MAWI[\;-V3:=FX>\^6R4H5%JSOX[X.X8XZP.%SG'86-6=-.+O?2]K
MWLU=776^C1YCX*_X)3_L+>"MDJ?!9-5G3&9];U6YN=WUC,@C_P#'*]?\#_ K
MX*?#)DD^'7PB\,Z$\?W9=)T*WMW^NY$!)]\UU5%?U-C^(^(,UO\ 7,74J)])
M3E)?<W8^3R_AOA[*;?4L'2I-=8PC%_>E<****\8]H*Y[XL_#S2?BW\+_ !#\
M+]< ^R>(-&N;"9BN=@EC9 X]U)##W KH:*UHUJN'K1JTW:46FGV:=T_O,J]&
MEB:,J517C)--=TU9K[C\:/\ @FE\0]6_9N_;STGPIXI)LQJ=]<^%M<A9L;99
M'V(I^EU'#^&:_9>OQT_X*P?"V_\ @;^V]J/C'PZ'M(?$B6_B'3)XACR[@G;,
M0?[WGQ/)[>8*_5[X#?%*P^-GP7\+_%G3=@37]$M[R2-#Q%*R#S(_JK[E/NM?
MN?C-1I9Q@\KXGH+W<32496Z22YDGYZRC_P!N'X1X*UJN38S-.%J[][#57*-^
ML6^5M>6D9?\ ;YUM,NK6VO;:2RO;=)H9D*2Q2H&5U(P5(/!!'&*?17X.?OA\
MF>+_ /@FY8WWQTL]1\-WJP>"+N1KG4K7S<36A4@FWC[LKYPK=4&[/(7=]6:5
MI>G:'IEOHVCV4=M:6D*PVUO"FU(HU "J .@  %3T4 %%%% !398HIXF@GC5T
M=2KHZY# ]01W%.HH ^!_VU?V4;OX(^(O^%G?#JVD7PU>W(8I 2#I5P3D)D<B
M,G[C=C\I_A+=-X2_X*;Z_H/PQM=&UWP0=6\36ZF%]1FNA'!,@ VRN "Q?LRC
M .,Y&<#[&\0^']%\5Z'=>&O$>FQ7EA?0-#=6LRY61&&"#_CU'45X%X+_ .":
MWP1\/ZY/JWB?5-3UR W+/9Z=-+Y$4<><JCF/YY"!@;MR@_W: /FGQ7^T5^U+
M^TKJK>&=.U+4[B.?_F!^&;5XX]I[,(\LZ_\ 71F KM_A-_P35^*'B>2'4?BE
MK%MX=LR07M(6%Q=L/3"GRTSZEF([K7VKX4\%^$? NE+H?@SPU8Z7:+TM["V6
M)2?4[0,GW/)K3H X;X0?LX_"'X'V@C\">%8DNRFV;5;O][=2^N9"/E!_NJ%7
MVKN:** /"_VP/V/]*^.^E/XP\'PPVGBRTAQ'(<*FHHHXBD/9NRN>G0\8*_,7
M[,_[3'C7]EGQK<>#?&5A>/H;WACUG1IE(ELY0<-+&I^ZXQRO1@/7!'Z(UX7^
MV!^Q_I7QWTI_&'@^&&T\66D.(Y#A4U%%'$4A[-V5STZ'C!4 ^;OVNOVJ=9_:
M+\4Q> OA\EU_PC=O=*EC;11L)=4G)VK(R=<9.$3&><D9.%^C_P!C+]DJS^!F
M@KXS\96L<WBO4(/WF<,-.B/_ "Q0_P!\_P ;#_=' ); _8B_8X;X901_%;XI
M:6!XAE4_V;ITP!_LV,\;V_Z:L/\ OD''4G'TK0 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
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
M'6HU</4=.K%QDNCT8444DDD<,;2RR*JJ,LS'  ]37<VHJ[V,MQ:*X;QA\?\
MP1X:WVVF3'5+E>-EJW[L'WDZ?]\YKS#Q'\8/B/X^N?[*T^66".8[4L=,1MS^
MQ(^9OIT]J_$.,_I \ <)5'A:%5XS$[*G0M+WNBE/X%KHTG*2?V3Z++^&,SQR
MYY+V<.\M/PW_ "7F>X:I\0?!&BWAT_5/%-E#,OWHFG&5^N.GXTD/Q&\ 3\1^
M-=*R>@:_C!_4UXYH'[.7CK6+7[9J4MMI^X92*X8LY^H7./Q.?:K$W[,/CA>8
M-9TI_P#>ED!_] -?#TO%7QYQ,/K5+A;]S+6*;DII=.9-IW]81OV/1EDO#4'R
M2QGO+?:W]?-GLL7BOPO.-T'B2P<>J7B'^M1S>-?!MM_Q\>+=,C_W[^,?S:O%
M)?V;OB-&<)]@?W6Z/]5%20_LT_$*7[]UID?^_<O_ $0UI_Q%WQLG[D.$IJ7=
MN=O_ $E+\1?V'P\M7CE;Y?YGKLWQ/^'<'W_&FFG_ '+I6_D35O2/&7A/7R%T
M;Q'97+'I'%<*6_[YSFO(8?V7O%S?\?'B#35_W#(W\U%4M8_9Q^(>G9?3Q9WR
MCH(+C:WY. /U-*7BIX\X+_:,5PKS4EO&#DY_+E=1_P#E-A_8W#53W88VTN[M
M;]/S/?:*^;_/^,O@'[S:U91I_>#M#^N4-=+X%_:/UNVOTM/'02YM7X-U#"%D
MB/J0N P]0!GZ]*]/)?I,\*5\QA@,]P=? 59.UZD4X1;_ )I>[-*_5T[+=M(Q
MQ'".-C2=7#5(U8KL]7Z;K\3VNBH;#4++5;*/4=-NDG@F7=%+&V58>QJ:OZ/I
M5:=>G&I3DI1DDTT[IIZIIK=/HSY1IQ=GN%%%%6(**** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@"OJVG66K:7<Z9J-LDT%S;O#/%(H(=&4AE(/4$=J
M_(G_ (,J?^467C[_ +. U7_TQZ'7Z^3?ZIO]TU^0?_!E3_RBR\??]G :K_Z8
M]#H ?_P>)?M*>-_ 7[$OP^_9)^'VIR6EW\:?'8M=4,4A4W.GV(CD:W..=K74
M]DQ]1&0>&-?J/I'P"^&>D_L\6W[+J^'H7\'6W@Q/"W]E>6!&VFK:"T\G;TVF
M$;<>E?C]_P 'D_AJ]TB#]E'X_P!] W]A>$_B1J5GJLY!V(]R-/N8PQZ9*:=.
M1[*:_;,21F/SA(I0KD-GC'KF@#\//^#;_P#;X\8?L^_\$GOVI? 'CK4CJ\G[
M*LVL:MH$=TQ(%H]I>7$=F!GA3>6-TP&>MP1T KW3_@T7\+:IJ?\ P3C\6_M+
M^.;Z74_%WQ8^,.M:UXB\07AW7%^R"&'+MW_?+<O_ +TS^M?"G_!#_P"#7B[X
MZ_\ !,7_ (*8_$?PA837$'Q!T>\LO#WE(3]KNK2QU>],*8ZLPO[<8_Z:#UK]
M"O\ @TA\0Z9K7_!%_P )Z;82*TND>,]?M+T*>5E:\:< ^^R:,_0B@#Q[X]?$
MJ_\ V)?^#N_P ?"URUMH?[1OPIL;+QM:1'$=W<D7UI:R%>AD2;2[/YL9"O(
M?G.?V3K\1O\ @ICH%_\ &7_@[I_91\$>%XVFE\-> M,U#4M@SY*VMWKFH2%O
M0>4B=>[ =Q7[<T %%%<9\9O@9X0^.>F66D^+]4UJUCL9VFA;1=6DM&9BNTAB
MGWACL: .;_;G_P"31_'O_8!?_P!#6N3L_P!L?3O!7P[T2RTCX1>)=6EM]&MD
M9XA D;%8E!QB1W[=T%<9^U;^Q3\)_A]^SKXN\::)XD\837>G:2TT$=]XIGFA
M9@RC#HQPPYZ&O'?BU^T!XQ_9>?2;?XW?!+4+?0M4LX9-$\2^'KM;JTND:,,%
MQ((S%(%/S1LQ(P2"RX8_$<9?\1:?U>/ N60Q]2\G5IRG&,^5)<OLXNK3E.3U
MNH*HTE=QMJ$\UX6RBDZV>8AT*;LE/EDXIO\ G<8R45V<G%7TO?0]*\8_\%//
MB/;S-:Z#\'M/TN09PNL7,T[#W(415G_#C_@IM\1].\0L_P 4?#-AJ6ES,-R:
M7%Y$UL/5-S$./]EB"?[PKF_A/^TE\"_VAM5B\&^$->BNM4N5S#HFIVACFF/]
MV-7&V5O]E"S8!.,"NF\8?!3P'XEE_L[Q'X>DTRXA'E_:+"!89H?3<A #XX^5
ML'' 9<YK\HGX]9IPKFU/+>/>'\5E5232YJD)\NOVK3A3DX^<.?357/H,#E.5
MY]@GB\BQU+%0_N2B]>UXMI/R=CZP^%'QP^&/QKT?^U_AYXH@O"B@W%FQV7%O
M[21GYEYXS]T]B:ZROS6\;_L^_&+X'-'\1_"&H37VDPL6M_$N@.ZF#VF4?/ W
M3(;Y><!FKTWX!_MX6R7-OX:^/-M=21.P1?$.GS,K1]LS1#AAZLF"!_":_H;"
M8O"X_"PQ.&FITYI.,HM.,D]4TUHT^Z/!G"=*;A-6:W3/MRBN?TKP[X5UW38-
M9T76IKNTNHA);W-O?ETE0C(96!P0?6K'_"#Z1_S\WO\ X%M702;%4_$/B+0O
M">BW'B/Q-J]O86%I'ON;NZE"1QKTR2?<@#U) K/NO"/A^QMI+V]U*YAAAC+R
MRRWQ544#)8DG  '.:^!?VPOVE;3XJ>(I?#/@S4KB/PGI<A*RSW#?Z=(N<SMG
MH@YV@]OF/)PK2<G9;B;45=['KWQX_P""E5M;^=X=^ FEB9^5/B#4H2$'O#">
M3[-)C_<-?&GQ.^-^I>(O%7VGQ=K^H^(_$=_($@LHBUQ=2L3\J*H^X.>%X&.@
MKNO!_P"Q_P#%7XT?#.P^*4OQ4TKP9X:UI7;20+*6ZU:^B5RGFK#F-8XVP2K>
M8"5P<C<!7IO[.G[(_@7X07 M_!>E7.L^(+SY9]8O$#W$F?O!<<1)U) _X$S8
MS7QGB+XH^'_A/0>'S*J\;FLM*> H7YU)[?6*O*XTE?[$%.K+91CK)>5E^&XJ
MXKKQ64T51PCUEBJMN5Q_Z<TD^:HVM5*?)36_O*R?&_!SX'_%&40^(O&-\GA(
M,H9;+1YQ+J70<-=XQ;<C_E@JR $CS>U?0OPG^ U_?VOV#P/X<CLK%I2]Q>RY
M"R2'[SNYRTTA[L=S$]3WKUCP'^SCI-E:K?>-Y3<73<BUA?$<7L3_ !G]/KUK
MMX_ >B0QK%%-=JJC"JMTP 'H*_$5X?>)?C'6AC_$#%?5<%=2A@,/[D8]N?67
MO):<U256O9\KG%JR^XPM3(^%[K+8NM7M:5>J^:3[VT2BG_+",*=]>5F!X'^
MG@[PE+%J6H*VIWT3!TFN!B.-AT*Q],]#EMQ! (Q7<UC_ /"#Z1_S\WO_ (%M
M1_P@^D?\_-[_ .!;5_0?#O#&0<)Y=' 91AXT:2Z16[[R>\I=Y2;;[GBXK%XG
M&U75KR<I/O\ UI\C8HK'_P"$'TC_ )^;W_P+:C_A!](_Y^;W_P "VKW3G-BB
ML?\ X0?2/^?F]_\  MJ/^$'TC_GYO?\ P+:@!OC/P!X:\=V/V/7K$,Z@B&YC
MXDB^A]/8Y'M7F%[^RWKJS,-/\46CQY^0S1,AQ[XS7J/_  @^D?\ /S>_^!;4
M?\(/I'_/S>_^!;5^9\9>$'A_QWBUB\VP:=9:<\)2A)K^\XM<UNG,FULFD>O@
M,]S/+8<E"I[O9ZKY7V^1Y#-^S)X]CYBU/2I/83R _K'3=._9M\</JD$.JR6D
M=JTH^T30W&YE3N0".3CI7L'_  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5\#_Q*
M[X5JM&HH5K)I\OM='9[.\6[/9V:=MFCT_P#7'.>5J\?N_P"":.F:;9:/I\.E
MZ= L4%O&(XHUZ!0,"IZQ_P#A!](_Y^;W_P "VH_X0?2/^?F]_P# MJ_H:C1I
M8>E&E2BHQBDDDK)):))=$ELCY:4I2DVW=LV**Q_^$'TC_GYO?_ MJ/\ A!](
M_P"?F]_\"VK01L45C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M0!L45C_ /"#
MZ1_S\WO_ (%M1_P@^D?\_-[_ .!;4 ;%%8__  @^D?\ /S>_^!;4?\(/I'_/
MS>_^!;4 ;%%8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U &Q16/_P (/I'_
M #\WO_@6U'_"#Z1_S\WO_@6U &Q16/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\
MX%M0!L45C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M0!L45C_ /"#Z1_S\WO_
M (%M1_P@^D?\_-[_ .!;4 ;%%8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;4
M;%%8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U &Q16/_P (/I'_ #\WO_@6
MU'_"#Z1_S\WO_@6U &Q16/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M0!L45
MC_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M0!L45C_ /"#Z1_S\WO_ (%M1_P@
M^D?\_-[_ .!;4 ;%%8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;4 ;%%8_P#P
M@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U &Q16/_P (/I'_ #\WO_@6U'_"#Z1_
MS\WO_@6U '+?'+X6#Q?II\1Z';YU.TC^9$'-Q&/X?=AV]>GICCO@-\4SX<OE
M\':_<8L;B3_1I9#Q;R$]#Z*Q_(\]S7K7_"#Z1_S\WO\ X%M7E/QR^$*^'P?&
M'AR.1[5V_P!.B8[C$Q/W_H3U]#]>/Y:\8>#LXX-S^'B/PK&U:E_O5-?#4I_:
MFTMU96J>BJ*THN3^RR+'T,?AGE.-?NR^!]GT7^7W;.Q[=7XP_P#!0KP+K'[+
M?[?NK^)_":?9?.UBV\5:!(!@!I)!,2 .@6Y250!V6OT5\+_%ZZTJWCLM>TZ:
M]CC&T2Q7SQR8]^H./H*^;O\ @J=\'E_:(T;PO\0?@QX=U&\US1S/9ZM8SR(9
M)+5P'1T+-A@CJXVCYCYV<<''],_1R^DYX3XOBBG1Q>8T\+'$TW"<,0_91C)K
MF2<YVIO5.":D[\WF?B'CIX<<19CPDZV#H2JUL-.-2'LTY2:ORRLHWEL^;;[)
M^@'PW\=:/\3_ (>Z'\1_#[[K'7M(M]0M?FR0DT:R 'W ;!]P:VJ^1/\ @DK>
MZQXC_9F;X;_$/3-8TS6_!FK2V36E\)8)#:2GSH7VL!\N6E0=L15]1_\ "#Z1
M_P _-[_X%M7T.>X+#Y=G%?#8>HJE.,GR2BU*,H7O&2:NFG&SNGU/H^',SJ9Q
MD6&QM2+C.<(N46K.,K6E%IZJTKKY&Q16/_P@^D?\_-[_ .!;4?\ "#Z1_P _
M-[_X%M7E'M&Q17YN_P#!5?\ ;DO/ GC6U_9^_9]\87MK?Z+>Q7GB?6;6]8E+
MB-@\5FISCY2 \G7G:AZ.I^J_V)/CQX$_:^^!]C\1-/NI[?6;7%IXETN.];-I
M>*HW$ G/EN/G0\\'!.5;'VF9\!Y_E/"^'SVO"U*L]NL4_@E+LIZV^5]9)'Q.
M5\?</YOQ3B<AP\[UJ*WZ2:^.,>[AIS?.VD6SW>BL?_A!](_Y^;W_ ,"VH_X0
M?2/^?F]_\"VKXL^V-BBL?_A!](_Y^;W_ ,"VH_X0?2/^?F]_\"VH V**Q_\
MA!](_P"?F]_\"VH_X0?2/^?F]_\  MJ -BBL?_A!](_Y^;W_ ,"VKQ[]HS]K
M?]E#]EO4+;0OBG\1;L:K<R(#H^ERO=74$;?\M940_NT Y^;!8?=#5W9=EF8Y
MMBEAL%2E5J/:,4Y/[ET\SAS',\NRC"O$XZM&E36\I-16NRN^K['O-%>=_"/Q
M[\"/CQX?'B?X0?$V#7[3 ,IL=3)D@)Z"6,X>)O\ 9=0?:NL_X0?2/^?F]_\
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
M/-]IGQ&\-0JNN:=<2O"][",*+M(VP1DD"10/E8@X =17W?$.9>'7B+E_^MW
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
M?BHR?:6_X:_^2GTU121H(HUC4G"J ,GFEK^J3XP**** "BBB@ HHHH ****
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
M^4CJ<D>N*\,^'/[(GP3\$^.YO%O@KX>I)JMW.&LXW#3+:-W%NAR$R><C)&2
M0.*_,.!_I*97X9TZV7>)V1XC$9KAU^X5)P5#%N]H\Z<;QUU<Z?M83U7LHR7)
M+Z'C+@;C#B90CPMCZ5#"U=*DI1E[:BK7?(U)QE?:S4)1T:F[\R^7?@O^Q!\5
MOCGKC_$GX[ZSJ.FVE_,;FZEOI"^IZBS')8^9DQYY.]\GIA2#D?<GP;^!T6EZ
M#!X!^$G@^.STRT;<8X1MB5R #)(['+N0!EF)<@#KBO6/A[^SA-/Y>J^/93&G
M#+IT+_,?]]AT^@Y]Q7KFF:7IVC62:=I-C%;P1C"10H%4?E4<3_\ $</I-XR&
M,X^Q+R[*8N]+ 4/<T7PN<7?WDOMUN::=U"G3B[&G"'"' WA70<,EI>WQ<E:>
M(J>])OK9](M_9A9/3FE)JYYKX/\ V:-&L=EWXRU%KR0<FUMB4B'L6^\WX;:]
M(TG1M)T*S6PT;3H;6%>D<$84?7CJ?>K-%?I_"/AYP;P+0]GDV#A3=K.=N:I+
M_%.5Y->5^5=$CT<=FF/S&5\14;\MDOEL8/BWX:>#?&J%M;T=#,1Q=P_)*/\
M@0Z_0Y%>6^,/V:_$.F;[OPE>KJ$(Y$$N$F _]!;]/I7N%%>!QMX-< <>*53'
MX50KO_E[2M"I?NVERS_[?C+R.G+L^S/+;*E.\?Y7JO\ @?*QX7X&_9U\1:XR
MW_BZ1M.MB<^2,&=Q].B?CD^U>P>%O!GAKP;9?8O#VEQP @>9)C+R>[,>3_+T
MK4HK3@#PAX)\.J2EEU#GKVUK5+2J/O9V2@GV@HWZW>HLSSW,,UE:K*T?Y5HO
M^#\PJCKOACP]XFMOLFOZ/;W:8^7S8P2OT/5?P-7J*_1L7@\)C\/+#XJG&I3E
MHXR2E%KLT[I_,\J%2=*:E!M-=5HSSJY_9H\#3:D+J"^OX;?JUJDJD9] Q!('
MUR?>NJ\.?#CP3X3VOHGAVWCE7I.Z[Y/^^FR1^%;=%?(9+X:< </8V6+R[+*-
M.JW?F4$VG_=O?D7E#E7D=V(S?,\534*M:37:_P"??YA4&I:5IFL6K6.K:?#<
MPM]Z*>(.I_ U/17VE:C1Q%*5*K%2C)6::NFNS3T://C*497B[,\Y\5?LW>$=
M7W7'AVZETR8\A!^\B)^A.1^!Q[53\.?LQ:):E9O%&N37;#DPVR^6GT).2?PQ
M7J5%?E=?P-\*<3FW]HSRJGS_ ,JYE3OW=)25/_R6W='M1XBSJ%#V2K.WRO\
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
MAW\0K?9P/[.U9WQVX\J4T?\ $(>&*W^[\18>7_@'Z5F'_$8N**/^\\-XB/\
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
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 >4?MS_P#)H_CW_L O_P"AK7=?"[_DF?AW_L!6
MG_HE*X7]N?\ Y-'\>_\ 8!?_ -#6NZ^%W_),_#O_ & K3_T2E &[1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!Y1^W/\
M\FC^/?\ L O_ .AK7=?"[_DF?AW_ + 5I_Z)2N%_;G_Y-'\>_P#8!?\ ]#6N
MZ^%W_),_#O\ V K3_P!$I0!NT444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 >4?MS_\FC^/?^P"_P#Z&M=U\+O^29^'?^P%
M:?\ HE*X7]N?_DT?Q[_V 7_]#6NZ^%W_ "3/P[_V K3_ -$I0!NT444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 >4?MS_\
M)H_CW_L O_Z&M=U\+O\ DF?AW_L!6G_HE*X7]N?_ )-'\>_]@%__ $-:[KX7
M?\DS\._]@*T_]$I0!NT444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%5]7U?2_#^DW6O:WJ$5I965N]Q>75PX6.&)%+.[$\!0H))[ 5^7/_!.#
MQYXG_P""^WCGXJ_MA?'+Q_XXTKX$^&?&<OA/X-?#3PEXSU+P[%<BWBCFFUC4
M9=-G@N+FX=9[?RT:3RX295"EE#T ?J=17YP?L)_MG?%7]F/_ (*M>/O^"*O[
M2GQ-UCQGIIT5/%7P#\;^*;TW.K7.EO")IM)O+AOGO'A N/+GDS(RVDV]FR@7
M]'Z "BBB@#RC]N?_ )-'\>_]@%__ $-:[KX7?\DS\._]@*T_]$I7"_MS_P#)
MH_CW_L O_P"AK7=?"[_DF?AW_L!6G_HE* -VBBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@#YO_ ."P_BC6O!O_  2H_:)\0^'I7CO(O@WXACAE
MB.&C\RPEC+@]BJN2#VQFOE__ (-)-"LM(_X(N^$=0M442:IXQ\075R1U9Q>M
M""??;"@_ 5]]_M)_!71/VDOV=_'G[/'B6?R=/\=^#=3\/WLP3<8H[RUDMV<#
MU429'N!7YS_\&I.K^)_A5^R-\3O^"?GQBL?[*^(GP+^+FHZ?X@T*5OGBM;I4
ME@N%S@M%),EWL<#:RHK D,* /#_^"L6JWGA'_@[0_8[USPTQBO;SP5HUK=M%
MP6@FU37;>3/UBDD4^PK]O:_'V'X17O[?W_!V#>?'#P[#]N\#_LJ_#^STK7-8
MB^:V?6Y(+MX;!7''G1S:E/(R_P )L9%;!P#^P5 !7&?&;XF^+_AEIEE?^$/@
M[K7C&2ZG:.:VT62-6MU"Y#MO(X)XXKLZ* /DK]JK]H_XJ^+/V=_%OAS7_P!D
MOQCH5G>:4T=QJ][/;M%:KN7YV"MDCZ>M<_X6_P""BG[4NA>&--T33?\ @EO\
M3M1M[.PA@M]0@N@([I$0*LJ_N#\K !AR>#UKW[]N?_DT?Q[_ -@%_P#T-:[K
MX7?\DS\._P#8"M/_ $2E 'RM_P /*?VLO^D3_P 4_P#P+'_R/1_P\I_:R_Z1
M/_%/_P "Q_\ (]?8U% 'QS_P\I_:R_Z1/_%/_P "Q_\ (]'_  \I_:R_Z1/_
M !3_ / L?_(]?8U% 'QS_P /*?VLO^D3_P 4_P#P+'_R/1_P\I_:R_Z1/_%/
M_P "Q_\ (]?8U% 'QS_P\I_:R_Z1/_%/_P "Q_\ (]'_  \I_:R_Z1/_ !3_
M / L?_(]?8U% 'QS_P /*?VLO^D3_P 4_P#P+'_R/1_P\I_:R_Z1/_%/_P "
MQ_\ (]?8U% 'QS_P\I_:R_Z1/_%/_P "Q_\ (]'_  \I_:R_Z1/_ !3_ / L
M?_(]?8U% 'QS_P /*?VLO^D3_P 4_P#P+'_R/1_P\I_:R_Z1/_%/_P "Q_\
M(]?8U% 'QS_P\I_:R_Z1/_%/_P "Q_\ (]'_  \I_:R_Z1/_ !3_ / L?_(]
M?8U% 'QS_P /*?VLO^D3_P 4_P#P+'_R/1_P\I_:R_Z1/_%/_P "Q_\ (]?8
MU% 'QS_P\I_:R_Z1/_%/_P "Q_\ (]'_  \I_:R_Z1/_ !3_ / L?_(]?8U%
M 'QS_P /*?VLO^D3_P 4_P#P+'_R/1_P\I_:R_Z1/_%/_P "Q_\ (]?8U% '
MQS_P\I_:R_Z1/_%/_P "Q_\ (]'_  \I_:R_Z1/_ !3_ / L?_(]?8U% 'QS
M_P /*?VLO^D3_P 4_P#P+'_R/5#Q/_P5._:6\':!=>)_$O\ P2U^)-A8647F
M75Y>ZBL<42_WF8V^%'O7VK7E'[<__)H_CW_L O\ ^AK0!X78_P#!3;]JG4;*
M'4++_@E-\4)89XEDBEBO0RNK#((/V?D$'.:E_P"'E/[67_2)_P"*?_@6/_D>
MOJGX7?\ ),_#O_8"M/\ T2E;M 'QS_P\I_:R_P"D3_Q3_P# L?\ R/1_P\I_
M:R_Z1/\ Q3_\"Q_\CU]C44 ?'/\ P\I_:R_Z1/\ Q3_\"Q_\CT?\/*?VLO\
MI$_\4_\ P+'_ ,CU]C44 ?'/_#RG]K+_ *1/_%/_ ,"Q_P#(]'_#RG]K+_I$
M_P#%/_P+'_R/7V-10!\<_P##RG]K+_I$_P#%/_P+'_R/1_P\I_:R_P"D3_Q3
M_P# L?\ R/7V-10!\<_\/*?VLO\ I$_\4_\ P+'_ ,CT?\/*?VLO^D3_ ,4_
M_ L?_(]?8U% 'QS_ ,/*?VLO^D3_ ,4__ L?_(]'_#RG]K+_ *1/_%/_ ,"Q
M_P#(]?8U% 'QS_P\I_:R_P"D3_Q3_P# L?\ R/1_P\I_:R_Z1/\ Q3_\"Q_\
MCU]C44 ?'/\ P\I_:R_Z1/\ Q3_\"Q_\CT?\/*?VLO\ I$_\4_\ P+'_ ,CU
M]C44 ?'/_#RG]K+_ *1/_%/_ ,"Q_P#(]'_#RG]K+_I$_P#%/_P+'_R/7V-1
M0!\<_P##RG]K+_I$_P#%/_P+'_R/1_P\I_:R_P"D3_Q3_P# L?\ R/7V-10!
M\<_\/*?VLO\ I$_\4_\ P+'_ ,CT?\/*?VLO^D3_ ,4__ L?_(]?8U% 'QS_
M ,/*?VLO^D3_ ,4__ L?_(]'_#RG]K+_ *1/_%/_ ,"Q_P#(]?8U% 'Q5XG_
M ."IW[2W@[0+KQ/XE_X):_$FPL+*+S+J\O=16.*)?[S,;?"CWJU8_P#!3;]J
MG4;*'4++_@E-\4)89XEDBEBO0RNK#((/V?D$'.:]T_;G_P"31_'O_8!?_P!#
M6NZ^%W_),_#O_8"M/_1*4 ?*W_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I
M$_\ %/\ \"Q_\CU]C44 ?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_
M\4__  +'_P CU]C44 ?'/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\
M%/\ \"Q_\CU]C44 ?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__
M  +'_P CU]C44 ?'/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\ %/\
M\"Q_\CU]C44 ?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__  +'
M_P CU]C44 ?'/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\ %/\ \"Q_
M\CU]C44 ?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__  +'_P C
MU]C44 ?'/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\ %/\ \"Q_\CU]
MC44 ?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__  +'_P CU]C4
M4 ?'/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\ %/\ \"Q_\CU]C44
M?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__  +'_P CU]C44 ?'
M/_#RG]K+_I$_\4__  +'_P CU0\3_P#!4[]I;P=H%UXG\2_\$M?B386%E%YE
MU>7NHK'%$O\ >9C;X4>]?:M>4?MS_P#)H_CW_L O_P"AK0!X78_\%-OVJ=1L
MH=0LO^"4WQ0EAGB62*6*]#*ZL,@@_9^00<YJ7_AY3^UE_P!(G_BG_P"!8_\
MD>OJGX7?\DS\._\ 8"M/_1*5NT ?'/\ P\I_:R_Z1/\ Q3_\"Q_\CT?\/*?V
MLO\ I$_\4_\ P+'_ ,CU]C44 ?'/_#RG]K+_ *1/_%/_ ,"Q_P#(]'_#RG]K
M+_I$_P#%/_P+'_R/7V-10!\<_P##RG]K+_I$_P#%/_P+'_R/1_P\I_:R_P"D
M3_Q3_P# L?\ R/7V-10!\<_\/*?VLO\ I$_\4_\ P+'_ ,CT?\/*?VLO^D3_
M ,4__ L?_(]?8U% 'QS_ ,/*?VLO^D3_ ,4__ L?_(]'_#RG]K+_ *1/_%/_
M ,"Q_P#(]?8U% 'QS_P\I_:R_P"D3_Q3_P# L?\ R/1_P\I_:R_Z1/\ Q3_\
M"Q_\CU]C44 ?'/\ P\I_:R_Z1/\ Q3_\"Q_\CT?\/*?VLO\ I$_\4_\ P+'_
M ,CU]C44 ?'/_#RG]K+_ *1/_%/_ ,"Q_P#(]'_#RG]K+_I$_P#%/_P+'_R/
M7V-10!\<_P##RG]K+_I$_P#%/_P+'_R/1_P\I_:R_P"D3_Q3_P# L?\ R/7V
M-10!\<_\/*?VLO\ I$_\4_\ P+'_ ,CT?\/*?VLO^D3_ ,4__ L?_(]?8U%
M'QS_ ,/*?VLO^D3_ ,4__ L?_(]'_#RG]K+_ *1/_%/_ ,"Q_P#(]?8U% 'Q
MS_P\I_:R_P"D3_Q3_P# L?\ R/1_P\I_:R_Z1/\ Q3_\"Q_\CU]C44 ?%7B?
M_@J=^TMX.T"Z\3^)?^"6OQ)L+"RB\RZO+W45CBB7^\S&WPH]ZM6/_!3;]JG4
M;*'4++_@E-\4)89XEDBEBO0RNK#((/V?D$'.:]T_;G_Y-'\>_P#8!?\ ]#6N
MZ^%W_),_#O\ V K3_P!$I0!\K?\ #RG]K+_I$_\ %/\ \"Q_\CT?\/*?VLO^
MD3_Q3_\  L?_ "/7V-10!\<_\/*?VLO^D3_Q3_\  L?_ "/1_P /*?VLO^D3
M_P 4_P#P+'_R/7V-10!\<_\ #RG]K+_I$_\ %/\ \"Q_\CT?\/*?VLO^D3_Q
M3_\  L?_ "/7V-10!\<_\/*?VLO^D3_Q3_\  L?_ "/1_P /*?VLO^D3_P 4
M_P#P+'_R/7V-10!\<_\ #RG]K+_I$_\ %/\ \"Q_\CT?\/*?VLO^D3_Q3_\
M L?_ "/7V-10!\<_\/*?VLO^D3_Q3_\  L?_ "/1_P /*?VLO^D3_P 4_P#P
M+'_R/7V-10!\<_\ #RG]K+_I$_\ %/\ \"Q_\CT?\/*?VLO^D3_Q3_\  L?_
M "/7V-10!\<_\/*?VLO^D3_Q3_\  L?_ "/1_P /*?VLO^D3_P 4_P#P+'_R
M/7V-10!\<_\ #RG]K+_I$_\ %/\ \"Q_\CT?\/*?VLO^D3_Q3_\  L?_ "/7
MV-10!\<_\/*?VLO^D3_Q3_\  L?_ "/1_P /*?VLO^D3_P 4_P#P+'_R/7V-
M10!\<_\ #RG]K+_I$_\ %/\ \"Q_\CT?\/*?VLO^D3_Q3_\  L?_ "/7V-10
M!\<_\/*?VLO^D3_Q3_\  L?_ "/1_P /*?VLO^D3_P 4_P#P+'_R/7V-10!\
M<_\ #RG]K+_I$_\ %/\ \"Q_\CT?\/*?VLO^D3_Q3_\  L?_ "/7V-10!P7[
M-_QTM_VA_AJOQ"@\)W>B.+^>SN--O95>2&6)MK@E0!UR/PKO:\+_ .">_P#R
M1/5O^Q[UG_TI->Z4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M5X5\>?\ @G'^RQ^T)\5T^/GB+P_XC\-^/?[*_LNZ\;?#KQQJGAK5+ZPX_P!$
MN;C3+B!KJ(8&U9=^S:-I7%>ZT4 <)^SG^S'\ _V2?AK#\(OV<_AAIOA70(KF
M2YDM+!7:2ZN9"#)<W$TC-+<SO@;II7>1L#+' KNZY/XN?'?X+? +1+3Q'\;?
MBMX?\)V.H:A#8:?<>(-6BM1=W<KA([>+S&!EE9F "+ECGI764 %%>=_M$?M<
M?LN_LC^'K;Q5^T]^T'X/\ V-[(R6$WBOQ!!9&\=0"RPK(P:9@""0@8@')JU\
M _VG?V<_VJ/"4GCO]FOXZ>$_'FCPS>3<ZAX3UZ"_CMY<9\N0PLWEOCG:V#CM
M0!VM]86.J6DFGZG917%O*NV6">,.CCT*G@BGQ1101+!!&J(BA41!@*!T '84
MZN1\+?'?X4^-OB_XL^ WA;Q5]L\5>!K/3;KQ7IL=C.%T^._25[0-,R"%G=()
M'\M'9U7:S*H="P!UU%<G\4_CO\%?@>-&_P"%P_%;P_X8;Q%K-OI/A^+7-6BM
MGU._GD6**VMT=@TTK.Z@(@)YSTYKK* "BN#^/O[47[.'[*_AF#QA^TC\<_"O
M@?3KR8PV-SXGUN&S^UR@ F.%9&#3/@@[$#-CG%/^ G[3G[.O[4_A*3QU^S;\
M</"OCK2()_(NK_PMKD%ZEO-U\J7RF)B?'.Q\-CG% '<T444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !117)_%SX[_  6^ 6B6GB/XV_%;P_X3L=0U
M"&PT^X\0:M%:B[NY7"1V\7F,#+*S, $7+'/2@#K***\[_:(_:X_9=_9'\/6W
MBK]I[]H/P?X!L;V1DL)O%?B""R-XZ@%EA61@TS $$A Q .30!Z)45]86.J6D
MFGZG917%O*NV6">,.CCT*G@BN*^ ?[3O[.?[5'A*3QW^S7\=/"?CS1X9O)N=
M0\)Z]!?QV\N,^7(86;RWQSM;!QVKNJ &Q1101+!!&J(BA41!@*!T '84ZN1\
M+?'?X4^-OB_XL^ WA;Q5]L\5>!K/3;KQ7IL=C.%T^._25[0-,R"%G=()'\M'
M9U7:S*H="WFOQ _X*C?\$W_A3\4)/@M\2?VZ?A3H?BF"Y^SWFB:GXZLHIK2;
M./*GW28@?/\ !(5;VH ]XHJ'3]0L-6L(-4TN]AN;6YA66VN;>0/'+&P!5U8<
M,I!!!'!!KE_C;\?O@=^S7X&E^)G[07Q=\.>"O#\,JQ/K'B?6(;*W,K9VQ*\K
M*&D;!VHN6;' - '745Q'P&_:5_9\_:C\(/X^_9R^-7ACQQH\-R;>YU#PQK4-
MXEO..L4OEL3%(!R4?#8(..:[>@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BN3^+GQW^"WP"T2T\1_&WXK>'_  G8ZAJ$-AI]QX@U:*U%W=RN
M$CMXO,8&65F8 (N6.>E=90 45YW^T1^UQ^R[^R/X>MO%7[3W[0?@_P  V-[(
MR6$WBOQ!!9&\=0"RPK(P:9@""0@8@')JU\ _VG?V<_VJ/"4GCO\ 9K^.GA/Q
MYH\,WDW.H>$]>@OX[>7&?+D,+-Y;XYVM@X[4 =K?6%CJEI)I^IV45Q;RKME@
MGC#HX]"IX(I\444$2P01JB(H5$08"@= !V%.KD?"WQW^%/C;XO\ BSX#>%O%
M7VSQ5X&L]-NO%>FQV,X73X[])7M TS((6=T@D?RT=G5=K,JAT+ '745X/\0/
M^"HW_!-_X4_%"3X+?$G]NGX4Z'XI@N?L]YHFI^.K**:TFSCRI]TF('S_  2%
M6]J]RT_4+#5K"#5-+O8;FUN85EMKFWD#QRQL 5=6'#*0001P0: )J*JZUK>C
M>&](NO$'B+5[6PL+*!I[R^O;A8H8(E&6=W8A54 $DD@ "L?X4?%SX7_'7P%8
M_%3X,>/])\4^&M4:8:;KVA7R7-I=^5,\,ABEC)611)&Z[E)!*G!- '14444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !117)_%SX[_  6^ 6B6GB/X
MV_%;P_X3L=0U"&PT^X\0:M%:B[NY7"1V\7F,#+*S, $7+'/2@#K***\[_:(_
M:X_9=_9'\/6WBK]I[]H/P?X!L;V1DL)O%?B""R-XZ@%EA61@TS $$A Q .30
M!Z)45]86.J6DFGZG917%O*NV6">,.CCT*G@BN*^ ?[3O[.?[5'A*3QW^S7\=
M/"?CS1X9O)N=0\)Z]!?QV\N,^7(86;RWQSM;!QVKNJ &Q1101+!!&J(BA41!
M@*!T '84ZN1\+?'?X4^-OB_XL^ WA;Q5]L\5>!K/3;KQ7IL=C.%T^._25[0-
M,R"%G=()'\M'9U7:S*H="WFOQ _X*C?\$W_A3\4)/@M\2?VZ?A3H?BF"Y^SW
MFB:GXZLHIK2;./*GW28@?/\ !(5;VH ]XHJ'3]0L-6L(-4TN]AN;6YA66VN;
M>0/'+&P!5U8<,I!!!'!!KSK]HW]LO]DW]D+2[36/VHOVCO!G@&'4"PTY?%/B
M&"SDO-OWO)CD8/+C(SL!QGF@#TNBN,^!O[17P"_:;\&#XB?LZ?&GPMXYT(RF
M)M6\)Z[!?P)* "8W>%F". 1E&PP[BNSH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HKD_BY\=_@M\ M$M/$?QM^*WA_PG8ZAJ$-AI]QX@U:*U
M%W=RN$CMXO,8&65F8 (N6.>E=90 45YW^T1^UQ^R[^R/X>MO%7[3W[0?@_P#
M8WLC)83>*_$$%D;QU ++"LC!IF ()"!B <FK7P#_ &G?V<_VJ/"4GCO]FOXZ
M>$_'FCPS>3<ZAX3UZ"_CMY<9\N0PLWEOCG:V#CM0!VM]86.J6DFGZG917%O*
MNV6">,.CCT*G@BGQ1101+!!&J(BA41!@*!T '84ZN1\+?'?X4^-OB_XL^ WA
M;Q5]L\5>!K/3;KQ7IL=C.%T^._25[0-,R"%G=()'\M'9U7:S*H="P!UU%>#_
M ! _X*C?\$W_ (4_%"3X+?$G]NGX4Z'XI@N?L]YHFI^.K**:TFSCRI]TF('S
M_!(5;VKW+3]0L-6L(-4TN]AN;6YA66VN;>0/'+&P!5U8<,I!!!'!!H FHKS;
M]HW]L7]E/]D+1;3Q!^U%^T3X.\ VNH.R:<WBG7X+-[QEQN$*2,'F*Y&0@.,\
MUM?!']H'X%_M+>!H_B9^SS\8?#/C?P]+*T2ZSX5UN"_MQ*H!:-GA9@KC(RAP
MPSR!0!U]%%% !1110 4444 %%%% !1110 4444 %%%% !1110 445R?Q<^._
MP6^ 6B6GB/XV_%;P_P"$['4-0AL-/N/$&K16HN[N5PD=O%YC RRLS !%RQST
MH ZRBBO._P!HC]KC]EW]D?P];>*OVGOV@_!_@&QO9&2PF\5^((+(WCJ 66%9
M&#3, 02$#$ Y- 'HE%<+\ _VG?V<_P!JCPE)X[_9K^.GA/QYH\,WDW.H>$]>
M@OX[>7&?+D,+-Y;XYVM@X[5W5 $&GZ7IFD0&VTK3H+6-I&=H[>%44L3DM@ <
MD]34]<CX6^._PI\;?%_Q9\!O"WBK[9XJ\#6>FW7BO38[&<+I\=^DKV@:9D$+
M.Z02/Y:.SJNUF50Z%O-?B!_P5&_X)O\ PI^*$GP6^)/[=/PIT/Q3!<_9[S1-
M3\=644UI-G'E3[I,0/G^"0JWM0![Q14.GZA8:M80:II=[#<VMS"LMM<V\@>.
M6-@"KJPX92"""."#4U !17$Z3^TC\!=>^/6J?LNZ+\6]"N_B)HFAIK.L>#K>
M_5[^RL':-5N)8ARB$RQ8S@D2(>C UVU !1110 4444 %%%% !1110 4444 %
M%%% !1110!^'7_!T?^RS\(?A_P#M$_LJ?M&>&M.U7_A*O$/QK2PUG4=3\2WU
M]YT#75I.D2)<S2);QQOOV1PA$4.5"X"@?N+7Y ?\'87_ "%/V/?^R_P?^A6U
M?K_0!\0P?\$6/V:_VG_C7XT_:R_X*1_#2V^)_CCQ+KEY;>&])UW4YIM+\)^'
M(9Y(M.L+2WC=8A(UNL=Q-(06-Q/-M(&2WYY^)?V-;3_@BG_P<@? /P]^P7J.
MIZ5\._C_ !/:>(/ 3:A+<0V]OYDD5W%F1F>2"+]S=Q%RS(Z.,[1@_O'JNJZ9
MH6F7.MZWJ4%G96<#SW=W=3+'%!$BEGD=V("JJ@DDG  )-?!'['/P:O/V_?\
M@HOJ7_!8_P"(&BS6_@;POX;D\'?LRZ??0F.2_P!.9I?MWB=D8!D6[:::*VR
MSVS;V4!HR0#[VU;5M,T'2KG7-:OXK6SLK=Y[NZG<*D,2*69V)X  !)/8"OE7
M_@C[I.I^-_V?/$G[:_BRPEAUK]HKQYJ'CU5ND(F@T279::';DGDJFDVMDP'
M#2O@<U:_X+!^+O$4G[(H_9G^'^JR6?BKX^^*].^&>A7$!^>VBU1RNI70[CR-
M+CU"?<.AB%?2W@WPCX<^'_A#2O 7@_2HK'2-$TV"PTNQA&$M[:&-8XHU]E15
M ]A0!^)?_!P]^RS\(OA%_P %1?V$_C?X(T[51XB\8_'"&V\2ZCJWB6^U%[M+
M?6-%EMU7[7-)Y*1FYG"I'M0*X4*%10/W&K\?_P#@YI_Y/G_X)V_]E^/_ *<_
M#]?L!0!^3W_!"OXOV/\ P4B_X*(_M6?M^_%N"/5M8\'>+;;P5\)[>^42+X5\
M/(UW\EJK<0R7 CC>5UP6<2<@.P/&?\%IO%X_X)&_\%;_ -G?_@I-\#(4T/1_
MB[J<_A/X[:/IX\JUUZUBFML7<\:X62Y$-U(ZR'D/919)RV[+^ /[-?[<W_!!
M#_@J!\6OB#\,?V1/'/QL_9M^.>HF_)^%M@FH:QH%R+B:>W1[,NIS ;JXA))6
M.6*1)!('1HAX]_P<(_&7XR_\%)OVU?V2OV$X/V7O$OP\GU_Q3_:=CI7C'4;-
MM;EM+RZ@MC>7-E92SI8P1I;7;C?,TI6.4O'$$&\ _H)HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "OPZ_X.C_V6?A#\/_VB?V5/VC/#6G:K_P )
M5XA^-:6&LZCJ?B6^OO.@:ZM)TB1+F:1+>.-]^R.$(BARH7 4#]Q:_(#_ (.P
MO^0I^Q[_ -E_@_\ 0K:@#]?Z^(8/^"+'[-?[3_QK\:?M9?\ !2/X:6WQ/\<>
M)=<O+;PWI.NZG--I?A/PY#/)%IUA:6\;K$)&MUCN)I""QN)YMI R6^WJ@U75
M=,T+3+G6];U*"SLK.!Y[N[NIECB@B12SR.[$!550223@ $F@#\'/$O[&MI_P
M13_X.0/@'X>_8+U'4]*^'?Q_B>T\0> FU"6XAM[?S)(KN+,C,\D$7[F[B+EF
M1T<9VC!_>+5M6TS0=*N=<UJ_BM;.RMWGN[J=PJ0Q(I9G8G@  $D]@*^"?V.?
M@U>?M^_\%%]2_P""Q_Q T6:W\#>%_#<G@[]F73[Z$QR7^G,TOV[Q.R, R+=M
M--%;9 9[9M[* T9/JW_!8/Q=XBD_9%'[,_P_U62S\5?'WQ7IWPST*X@/SVT6
MJ.5U*Z'<>1I<>H3[AT,0H \E_9(^%/Q\_:2_X)Y?$'X^_"WQ1=^$?'7[6GQ
MF\3OXHWB.^\.^$[RYM["RDMV;GSX/#MM%) .,7$H/ R:3X@?\&Q/_!'OQC^S
M[=_ _1?V:4T34I-.:*R\?VNL7<NN0797B\>>24B=]_SF-U,1R0$ P!]X^#?"
M/ASX?^$-*\!>#]*BL=(T338+#2[&$82WMH8UCBC7V5%4#V%>._\ !0/]K34_
MV4_@<TOPQ\--XG^*?C*Y.@?"+P1;X,VN:[,C>4""0%MH%#7%Q*Q"1P0NS,/E
M! /@#_@T6^(WQ[B_9O\ C-^R9\7?$T^M:/\ !?XGOH7A74)96D2!2)1<VD+-
M_P L4DA$JK_#]J/8@"+_ ()Z_%M/^"M'_!?+X[?M ?$(KK/@/]EJV7PO\(M"
MNAYEG8:C/=36\NL(A^4W$OV"\99"-PCEB'6)"/N;_@E%_P $^]$_X)L?L;Z)
M^S__ &ZNM^*+V\GU[XB>)@#G6=?N]K75QD@$H-J0H2 3'"A8;B:_-#_@S=L[
MO3O&'[8&GZ_N&M0>/=%CU59/OAUDU@?-WSO$OXYH ]1_X+._%Z7_ ()1?\%6
M?V<?^"B7PS9=*\/_ !8O9_ _QXTZV'EV^M6,4MN;>\G08$ES!'<SNDI^?%I&
MF[86!_7"OQ(_X/;'%U^RW\#-!M(C)>W?Q'O3:Q(,N^+':0!_O2(/Q%?M;HD%
M[;:-:6VI2[[F.UC6X?.=SA0&/YYH M4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% 'X=?\'1_[+/PA^'_ .T3^RI^T9X:T[5?^$J\0_&M+#6=1U/Q
M+?7WG0-=6DZ1(ES-(EO'&^_9'"$10Y4+@*!^XM?D!_P=A?\ (4_8]_[+_!_Z
M%;5^O] 'Q#!_P18_9K_:?^-?C3]K+_@I'\-+;XG^./$NN7EMX;TG7=3FFTOP
MGX<AGDBTZPM+>-UB$C6ZQW$TA!8W$\VT@9+?GGXE_8UM/^"*?_!R!\ _#W[!
M>HZGI7P[^/\ $]IX@\!-J$MQ#;V_F217<69&9Y((OW-W$7+,CHXSM&#^\>JZ
MKIFA:9<ZWK>I06=E9P//=W=U,L<4$2*6>1W8@*JJ"22<  DU\$?L<_!J\_;]
M_P""B^I?\%C_ (@:+-;^!O"_AN3P=^S+I]]"8Y+_ $YFE^W>)V1@&1;MIIHK
M;(#/;-O90&C) /O;5M6TS0=*N=<UJ_BM;.RMWGN[J=PJ0Q(I9G8G@  $D]@*
M^!?V2/A3\?/VDO\ @GE\0?C[\+?%%WX1\=?M:?$";Q._BC>([[P[X3O+FWL+
M*2W9N?/@\.VT4D XQ<2@\#)KUK_@L'XN\12?LBC]F?X?ZK)9^*OC[XKT[X9Z
M%<0'Y[:+5'*ZE=#N/(TN/4)]PZ&(5]+>#?"/ASX?^$-*\!>#]*BL=(T338+#
M2[&$82WMH8UCBC7V5%4#V% 'P=\0/^#8G_@CWXQ_9]N_@?HO[-*:)J4FG-%9
M>/[76+N77(+LKQ>//)*1.^_YS&ZF(Y(" 8 \/_X-%OB-\>XOV;_C-^R9\7?$
MT^M:/\%_B>^A>%=0EE:1(%(E%S:0LW_+%)(1*J_P_:CV( ^__P#@H'^UIJ?[
M*?P.:7X8^&F\3_%/QE<G0/A%X(M\&;7-=F1O*!!("VT"AKBXE8A(X(79F'R@
MX/\ P2B_X)]Z)_P38_8WT3]G_P#MU=;\47MY/KWQ$\3 '.LZ_=[6NKC) )0;
M4A0D F.%"PW$T >:?\' ?[+/PA^/G_!,#XT>,_B1IVJWE_X/^&NI:OX?2+Q+
M?06EO>6D37,4QM(IEMY9 R;=\D;-M)7..*J?\&TW_*$#X#?]@C5__3WJ%>H_
M\%FO^43'[1__ &1?Q#_Z02UY=_P;3?\ *$#X#?\ 8(U?_P!/>H4 ?=%%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 5^'7_!T?^RS\(?A_P#M$_LJ
M?M&>&M.U7_A*O$/QK2PUG4=3\2WU]YT#75I.D2)<S2);QQOOV1PA$4.5"X"@
M?N+7Y ?\'87_ "%/V/?^R_P?^A6U 'Z_U\0P?\$6/V:_VG_C7XT_:R_X*1_#
M2V^)_CCQ+KEY;>&])UW4YIM+\)^'(9Y(M.L+2WC=8A(UNL=Q-(06-Q/-M(&2
MWV]4&JZKIFA:9<ZWK>I06=E9P//=W=U,L<4$2*6>1W8@*JJ"22<  DT ?@YX
ME_8UM/\ @BG_ ,'('P#\/?L%ZCJ>E?#OX_Q/:>(/ 3:A+<0V]OYDD5W%F1F>
M2"+]S=Q%RS(Z.,[1@_O%JVK:9H.E7.N:U?Q6MG96[SW=U.X5(8D4LSL3P  "
M2>P%?!/['/P:O/V_?^"B^I?\%C_B!HLUOX&\+^&Y/!W[,NGWT)CDO].9I?MW
MB=D8!D6[:::*VR SVS;V4!HR?5O^"P?B[Q%)^R*/V9_A_JLEGXJ^/OBO3OAG
MH5Q ?GMHM4<KJ5T.X\C2X]0GW#H8A0!Y+^R1\*?CY^TE_P $\OB#\??A;XHN
M_"/CK]K3X@3>)W\4;Q'?>'?"=Y<V]A926[-SY\'AVVBD@'&+B4'@9-)\0/\
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
M*(8).6@TFUF..JC5%YYY^NZK6>CZ1I]Y=:C8:7;07%](LE[/# JO<.JA%9V
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
MG]M7;"66U)\U8F6> B0KL/FISDXK]%J* "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH *_$3_@ZY_:;^ VJ^/OV9O OAGXJ:+K6M>!_C(VJ^,M)T
M._2]N-$MH'M@YNXX2S6[9# (X#'8V =IQ^W=% '.?"WXP_"7XX>#XOB%\&/B
M=X?\6:#,Y2+6?#>L0WMJS@ LOFPLR[@",KG(R,U^-/[?/_!QW^PG\9?VE;G]
MF/QUI/Q)U[X >&9@WBF;P#X:CN/^%CWT;\6#R3W,'EZ,C*&DV[C?$!#MM]WV
MC]N:* /R<T?_ (.L_P!ESXS:YX?_ &>/V)_V2OBQJOQ#\7ZK::!X)LO%?AJS
MT[1K6ZN)$@ADNI(+V21;>,N'98TY2-ANC^\/JB\$G[2W_!8NPTZ1A<:!^S)\
M,VO+ED7:G_"6>),Q1#!)RT&DVLQQU4:HO///UW5:ST?2-/O+K4;#2[:"XOI%
MDO9X8%5[AU4(K.P&7(50H)S@ #H* /(OV]?VZ_@1_P $Z?V<=6_:5_: U.Z7
M3+%Q:Z7I6F6YFO=9OW1VALK:/^*5Q&YR2%54=V*JI(_(K]F/_@YK_8)TOXFZ
ME^US^UQ\(OC5KOQ:UJTDT_3K;1O!-G+I/@G1BX<:3IC2WZ.^\JDES=LB27,B
MKE4CBAB3]VZ* /AS_@FE_P %I_"/_!5/XM^,9/@+\#?$_A/X7?#OPXDWB7Q7
M\1K6&SN[O4[B7-O#;QPSRQI D%O=R2R.Y;+0C;&,EOAS]LC_ (.1OV"OCW^U
M!<?!CXL>$_BAKW[/_@R]BGDT[P=X2BGC^)&J12;D^VFYN8"FD0.BNMMM8W;[
M6EVQ)Y4O[C44 ?E7X*_X.F_V=/VG/B3X4_9E_8F_98^*NI?$+QSK]IHN@2^-
M_#MK8Z-IOG2*CWETUO>RRM%!'OF:-%!=8BN^/.X?JI110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% 'XB?\'7/[3?P&U7Q]^S-X%\,_%31=:UK
MP/\ &1M5\9:3H=^E[<:);0/;!S=QPEFMVR& 1P&.QL [3C]F/A;\8?A+\</!
M\7Q"^#'Q.\/^+-!F<I%K/AO6(;VU9P 67S869=P!&5SD9&:Z.B@#\1OV^?\
M@X[_ &$_C+^TK<_LQ^.M)^).O? #PS,&\4S> ?#4=Q_PL>^C?BP>2>Y@\O1D
M90TFW<;X@(=MON^T>K:/_P '6?[+GQFUSP_^SQ^Q/^R5\6-5^(?B_5;30/!-
MEXK\-6>G:-:W5Q(D$,EU)!>R2+;QEP[+&G*1L-T?WA^L=% 'R)>"3]I;_@L7
M8:=(PN- _9D^&;7ERR+M3_A+/$F8HA@DY:#2;68XZJ-47GGGU7]O7]NOX$?\
M$Z?V<=6_:5_: U.Z73+%Q:Z7I6F6YFO=9OW1VALK:/\ BE<1N<DA55'=BJJ2
M/7;/1](T^\NM1L-+MH+B^D62]GA@57N'50BL[ 9<A5"@G.  .@JS0!^$G[,?
M_!S7^P3I?Q-U+]KG]KCX1?&K7?BUK5I)I^G6VC>";.72?!.C%PXTG3&EOT=]
MY5)+F[9$DN9%7*I'%#$GW[_P3$_X+,^'O^"LWQI\5V/[.?P"\5^&_AOX#T&(
MZ]XD\?V,5K?7^KW4V+6WM88)Y8UA6&"[>1V=G):$;4Y+?;U% 'P;\-_^#D?_
M ()5>,/C%XP^ _Q)^+VK?"SQ+X,URZTR]M/BEH3:5'=R02M&[PRAI$4;EX28
MQ2D$?N^N.>\-?"B/_@IU_P %<_AO_P %#/"G@W5;'X._ #PAJ-EX.\6:WI,U
MBWCC7;]7C>2SAG5)7T^UB?<MTRJLL_$7F(&>OT"O/!_A+4-73Q!?^%].GOX\
M>7>S64;3)CIAR-PQVYK1H **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ K\1/^#KG]IOX#:KX^_9F\"^&?BIHNM:UX'^,C:KXRTG0[]+VXT2V@>V
M#F[CA+-;MD, C@,=C8!VG'[=T4 <Y\+?C#\)?CAX/B^(7P8^)WA_Q9H,SE(M
M9\-ZQ#>VK. "R^;"S+N (RN<C(S7XT_M\_\ !QW^PG\9?VE;G]F/QUI/Q)U[
MX >&9@WBF;P#X:CN/^%CWT;\6#R3W,'EZ,C*&DV[C?$!#MM]WVC]N:* /R<T
M?_@ZS_9<^,VN>'_V>/V)_P!DKXL:K\0_%^JVF@>";+Q7X:L].T:UNKB1((9+
MJ2"]DD6WC+AV6-.4C8;H_O#ZHO!)^TM_P6+L-.D87&@?LR?#-KRY9%VI_P )
M9XDS%$,$G+0:3:S''51JB\\\_7=5K/1](T^\NM1L-+MH+B^D62]GA@57N'50
MBL[ 9<A5"@G.  .@H \B_;U_;K^!'_!.G]G'5OVE?V@-3NETRQ<6NEZ5IEN9
MKW6;]T=H;*VC_BE<1N<DA55'=BJJ2/R*_9C_ .#FO]@G2_B;J7[7/[7'PB^-
M6N_%K6K233].MM&\$V<ND^"=&+AQI.F-+?H[[RJ27-VR))<R*N52.*&)/W;H
MH ^%?^"='_!7?P%_P66^(_COP)\&OV;O$VD_"3POX4^R^+M7^(^GQ6]UJ^H7
M[F.&SMX()Y8Q +>*\:5F=F.^$;4Y+=W_ ,.+O^"/W_2.WX7_ /A.I_C7U?10
M!^#'[&__  3,_8?\9_\ !S#^T[^S)XT_9&\)WWPQ\+_#"SO?"_A2\T7.FV%T
MT7A\M+"AX#DW%QDC_GJ_K7[Q65G:Z=9Q:?8P+%!!$L<,2# 1%& ![ "I:* "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH ***I>(O$?A[PAH5WXH\6:]9:7IEA TU]J.HW2006\2
MC+/)(Y"HH'4D@"@"[17S9:_\%C?^"4][XI_X0ZU_X*&_"%[PW7V97'CJS^SM
M+V07'F>22>V'Y[5[MI?Q/^'6M^)K;P9HOCC2[S5;S0QK-I8VEZDDDVGF01K=
MJ%)S$7(4..">A- &[1110 4444 %%%% !1110 4444 %%%% !117"_'G]I_]
MG#]EOPRGC/\ :2^/'A#P'I<S,MO>^+?$-O8).P )2/SG7S6Y'RKD\CB@#NJ*
M\2^ _P#P4F_8"_:>\4KX$^ /[8GP\\4Z](H>'0M,\46YOIDQNWQV[,))%QSN
M52/>O5_!?CKP;\1M$?Q)X#\366KZ?'J5[I[WFGW EC%U:74MI=0[EXWQ7$$T
M3#L\;#M0!K4444 %%%% !1110 4444 %%%% !1110 445X_^T7^WU^R!^R7\
M3OA_\&OVB?CAIOACQ+\4=6.F^!=+N[6XD;4KGS(X]I>*-TMUWS1())FC0LX
M;/% 'L%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%<)^TY\7-1^ WP#\4_&#2-(@O[GP_I;74-G<N524AE&UBO('
M/:NC!X6MCL73PU%7G.2BEMK)V6OJSFQF+H8#"5,36=H4XN4GO915WIZ([NBO
MS$_X?T?%S_H@GAS_ ,&5Q_A1_P /Z/BY_P!$$\.?^#*X_P *_4?^()>(G_0-
M'_P93_\ DC\L_P"(X^'/_03+_P %U/\ Y$_3NBOS$_X?T?%S_H@GAS_P97'^
M%'_#^CXN?]$$\.?^#*X_PH_X@EXB?] T?_!E/_Y(/^(X^'/_ $$R_P#!=3_Y
M$_3NBOS$_P"']'Q<_P"B">'/_!E<?X4?\/Z/BY_T03PY_P"#*X_PH_X@EXB?
M] T?_!E/_P"2#_B./AS_ -!,O_!=3_Y$_3NBOS$_X?T?%S_H@GAS_P &5Q_A
M1_P_H^+G_1!/#G_@RN/\*/\ B"7B)_T#1_\ !E/_ .2#_B./AS_T$R_\%U/_
M )$_3NBOS$_X?T?%S_H@GAS_ ,&5Q_A7=_LQ_P#!8WXE?'GX^>%O@_J_P;T.
MPMO$&J+:S7EM?S,\0*L=RAN">.]<V,\'./<#A*F)K8>*A"+DW[2#TBKO3F[(
MZ,'XS>'^/Q=/#4<1)SJ248KV<U=R:2UY>[/T )"@LQP!U)K\0OV>/B;J/_!R
MK_P5B\>6/Q-UBZO/V2?V>)HWT7P!;W+I8>+]3>>6*RN]052/M"2FWNKA4;A(
MXHXMO[V9G_8/]J"'Q-<_LT?$2W\%"7^V9/ NKKI/D@[_ +2;*41;<=]^W%?C
M1_P8^7.AM\"/C_:6[I_:2>+=#>[4?>$#6MT(B?;<LV/H:_+S]4/VST_X5?"_
M2/ *_"G2OAOH%KX62T^RKX;M]'@33Q!C'E"W"B,)C^';CVKXI_94_P""5G@G
M]@O_ (*_>)?CS^S3X*ET;X8_%'X,7T6H:'80M_9WAW7+35M.<00#[EO#<Q7,
MTL< X5K>ZV!4"JOWI10!Q/QT_:4_9Z_9B\,0^,_VB_C?X4\#:5<S^1:7WBK7
MH+%+F7_GE$9F7S7Y'R+EO:J'[/?[77[+7[66CW6O?LR?M#^#?'MM8.J:@WA3
MQ%;WK6;'.U9DB<M"3@X#@$U^;/\ P04^,EK_ ,%./V^/VH?^"C'Q<B36-1\,
M^*;7P?\ "&UOU$B^%/#X-TVRU5LB&2=4@:610&9Q)R ["O-O^#DW2;[_ ()=
M?M>? G_@LO\ LI62>'_$MUXHD\.?$ZRTP""#Q7;;!<)%=(F!*TD$5W$[L"QV
MV[ AH4( /VH\0>(= \):'=^)_%6N6>F:;I]N]Q?ZCJ%RD,%M$@RTDDCD*B@
MDL2  *\G\ ?\%#_V$?BGXRLOAY\//VO_ (<ZOK>J1-+H^F6?BZU:74XQUDM1
MO_TI!UW1;QCG-?G/_P '3GQE\16^B?LE^ =:U">'X(^/OC':R_%B1F,=M>6D
M,UA+;VMT>AB:&6^E,;?*3;!L9C!'H?\ P=F?!KX2^+/^",7BCQIX@T/3X]5\
M ^(-"N_!,RPHCV\LVH6]C+#"0,A&M9Y24'!$2G'R# !^E%_XP\):7H=WXGU/
MQ1IUMIMA$TM]J,][&D%LBC+-)(3M0 <DD@ 5YM??MZ?L3Z9\#O\ AIG4OVK_
M (?6_P /#J,UA#XVF\5VJZ9/=12/$\,5P7\N9P\;J%0L25.,U\->%_\ @FY^
MR#:_\&]NJ7/BG]CSPEH'B#Q!^S@?%WB:S32-CP^)5\-F07X1B3#<)+\RXP8S
MD#'->:_\&S?_  3W_9)_:+_X)-^ OBQ^TY\'-'^)U[_:7B"RT33/B!I\.JZ;
MH-M_:<XD2RLYT,,+RN#))/M,[DA3)Y<<:( ?J_\ !GXY?!G]HOP!:?%7X"?%
M3P_XS\-7S,MIKOAG5HKVUD93AT$D3,NY3PRDY4\$ UE_M _M5?LT?LH^&H/&
M'[3/Q\\(> M-NY3%9W?BSQ!;V*W4@QE(A*ZF5@""50$@<XQ7Y7?\&RN@6OP%
M_;X_;X_8Z\ S36_@/P1\6H3X4T1IF>/3T%]J]MA=Q.6,%O:QLQY86Z9Z5K_\
M$E?VI/VE_P!K?XQ_M _\% ?"_P"QII_Q4UF]^,&I^#_#'B35/B+:::_ACP[8
M0V[6NCVD$\$C0J5N//FDC*B>2;<P)3- 'Z>_ 3]J']F_]J?PC+X]_9L^.WA+
MQWHUO-Y5WJ'A37X+Z.VDQGRY3$S>4^.=KX..<8KD+?\ X*2_\$Z[N_32K7]O
MCX*RW4LPBCMH_BGI#2/(3@(%%QDL3QCKFOSY_9J_X)K?\%#O@]_P72;_ (*$
M_"O]G/PM\)/A%XYL&L_BGX&TKQ[;7:7;-9NK7*P01(A8W:P7'RJ#O\TY_>/F
MM_P<9_\ !.CQ1\-_$'AK_@N)^P]X<T^P^*OP3U*WUKQS9QV:^5KVEVSAOMDR
M# DD@4%92<,]LS_-F",$ _2WXC_MJ?L;_!SQL_PU^+O[6GPS\*^(XUB:3P_X
MD\>:=8WJB0!HR8)IED 8$%>.01C->F5^>?\ P2HF\ _\%6_'L/\ P6S^*OAW
M0YM1-E+X5^#O@Y;F.^?P+I]M*XNYKAPH']IW5PTCEL Q6K0(I_>.3^AE 'SY
M_P %2?V]/"O_  35_8<\<?M;^(]-BU&[T&Q2W\-Z-*Y4:EJMPXAM8"1SL\Q@
M\A'(BCD8<BOC3_@@#^Q-<_M&_":U_P""P7_!0L1_$OXV?%FXGU#PUJ/BJV6Y
MA\)Z*D[I;0Z?;N#%:&3:TH:(#;%)&B[?WF_C?^#T^'Q-)_P3"\"RZ6)#IT?Q
MNT\ZJ(P<#.E:J(RV/X=QQSQN*]\5][?\$A;G0[K_ ()4?LW2^'GC:V'P-\+(
MQCZ>:NE6RR@_[0D#@^^: .]_:L_8Y_9N_;8^%M[\(?VE/A5I?B32[J%EMI[F
MW47FFRD?+<6EP!YEK.AP5DC96!'<9!\9_P""+'[*/CS]A7]B&/\ 8]\>R7ER
MW@#Q_P")K'1=6O+=HSJNF3:K<7EI>#(P?,BN59MN0'WKDE37UG7R5_P7(_;:
M\7?\$_/^"8?Q-_:+^&UP(?%<-A;Z3X4N2@;[+?WUQ':I<@'(+0K(\X!!!:(
M@@T >F_&S_@HU^P/^S=XT/PY^/?[9'PV\(Z^@0SZ-KWC"TM[FV5ONM-&TFZ%
M6SPSA0>QKU7P9XU\&_$?PM8^.?AYXMTS7M$U. 3Z;K&C7\=U:W<1Z/%+$S)(
MI]5)%?)W_!%S]F3X1^"_^"3?PJL+[PGI^N3_ !3^'>G^*OB-?ZU;+>3>)=1U
M>U2]NI+]Y0QNV)N&CS*6^10O08KX-_X)57^J?\$\?^"^'Q[_ ."+>D7=S>_!
M/QIIMSXA\&>&KJX:2'1Y9K*"_P#+AW$E(S;3SVS]W-M"Q)*Y(!^O-S^U/^S3
M:?%'5/@E<_'WP>GB[0O#UQKVN^'#XBM_MFEZ9 T:2WES'OW6\*M+&"\FT?-[
M'&;\.OVV/V//B[\*M5^.GPR_:D^'^N>"]!NGMM<\6:=XMM)-.T^5 "R3W D\
MN(A65OF(RK*1P03^,W[-G[ G[-'B#_@ZS_:._9;LOAY8:5\+K'X2VFKZG\/-
M,M5BTK6%E@\,W3V=Q"H -LU[<+=-$,*[PJC!HV=&]@_X+7_\$9_^";_[%_\
MP1D^/GB_]G?]FVPT;54U'3-?T_4+C4;J[FTV[;5+*W(M6GD<P1^3)+'L7 *R
M$'/& #])?B7_ ,%#/V%/@U\/O#/Q5^*_[7GP[\/>'?&EHEWX1U?5O%MK!#K-
MNRAA-:EG'GQ[64ETRH# DC(KTWP)X^\"_%'PAI_Q"^&?C/2?$6@:M;BXTK6]
M#U&*[M+R(])(IHF9)%.#RI(XK\R?^":W_!%3]@']K/\ X)<_"/X@?M:?"=_B
M+XI\9_!W1(F\3Z_J$PN]$LA8HMM9::8F5;&*!#\OEJ&D<O)*79V)^>/^#<7X
MH>//^"=O[5?[8W_!-/XF^+[[7/ _P7CU'Q5HTDIR88;&X:&>:->B&YMWM960
M<!X\CDL2 ?L9^T%^V!^RM^RA8VFH?M+_ +1/@WP*FH;O[.C\4>(;>SEO-OWO
M)CD8/+COL!QWK3^!?[1_[/W[3W@\_$#]G+XV^%?'6B++Y4FJ>$]>M[^&*3&3
M&[0NP1P.J-AAW%?G'_P;#^*=0_;3^&OQB_X*E?'B.#6/BG\1?BO?:2-5N!YK
M:'H=I:VLEKI-HS9,%O&US)\JXW@1E]S+FO$_^"GH;_@CC_P7N_9__:]_9JM5
M\/>$OVCKT:!\5_"6EJ(;'59([VUMKJ[,*83S1'?VLZD $SPLY/[V3(!^Q/Q(
M_:,^ ?P>\5^'? ?Q3^,WAGP_KOB[4X=.\*Z)JVM0PWFKW4KB..*V@9A),Q8X
M^13COBL_X??M<?LM_%GXN>(/@%\+_P!HCP7XA\;^%$+^)/"FC>)+:YO]-"N$
M<S01N73:[*C9'R,RJV"0#^.W_!?G]D[X2Z7_ ,%K?V)]6^%>CIX(\1?%'Q_+
M#XN\6>%XE@U"YE74]/"W7F8/^DH+F4)*02OR=0B@?HEX5_X(I_L,? ?QSXS^
M/'[&_P *K?X6_$WQ-\.+_P *Z;XKT*\NFATIKB$(M]':M+Y7V@.D+M( '<QD
MEMSNS 'I'Q2_X*:_\$[_ ()>-;KX=?%O]MOX7^'M<T^Z6VU33-4\:V<4NGS-
MG$=R#)_H[<'B7::].U+XR_"+1_A;)\<=4^*/AZ#P7%IG]HR>+9=9@&FBSQN%
MQ]IW>5Y1!!#[L'/6OS:_9*^'O[,G_!/;_@G=XA_X),:_<O\ M%_$V?3]=E^*
M/A_X5>%_[09Y]0>=MVJ7$SI;6)6(Q1A[^XAD81 HO  Q/^#1)H/BS_P1JO?
M7Q-L;?Q!HNF?%76+"STK68%NK9+;RK&[$7ER KM$\TD@&,!F)ZT >D?\$[O^
M"]?[+?[:/[57QZ_MO]I+P=X3^'_AS5= T+X36OC#Q'9Z5/KP"WOVS4(8KETD
MD\Z8Q*J\D1I!E4=F%?4/[7/@_P#X)R:[\6OA3XD_;0M?AO)XVTGQ;;Q_!\^,
M;NW34/[7N)XHXDL8W8/,[3+ 0JJP#HCX!0,/S7_X-G?@Q\'O%G[4?[<\?BKX
M4>&M371?CT8M&74-"MYA8(+[5\+#O0^4!M7A<#Y1Z"L[_@X!_9]^#7PQ_P""
MSO\ P3V^,'@#X=Z7I/B/QU\>K?\ X2[5K&U"3:LUMKWAYH7G8<R,GVJ8 GD*
MP7H   ?MG))'%&TLKA54$LS'  '<UX/:_P#!4O\ X)LWOQ%3X2VG[>7PDD\1
M279M(M,7Q]8;Y+@'!@5O-VM*&(7RP2V3C&>*^)?^#ES]J3Q=9:Y^SA_P3-\(
M>*;W1-/_ &D/BC9Z3\0-3TRY:&<Z M]8VLMF)%(*I.]Z"^TY*V[(?ED8'[=_
M:M_X)W?LQ_M4_L5:Q^PWXA^%NA:=X1F\/-I_ABUL=+CC3P[.D96UNK15 $,D
M+[6!7&0"K95F! /<Y[BWM;=[NZG2.*-"\DLC *J@9))/  '>O,M+_;9_8\UK
MX>^*/BYI/[4?@"X\)^"=4;3?%OBF/Q9:'3=)O%2.1H)[KS/*20+-'E2V07 Z
M\5^8W_!LK\6Y?^"B?_!.SX@_L%_MX^%+3X@6OP=\4Q:&MMXG3[6DVES1R?9[
M:7?DR&WD@N41B?EC$*KCRP:\H_X-,/V%?V;/VD_V,OB%X@_:3^'UI\0-.\-?
M&N_MM!\'^+X([[0K2X_LO3Q)?&QD4PSW3(R1B682&)(\1",R2F0 _:3]GW]J
M+]G#]J_PA-X^_9G^.?A7QYHUM=&VNM0\*ZY#>QV\X /E2&)CY;X(.UL'!!Q@
M@UWE?C!_P2J^&O@[]C__ (.D?VL/V0O@#HL/ASX=7?PJL]?B\*:8GE6=M=LN
M@W*^7$ORHD;:I>JBJ $27:H &*_9^@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ K+\:>"_"WQ$\+7W@CQOHD&I:3J4!AOK&Y!*3(2#M;
M';@5J45=.I4I5%.#:DG=-:--;-/HT14ITZU-PFDXM6:>J:>Z:ZIGBW_#NK]B
M+_HV[PY_WY?_ .*H_P"'=7[$7_1MWAS_ +\O_P#%5[317M_ZT\3_ /0=6_\
M!L__ )(\/_53A?\ Z :/_@J'_P B>+?\.ZOV(O\ HV[PY_WY?_XJC_AW5^Q%
M_P!&W>'/^_+_ /Q5>TT4?ZT\3_\ 0=6_\&S_ /D@_P!5.%_^@&C_ ."H?_(G
MBW_#NK]B+_HV[PY_WY?_ .*H_P"'=7[$7_1MWAS_ +\O_P#%5[311_K3Q/\
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
M6\??L$^,8?$'BG4?AMJLO@'6?!VH)=M=3B!P&LI868//PXB*$GS0H'-?0E%
M'XK?\$!O^"GG[*VA_P#!-+2?V'_@O\&?&WB']H.R36$\6> - \(W#7.J:E/<
M3DZK>:G*JVD$)5HD>6ZG1X_+\I4?;&KN_P"#-[]H+3;+]C[Q/^R+'\.O%DOB
M32/BCJVJ>)+]M#DBTW1K5[&RCB$]S)M0W$D\,D0MDW3#8SLBHI:OVAMM/L+.
M::XL[&&*2X??</'$%,K8QN8C[QQQDT^&WM[8,+>!(P[EW"*!N8G))QU)]: /
MPL_X(W_M:^&_^">?_!2S]M+]DCXV_#3QG/\ $WX@_&&35/AKX1T;PQ=7$GB-
M/MNI,A65(S%:PM'<V\WVJX:. 1.SEQM(.U_P<B?M*_ V#_@JC^P:(_B7I-TW
MPF^+QUCXDC3[Q;C_ (1VU;6- D#7?EY\D[+.X?:^&"QYQ@C/[=>3%YOVCRE\
MPKMW[><=<9]*=0!^3O\ P<K_ +%7Q1_;6_9W^$W_  4)_8'N(/&_BKX(:Y)K
MNDP>%9EO_P"V-+EDMYFGM#"6%R\$UG#($0DLC3;<L%4_0?PA_P"#@?\ X)N_
M%+]E2S_:!/QVT>U\5R:4/MGP<2]63Q;_ &P$P^E0:6/])N93,#$CI&8VX;<%
MR1]OUEVW@CP79^(Y?&%GX0TN+5YUVS:I'I\:W,@]&E"[B/J: /SG_P""#_[)
MI_X)0?L!>+_VC?V\=>TCX?>*?BGXJF\7>,XM?U".V30K=U(L["5G('G@-+(8
M_OA[GR\;D(KY\_X,Y/CY\'/"W[)7Q8^$?C/XCZ/H?BFX^+%]XAM_#^MZC':7
M<VF-I=GFZ2.4J9(T^S3EV7(0)EL @G]KZ* /PZ_9'_:U_9K/_!W#\?OC$?C7
MX<7PAXO^%=MX<\,^+)-5B73-2U.*T\.*]M#=$B*1M]E<HN&P[1$+DD9_<6BB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BN?^)OQ9^%?P5\*2^//C)\2_#_A+0X)
M%CFUGQ-K,%A:1NWW5::=U0$X. 3SBN?^#W[6'[+/[0VJ7FA_ ']I;X?^.;W3
M[<3W]GX/\96.IRVT1;:))$MI7**6XW$ 9XH ] HILTT5O$UQ<2JD:*6=W; 4
M#DDD]!7C!_X*2_\ !.M;W^S6_;X^"PN-VWR#\4](WY]-OVC.: /::*BL;ZQU
M2QAU/3+R*YMKB)9;>X@D#I*C#*LK#A@0001P0:R/'GQ+^'WPNTVRU?XC>,]-
MT2UU+6;/2-/GU.[6%;B_NYT@MK9"Q&Z265T15')+4 ;E%%% !17@OQG_ ."I
M/_!./]G?X@R?"CXW?MN_#+PUXEMY/+O-$U3Q?:I<V;\?+.@<FW/(.)-O'/2O
M3/!GQ^^!OQ'O-%L?AU\8/#7B!_$FCW6JZ =#UN"\34;&VDMXKBYA>)F62.-[
MJW5F4D S(.] '745Y-XX_;X_85^&7BB\\$?$G]M/X2^'M:T^=H;_ $C7/B-I
MEI=6TBG#))%+.KHP((((!!%4M+_X*.?\$\]<N19:+^WC\&+R8XQ%:_%'29&.
M3@<+<$]: /9J*I>'O$GAWQ;H\/B'PIKUEJ=A<KNM[[3[I)H91ZJZ$JP^AJ[0
M 445A_#CXE_#[XP>#++XB_"SQGIOB#0=1\S[!J^D7:SV]QY<C1/L=20VV1'4
MXZ%2.U &Y115;6M:T;PYI%SK_B'5K:PL+*!IKR]O9UBA@C499W=B%50 222
M!0!9HKYGE_X+-?\ !)R#Q;_PA,O_  45^#PO_/\ )/\ Q7ED8 ^<8,_F>4.>
M,[\5]&Z#K^A>*M%M?$GA?6K34M.OH%GLK^PN5F@N(F&5='0E74CD$$@T 6Z*
M** "BO.?VA?VO_V5?V3-'AUW]IS]HOP7X"MKH$V1\5^)+:R>ZQU$*2N'F(]$
M#&L3]GW_ (*#?L.?M6:[+X4_9S_:Q\ ^,-8@0O+HFB>)K>6^5 ,ES;;A+LQS
MNV[?>@#V&BLGP/XZ\&_$SPI9^.OA]XFLM9T;48R]AJ>G7 E@N%#%2R.O##*D
M9'I6M0 4444 %%%% !1110 4444 %%%% !117C_Q$_;Z_9 ^$W[5?A']B+XB
M?'#3=+^*7CO3FOO"OA*:UN&DO8 90&,JQF&(L8)@BR.C2&-@@8C% 'L%%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
M?V7I?A=H>K>%M:^']B?%MEJ.GQS)X@NKJUCDO+NZW ^=+-*[R,[9.6&,!0
M?0^@Z]H7BG1;3Q+X8UJTU+3K^W2>QO["Y6:"XB8962-T)5U(((8$@@UR&D?M
M/_LX^(/B-XA^$6@_';PE?>)_"6F'4?%6AVFOV\ESHUJ&*F6[17)MUR#_ *S;
MP,].:_(K_@@9XB\1?LW_ /!2']JC_@@]X]U*Y\3?"SPRNIZUX$TW7)C.+#3S
M=V\3VF6/W)[;4;9W7A?,BD8 &5\\A_P2N_85_9I\2?\ !>W]M+]F[4_A[;K\
M--"$$\7PYM,0Z+>*UY#-';W-L@ GMHW<LMJQ\@D+NC;8FT _8?X#_MW?L6?M
M1^+=3\!?LX?M6_#[QUK6C1F34M*\*^+;2^GAB#!3+LBD8M&&(7S%RN2!G)%5
M]4_X*!?L,:)\<HOV9M7_ &P/AM;?$&:[%I'X-F\9V2ZC]I)PMN83)N$Q/ B(
M#G(PIS7Y%?\ !6#]C7X&_LQ?\%ZOV.;C]DKPRGP@;XJ3W&A>+&^%L,6BE[=I
MEM)I(5@0)!+);7DD32HH? 5@0ZAQZ#_P<S?\$S_V$_@%_P $CM6^+GP%_9?\
M'>"_%/@;Q1HLVC>)?#FBQVVI2>?>QVTHN+M!Y]UN$Q<M,[L757SN&: /U^\;
M^._!'PS\+7GCGXC^,M*\/Z)IT1EU#6-;U&*TM;6,=7DEE941?<D"O,?B5_P4
M,_84^#GP]\-?%CXJ_M>?#OP]X<\9VB77A'6-6\6VL,.LV[ ,)K4LX\^/#*2Z
M94!@21D5\!?\%LOAWX!_:7_X-NX?VG/C/X1L]<\=:=\(_!^N:5XDO4+75C>W
M4NF&XEB;/RF03RJ^/O*Y!SQC2_X)G?\ !%;]@']K/_@EO\)/B#^UK\)W^(WB
MGQE\(-&B;Q-X@U"876B6(LU6VLM-\IE6QB@4Y'E@-)(7DD+L[4 ?IOX#\?\
M@3XI^#]/^(7PR\::3XBT#5K<3Z5K>A:C%=VEY$>!)%-$S)(O!Y4D<5R'[07[
M7W[*_P"RA86FI?M+?M$>#? L>H;O[.3Q1XAM[.6\V_>\F.1@\N.^P''>OQS_
M .#<?XE>._\ @G9^UW^V)_P3-^)7C"_UOP-\'(=1\5Z-)-R8(;&X\J::->B-
M<VTMK(R#@/%QU8GZ!_X-B?%FH?ML?#WXR_\ !4WX\10:O\4?B'\6+W1X]3N!
MYK:%H5I:VLEKI-FS<P6Z-=295,;PL9?<RYH _1SX%_M(?L^_M/>$#X__ &<O
MC=X4\=:*LOE2ZGX2U^WOX8I,9\MVA=@C@=4;##TI/CE^TE^S]^S-X=MO%?[0
MGQH\,^"]/OKH6NGW'B368;07DY&?)A$C S28YV("V 3C K\>?^"HX;_@CC_P
M7E_9^_;&_9IM5\/>%?VB[[^P/BQX3TM1#8ZL\5Y:V]U=-"F$\WR]0MIU.!F>
M!G)S+)GOO^"KO[:'Q,_X)4?\%KO!'[??[0WP#U[QM\!M5^#O_"&:7KVBVJS-
MX3U&6_:>ZDA$A$:74BQQ!E9HS/ ^U7;R60 'Z:_!?]LC]DS]H[5AH/[/_P"T
MIX'\;7WV":]DLO"OB>UOYH8(I(XI'D2%V:+;)+&A#@'<V,9!QQOQ>\(?\$Y+
MK]M?X<^._C3:_#=_CW#:3Z?\-9-7N[?^WS!Y<\LBVT);S'1$-PP?:1'ODVE2
MYSY3^PIXD_X)Y?MO?M:ZA_P5%_82^+OAS6;_ %GX;-X3^(>F:=:&VU!IOMMM
M=6=Q>V[A)8ID2&XA+R)^]41;798A7PY^UU^S[\&O@3_P=L_LK7OP?^'>E^'?
M^$K\#7FJ^(4TJU$2W^H&'7XWNY<??E9$C5G/+"-<T ?6G_!<K_@L[\)?^"='
MPRLO@QX(^)NFCXQ^-M3LK#2M,ANHGE\/V$T\8N-5NP<BW18"_E;\%Y&4@%$D
M*_9_P=_:)_9^_:'TZ]U?X ?'3P=XYM--F6'4;KP=XGM-3CM9&&Y4D:VD<(Q
M) ;!(K\FO^#NGX>^ +;P)^SQXQM_ ^CQZOJ_QXL8-6U5-,B%S>Q"U91'-*%W
M2*%50%8D *!V%?3/_!?#]H%/^"9G_!)[XB_$7]E3PUI/@CQ-XFO+'P]I6J>&
MM,BLFM)KR7RY;H&%5Q,ELMQY;_>1RC _+0!]%?$__@IO_P $Z_@K\2G^#OQ;
M_;A^%?ASQ1#.(;K0]8\<V,%Q:2$X"3JT@\AO:3:>1ZU[;INI:=K.G6^KZ1?P
MW=I=PI-:W5M*)(YHV 971E)#*0001P0<U^>GB']FOXS>(OV!KW]@#3/^"07A
M)O U]X3DTRV2X^+^F2DW+P%5U1G^R;GO/-(G-QGS#)\^[<<UM_\ !O'^Q_\
MM\_L'?L5ZA^R_P#MUW6F3MH7BB6;P"=.U\:@+72IHHV:UW #8B7 F=5[><0.
M   #[VHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "J7B/PYH?B[0
M[GPUXETV.\L+R/R[JUF&5D7T-7:* /./^&1/V:?^B.:/_P!^F_\ BJ/^&1/V
M:?\ HCFC_P#?IO\ XJO1Z* /./\ AD3]FG_HCFC_ /?IO_BJ/^&1/V:?^B.:
M/_WZ;_XJO1Z* /./^&1/V:?^B.:/_P!^F_\ BJ/^&1/V:?\ HCFC_P#?IO\
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
M1'.Y4%@*^GZ* /QS_P""47_!8@_\$X?AAHG_  3 _P""TWA;7/@]XQ^'5O\
MV-X*\<:_IDTNB>(=)A.VV1;N%7CS#'B)91F%HXTRZN&4_=,W_!8']B;QS(?"
M7[)GQ,M_CGXVNDQI'@OX4O\ VI--(W"FYN8P;;3H >7N+J2.- #RS84_2OB'
MPSX;\7::VC>*_#UCJ=FS!FM-0M$FB)'0E7!&?PIOAKPEX4\&:?\ V3X/\,Z?
MI-IO+_9=-LHX(]QZG:@ S[T ?!O_  6$_P"":W[1O_!1+_@D?K7P*\4^*-.U
MSXQ:=JJ>,M$MK!4@T\:G$\S?V3;,RH3"MK<3VD,TV&=@DDI7<P'(?\$AO^"V
M/[)<7[#7AGX+?MQ_'#0?A!\7?A!H,'ACQWX/^)=^NCZA+)8Q+!%<PPW6Q[EI
M8DC9HXU+K*779C86_3&LO4O!'@O6-=MO%&K^$-+NM3LABSU&YT^-YX/]R1E+
M+^!% 'YI_P#!(7]FG6]7_;E_:<_X+@_''PY=>!_#OQ/GET_X:Q>+X#IUPGA2
MV,+RZO=QS[3:Q3I96DB"7:RI%(Q&QD8_/_\ P2)_:N_9TF_X.,/VOO&$WQBT
M"VT7X@*EKX'UJ\U*.&SUZ>&[MHC':3N1'<,YR8PA)D4%DW 9K]P** /Q"_X+
MF?M2_L\I_P %T_V*M6@^+^@W-E\,_%SGXAWUEJ"3P>'"^IVR;;V2,E;9D,,A
M='(:-5W.%!!/M?\ P=4?M'_ /Q#_ ,$?]?\ AOX8^,?AK5M?\;ZCH%[X2T?2
M-9AN[G5;--2CE:[@CB9F>W"P2_O@/+RNW=D@']4J* /R/_;H^-/PI^-7_!IA
MJNH?"SX@:3K@T;X*^"]+UR'3KY)9=,OX9M(2:TN$4[H)D8$-&X##KC!!KT__
M ((T_P#!4K]@_P %?\$EOA+I/QD_:8\)> ]9\ _#?3[#Q)X=\::S%INHQ+!
M!%<16LS++<PW$026"2%7$JR*$RV5&E_P<[?'/X/^#?\ @D=\6?@SXC^)&C6W
MC#Q9I6EQ^&O";:A&=2U(#5[1F>&V!\UXU6*5F<+M41MD\5VG_!"?XA_LX_'/
M_@F/\"],\+:_X4\1>*/ 'PUT?3=>L5:WGU+P]=QQ&(QS1G,MJ2\,FW<%WA2R
MY'- 'B__  1G_8H\5_&7XY?M2_\ !3O]H/X;ZKX;TS]I?5[K2_ ?AC7+5K74
M5\);G475Q$PW0M<Q_9RJ-@@0%N5D0GY^_P"")OQ;3_@@;^T5\5O^"5?_  4>
M\2P^!?"GB'Q4_B7X0_%#Q&?LF@ZZ#&EO,?MCXAA:2WAM'PS!8WBFC<AR@;]Q
M*H^(O"_AGQAIIT;Q;X=L-4LV<,UIJ-HD\18=#M<$9'KB@#\K?VNO 'A'_@N!
M_P %6_V<I?V=M4@\5_!3]FO4;WQ/\0/B=I#>?H>I:I+/92V^BV5VO[J^EW:?
M"93"S)''.^6#@(??OC/_ ,%0/V:?AG_P46\<?\$[?V[-<\.:3X&\1> =$U#P
MGJ7C:R@70KNXN&NTO-,O)YU\E6D6*&2-9CM?$JY!V*WV[86%CI=E%IVF645M
M;P($A@@C")&HX"JHX 'H*CU/1M(UJRFTW6-*MKNVN%"W%O<P+(DH'0,K AA]
M: /Q?_8H_8C^ _PM_P"#CBS^*W_!(W6X)_@=9?#.]F^-<GA'5?MOARQU.ZCN
M4ATFWND9HF=IA87?V57?R?+<C8H")A_\%'/VL/V<K;_@Z9_9@^)/_"Y/#\OA
MKP-X,DT?QCXD@U.-]/T6^G;6XUM[FX4F.%U:XAW[F'EB0%]O./VZT30M#\-:
M9%HGAS1K33[* 8@M+*W6**,=<*B@ ?@*MT ?D/\ \'<ND:_K_P"Q1\%?VC?
MFA7'B/POX*^,&GZWK>H:&HN8XK"2UE,5SO3*B%F"()<[-TL8S\PSZG_P4%L/
M#/\ P<(?\$FOB-X7_8LT#7KJSCCTW6?AMXF\2:-/I$'B/5K5VGGL[>*\2.1D
M$0-N+D@0--<$*["%VK]))(XYHVBEC5D92&5AD$'J"*%554*H  & !VH _#K_
M ()Z_P#!U9\/?V>?@II7[(G_  4Y^ 7Q/T;XM_#ZTA\/SOHWAI;B;6C HBA$
MUO-+%-!>L BLI5D=LN&7?L7]5?V$/'_[1GQN^'.K?M#_ +1'@+4O X\;:P+W
MP5\.-9"B^\-Z$D$<=NEZ%'RWL[++=2QY/E"XCA/S1,3[#=^$?"E_KUOXIOO#
M&GS:G:(4M=1ELHVGA4]0DA&Y1[ UH4 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !17/_$WX
ML_"OX*^%)?'GQD^)?A_PEH<$BQS:SXFUF"PM(W;[JM-.ZH"<' )YQ7/_  >_
M:P_99_:&U2\T/X _M+?#_P <WNGVXGO[/P?XRL=3EMHBVT22);2N44MQN( S
MQ0!Z!139IHK>)KBXE5(T4L[NV H')))Z"O&#_P %)?\ @G6M[_9K?M\?!87&
M[;Y!^*>D;\^FW[1G- 'M-%16-]8ZI8PZGIEY%<VUQ$LMO<02!TE1AE65APP(
M(((X(-9'CSXE_#[X7:;9:O\ $;QGINB6NI:S9Z1I\^IW:PK<7]W.D%M;(6(W
M22RNB*HY):@#<HHHH **\%^,_P#P5)_X)Q_L[_$&3X4?&[]MWX9>&O$MO)Y=
MYHFJ>+[5+FS?CY9T#DVYY!Q)MXYZ5Z9X,^/WP-^(]YHMC\.OC!X:\0/XDT>Z
MU70#H>MP7B:C8VTEO%<7,+Q,RR1QO=6ZLRD@&9!WH ZZBO)O''[?'["OPR\4
M7G@CXD_MI_"7P]K6GSM#?Z1KGQ&TRTNK:13ADDBEG5T8$$$$ @BJ6E_\%'/^
M">>N7(LM%_;Q^#%Y,<8BM?BCI,C')P.%N">M 'LU%4O#WB3P[XMT>'Q#X4UZ
MRU.PN5W6]]I]TDT,H]5="58?0U=H ***P_AQ\2_A]\8/!EE\1?A9XSTWQ!H.
MH^9]@U?2+M9[>X\N1HGV.I(;;(CJ<="I':@#<HHJMK6M:-X<TBYU_P 0ZM;6
M%A90-->7M[.L4,$:C+.[L0JJ "220 * +-%?,\O_  6:_P""3D'BW_A"9?\
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
ME=0RG((R#0 M%%% !15;6-9TCP[I-SKWB#5;:QL;.!IKR]O)UBB@C499W=B
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
M>GF[T^7X=:889BULA8LGD8))).3SDDU^?'_![!_RCA^&?_9;K7_TSZI7ZQ_
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
M\/:OJ'A2V_X2#Q_XQU*?5_B3\4-8LXAJ_BG5)Y#+/<3.B@11&1F,=M'B*('
M!)9F .Q^/'[7G[+?[+\FG6_[1'[07A'P9/J^\Z5:>(==AMI[Q4^^T43L'D5?
MXF4$+GDBK?P7_:?_ &;_ -H];R3]GOX]>#_'4>G6MM<WT_A#Q';:E';Q7!F$
M#.]N[JN\P38!.3Y;5^3/QZ_X*1:Y_P $;/\ @NK\9?BW^WS\$/$>I?"WXVZ)
MX=L?AS\4=)TW[5_8=E86F)+* -C]R;B:9[B"-A*'CCF$<@D4G[P_X)R>$?V(
MO'GQ4^*_[>W[!7Q1\+^(/"GQMBT*77K;PP@C6WUJP6]6XFFBPK6\TT5U;,\,
MD:2;T>1@3+F@#ZPK\^?^"GW[3OB?X\?MR?"+_@BI\%/%EYI4OQ*AF\1?''7M
M(NFANM.\'6RRR/I\4L9W02WY@D@:12&1'7C$V1^@U?BG_P $OO$U[\<O^#L;
M]KKXD>*9#/+X5\$W^AZ2LC$BV2UO='L%V ]/W=N^<<9E8]3F@#]'?^"D/C+Q
M;^Q]_P $MOBUXO\ V5/#EOHNI> OA3?GP=9Z-9*D6CI!:E$EAB4;56WC!D5<
M;1Y0R,<5\L?\&P7B?]ACXK?\$T=&LOA$OA_5/B-(;F3XY1ZHL=QKEYJ\UQ*S
MW%\TF99XI5(,3L60I\N=Z2 ?I?J>F:;K6FW&CZQI\%W:7<#PW5K<Q"2.:-@5
M9'5@0RD$@@\$'%?AS^WW_P &O'QW_9X^+]Q^VU_P0Q^-6I^#/$MI/)>+\.5U
MQK&6 L=SPZ;>E@K1-P/LET?+*Y!E*D1@ ^U? O\ P2A^#G[*7_!:?PS^VE^R
M]\)[?PQX>\<?"KQ'I7CK2M TWR-,M-5CN=-EMKE(XQY<#7$9G#(NU2UMN +.
MY/B__!Y!X8\/:K_P2;T_Q'J.BVTU_I7Q4TDZ;>R0*9;;S(+M) C8RH9>"!P<
M#/05S/\ P15_X.'/CM\9_P!I>/\ X)C_ /!4_P"%,OA#XRQ2266C^(9=*.G-
MJ=Y%$9#:7UFP"V]R\:EXY(@L4N0JHA*&3M?^#P__ )1 _P#=4]$_]%W= 'V-
M_P $VG^'OP4_X)1? _69UL="\/:'\!_#^IZG.L8CB@C&D07%S</M')),DKMU
M9BS'))K\T_\ @F'=:S_P<>?MT_$/]NC]L;39M5^ ?P@UR/3/@W\'M3._2'OG
M#.MW>V^3'=3QVXCDD$@8,]VBC]U$(S]<?%^'Q-<?\&P][#X1$IO6_8KMN(02
MQA_X1B/S@,<\Q>8*\&_X,M[G0Y/^"6/C.VT]X_MD?QQU0Z@H^]N.E:3L)]BH
M 'T/H: /U8\0?";X6>+? $GPH\4_#70-2\+2VOV67PW?Z/!-8/!C'E&W=3&4
MQQMVXKXU_P"":_\ P3)T3_@FK^W[^T(OP4T&^MOA3\5/#?A;6O"]M*9)8-%O
M;2758+K3(Y'S\B">&6-"<K'*J#(BS7W510 5\U_$7_@EA^RO^T;\>]<_:&_;
M,\ Z3\7=5N$6Q\(:1XQTP7&E>%=*5$'V6TLY&>(RR2AYI;IE,CLX4;$C1!]*
M5QWQV\)_&;QO\-[WPU\!OC!I_@3Q%<@K;>)]0\*KK(M%*L-R6SSPHSABI!<L
MN 04.<@ _(_]C/\ 8%M?V)/^#H7Q-X'_ &#=/N]$^$/_  IY=;^*/A^TN))-
M/TF6]65+6PRY.UVNHH+J*-B66-I@F(U('LO_  =??%?XB?"K_@G9X4GTFUU.
M;P'J_P 8M%L?B[;Z/,T<MYX?V7$LEFSJ04BFEBA1CD L40G#D'Y<_9Q^,_\
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
MC1#,(4U3Q5KD%A!)*1D1HTS*'<XX1<L>PKL:_)3_ ((Y_&6U_P""GG_!7_\
M:M_;"^+L::O%\%M5L?!?P5TN^42P>'=-DN=0CGNX(VR(;FX_L^-WE'S_ +Z1
M-VS"T ?I#^SS^V5^R;^UI;7MS^S)^TAX*\>?V;C^TX?"WB.WO)K+)P/.BC<O
M%D]-X&>U:WQT_:,^ 7[,7@F3XC_M%?&;PSX(T*-MO]J>*-:ALH7?'W$,K#S'
M/9%RQ[ U^2/_  ="^!M5_8#^)7P5_P""T?[)L</AGXBZ%X\C\->,)]-7R8_$
MMK-;S7,4=\J8\Y"EI<6[ELLT<Z*3^[CV\K_P>"?#3X$?$/\ X)U_"/\ ;B\-
M?#;3K;Q?XG^(>C6J^)#:J+Z32KO0]0NA:R2#ED#6\!"] RDC&XY /UT^/7[>
M'[%/[+7BC3O!'[2'[5_P]\"ZSJRA]/TKQ5XMM+*XEC)P)/+ED#+'D$>80%R,
M9K<^-'[4?[-G[.?P]@^+/QZ^/7A#P?X9N]@LM=\1^(;>TM;HNNY%ADD<"5F7
MY@$R2.0"*^0/^"H?_!*7]A75_P#@FY\>O$GB;X!Z%KOC>V^&NO>)&^)^OZ?%
M=>);C6+33Y;F&\DU%E\X?O(4'DHR0K'F%(TBQ&/%O^#=/]BG]FK]K3_@DW\*
M/CG^UW\+=+^+>NQZ=J^@:$OQ+L(=9M/#^E6NJW=O%9Z?;7"-%;*5C!:0*97R
M%:0QQQ1Q@'Z=_!OXW_!O]HCP%:?%/X#?%3P_XR\-WS,MIKOAG5X;VUD93AD$
MD3,NY3PRYRIX(!JDO[2O[.[^/]=^%:?'3PBWB7POH[ZMXGT)?$5L;K1[%2%:
MYNH]^ZWB!(^>0*/RK\F?^#<GP!X8^%_[?'_!07]A;PW8L/ACH/Q&6+0_"TL[
MM!90->:K:M&F3GYK=((F;.XK;QY.1FO)?V"?^"=G[-/Q6_X.%/VO_P!E+5O"
MTNG?"?1]-M[^^^'.B7#6FG:P#/8SI9W(C(<V:W$OG_9T949XH@V8U,; '[/?
M ']O#]BK]JKQ'J/@_P#9K_:N^'WCO5M*0R:AIGA7Q9:7MQ#&&VF4QQ.6,>2!
MY@!7)'-=M\5/B]\*/@7X)N_B5\:_B9H'A#P[8 ?;==\3:Q#8V<&3@!YIF5%)
M/ !/)X%?@I_P<-?L#?"W_@C%\8/@=_P57_X)P>$H?AU<V'CI-)U[P]HL\B6$
M]VL,ES"4C+$1I/;P7<$\0Q&Z;?E!9RWZ,_\ !3S]D/PO^T%^T!^SG^WU\;_V
MK?#7@?X+_ W5)/$WBCPUXV"QV5_=.(I+28-(XB\X,BQC>"RACY>6<J0#Z5^!
MG_!0']A_]IGQA-\._@#^UEX \6^(8(FED\/Z+XHMIK\1 9,@MP_F,@')<*5P
M0<\BNN^-_P"T)\"?V:/ \WQ*_:%^,/AKP3H$!P^K>*-9ALH"V,A%:5EWN>R+
MEB> ":_%G_@MA^TCX+^+O_!37]@G]I/X$_"3QOX>>/XQ0:7;?$C7_"[Z+'XI
ML6U/2<06\=R8[V:W19I_GE@CA=+UO+:4.V.W_P"#T#]GWX-/^P?X2_:2C^'6
MEIX[B^*^FZ0?%2VH%Z^GR:;J3-:&3J8B\43[.@9 1R3D _4?XX?MY?L4?LS:
M[I'A?]H?]K#X>^"-2UV)9=)T_P 4>+;2RFN8F.%E"2R*PC)X\P@+GC.:]4M+
MZRU"RBU*PO(I[:>)98;B&0,DB,,AE8<$$$$$<$5^<O\ P49_X)+?L*S_ /!*
M+XV^/?$OP,T?Q'\0K7X0:OXHD^*WB:QBO/$USJUGIDEW%<-J#+YL:>9"J_9X
MC' D>8DB2/"#5_X-[M/T3]K'_@@9\'/!W[16@V?C#2;K2=5T:_TS7X!<P75E
M8ZY>V]K!(CY#HD-O @4Y&V,#&.* /H_]C+P=_P $Y?!?C?XGV7["-G\-XM<N
M_$<5Y\51X NK>9QJ4HE:-;LPLPC?F=A%P$+R$*I9L^A?'O\ :<_9S_98\*1^
M.?VD_CIX3\!Z1/-Y-MJ'BS7[>PCGEQGRXS,Z^8^.=JY..<5^47_!I=X-\/\
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
M2QAC%)M*[US]UL,PR.<,1WH ^5OAM_P6_P#^"7?COP6WB?Q5^UWX4^'NIVL
M;6/!GQ2U*/P[KNF3;<O;RV-ZT<K2*<C]T)%8CY&8$$_$_P#P3,^ -G^VA_P7
MO^+/_!8WX#?#_4/#_P #4T Z1X3\27NE26"^.M6DM+>UN;^V@D56:V/ES.TQ
M WN8R<NTH3];O$WPX^'GC6ZAOO&7@/1=6GMEQ;S:GI<,[Q#.<*74E>>>*V%5
M44(B@*!@ #@"@#\4?^"B?QO\(_\ !/C_ (.BOA7^V1^TWI^M:3\,_$?P@;1;
M/Q58:#=7\7VQHKZ#R5CMHWDED61H0T<:LX6>-MN#FMS_ (+^_LU_M,?'+1?V
M?/\ @M7^R=\"_$K^*_@KK<>JZKX"U"P<:M)HD6H+>V-U):J#)&5\HO-;E3+&
MEZ0ZCR)<?LC)#%*5,L2L4;<A9<[3TR/0\G\Z=0!\/7W_  7M_P"">7Q!_9"F
M^-OP-^.VE>)O&FL^'I!X8^#VE3BX\77>LO"1%IG]DQ;KGS//(C:0(8@ 7WE/
MFKYP_8X_X()_$3P;_P &['C_ /X)]_$#[+IGQ3^+MO-XIU6VN)P8M.UI'M9]
M.L9)5R J?8+1)67<%=YBN\ %OU<TWP1X+T;7+GQ/I'A#2[74[W_C\U&VT^-)
MY_\ ?D50S?B36I0!^#/_  2=_P"#BOP7_P $WOV?K3_@FY_P53^#'Q$\*^/?
MA,6T71)K+PY]IDO+%7/V>UEB+JZR1@B*-T#12Q+&P<'EOU#_ &7?VM_%WB+X
M6>*_V[?VSD/P2\ ^(I[2'P!X0^(VHP6%SI6CP+(8[W4 [;8+^]EFD8VX9BD,
M-JF6<,3])ZAX3\+:MK%KXAU3PUI]S?V/_'E?7%FCS6_^XY&Y/P(K0H _G/\
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
MBU_;)_8Y^)G[+-SJR:>WCSP7?Z/:ZA*A9+2YEA803,!RRI+L<@<D*17Y:?\
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
MV\CQM(D<4H; 7=_0'5;6=%T;Q%ILNC>(-)M;ZSG7;/:7D"RQ2#KAE8$$?44
M?"G['O\ P5IG_P""MWQ=\/Z?^PK\+O'>A_"GPMJ7]I?$SXG^,-&CL8+\QQO]
MGT+3E$DAFFDG,4EQ)\HB@A=.6G0C+TS_ (*2?L)?M$_'3X]_\$V_^"E6K>!+
M,>%_'MQ:^&['XGP6MKI/B#1S;02)Y$]R%A:ZMY))4(#"55\N123O*?H#INF:
M;HUA%I6CZ?!:6L"!(+:VB6..-1V55  'L*KZ]X4\+^*M.;1_%'ANPU*T=][V
MM_9I-&S>I5P03R>: /R+_P"" _[('A[]GK_@J5^U%XK_ &&_$6HZC^R?<:;8
M:;X3U7[>]SIFJ:X#!-(EC<L2+Z*S+7]OYZE_EEC4NY^<]=_P=YZSJ^L_\$X/
M!G[/G@O39-2\3_$WXUZ)HN@Z/;<S74@BNI $7^+,JP1_69:_475=4\->!?"]
MSK>K7=II6CZ/8//=3R%8H+2VB0LSGH$144D]@!7R)H?[-'B;]O']O#PE^W=\
M=_!U_HOPZ^#=G=0_ GP=KUF]O?:IJMUM%UXEO;:0![50D<<5I;RJ)EV&=UB9
ME2@#Z3_9C^#MO^SQ^S9\/?V?[2Y6:+P-X'TGP]%,F=KK96<5L&&><$1YYJ;X
MW_M#_ C]FKP>_C_]H#XO^'/!NCKO$=]XBU>*U6=T1I#'$'8&:3:K$1H&=L<
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
M]C/P[\/O NF>*)="FO[SXLS:CJ$]Q%;Q3R-#:KH\2,@$\*Y>=,DO@?+S]ST
M%%%% !1110 4444 %%%% !117RQ^SC\9?^"GGBO_ (*+_%_X5_M#?LU^&- _
M9_T/2XI/A;XYT^\#7NJW!>$*DG^D-OWQM<.X\F+R6A1,MNW, ?4]%%% !111
M0 4444 %%%% !1110 4444 %%<Q\8->^*WAKX?7^K_!/X=:9XK\2QQ_\2S1-
M8\1'2K:=_P#II=""<QCW$3GV[CXM_P""!/\ P5-^/W_!5CX0?%'XK?'[X?>&
M_"]SX5^)#Z%I&B>'(YMMK;+:02%)I)9',TH=WRX"*>R@4 ??-%%?/?\ P4._
MX*9?LR?\$TOAIIWC?X\ZKJ-]K/B.]^P>"? OAFS^UZUXEO<J!!:6^1NP70,[
M%44NBYW.BL ?0E%?'W@3XQ_\%L?C!HEO\0]/_9#^!7PSTZ\02V?@_P"(?Q'U
M2]UI8R,K]IDT^P-O;.>,HOG%,D,,KSS6@?\ !7?XM:/^W_\ "/\ X)O?M%?L
M1ZY\//'7Q#N=6FNM?.NP:IX;N].LM)O+L3:7?QB*2YD:>")'CFMX6B5_F7+H
M: /N:BBB@ HHHH ***RM,\<>$-:\5ZKX&TCQ%:W.KZ'#;2ZQI\,H:6S6X#F$
MR ?=WB-R ><#/0C(!JT444 %%%% !17YOS?\%;?VT[#_ (+P_#S_ ()8?$7]
MGKP1X1\(>)O#6H:Y-JEIKL^KZCJ-HFF:A/;NLNRWBM3Y]FRO%Y4I^0A9""&.
MK_P<!_\ !53]LC_@E1^SWI_QD^ '[/?@O6](U?7K?0_^$L\3Z_/*UC>S03S*
M/[-A2,R)MMW'FFY&'V@QL#F@#]"Z*Y*Y\4?$"_\ @3)XT\#Z#9:GXJF\)&]T
M?2[F?R+>[U VOF10NY/[N-I2JEL_*#GM7CO_  2R^*W_  4(^,O[+">,O^"F
M'P(T+X>?$<^([V"/0] ?]U+IR;/(G=/M$_E.6,J[?,.5C1^-^* /H^BBB@ H
MHHH ***Q?B#?_$73?"\]W\*O"NB:UK2D?9=/\0:_-IEK(.^ZXAM+IT_"%L^U
M &U17YG?L0?\%V_VJ_VW?V\?B+^P'X<_X)Q>%O#GB3X4R:DGC76=8^.\TEC
MUE>K9.L!BT!GF+S,-GRJ"@9B1@ _I?"9FA1KA%60J-ZH^X ]P"0,CWP/I0 Z
MBBB@ HHJCXF\2^'_  9X;U#QAXLUBWT[2M)L9;S4]0NY0D5M;Q(7DE=CPJJJ
MEB3T - %ZBH-+U.PUO3+;6=*NEGM;N!)K:=/NR1NH96'L00:GH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
MXI^&WAV/5OB-XT^(.OW%EI6F-(8?+LK:"U@EFO)C]HCW-NB2/#C+$8J[JO\
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
M>>*O$GC2VM?$,D,[[8[I]+CWR:>'/"17(W%BBR^0\@4?8/[4?_!1KX"?LO\
M[ \W_!0O5Y;K6?!]QX;TW5?#=M8;8Y]9.H^2+"&/>0$,K7$66;A%+.>%->"?
M\'/\4<O_  0P^.@EC#;8?#K+D="/$>EX-9O@G]C#X1_\%#?^#=SX(_LB?&;X
M@_\ "+VWB_X'^"(-#U\21^9::K%I]G+9F-)&43DR1A3""#(C.JE20P .I_:Q
M_;=_X*F?L7_L_7G[2OQ'_8R^%7BK1;;[,NL:-X-^).H&_P##*W$B1"XF\_3@
MFH0PO(OFF(PL!E@-@9E^=_\ @[;_ &B/VW?@W^P1=^%_@UI7A_1?AAXMU"UT
M+QSXJ&N2'6;T7(E;^SH+40A(K=UA(EF,I9U8QA%4L6^?=;_;._X+-_\ !!33
MK'X%_P#!4CX3Z;^T9^S)?$: GCFU074\=A(IC%L\\B@EC$6_T:_0^;@QQS[5
M+#WG_@[)^(_@_P",?_!#WPM\7?AYJZZAX?\ %7CSPUK&A7Z(5%S9W-E=30R@
M'D!HW5L'GF@#ZW\!_M7_ +<?P?\ V1;GXJ?%O_@GE:ZC%X<\'65SH.D?#'XM
MVNKW>HPQV4DLTUPNHVFFI:HB11\1-=2LTVU8FVY/R-\(/^#CO]KS]JS]A[6?
MVEOV.O\ @EYJWQ#\5Z)XJN8/$'AG0-=>ZM_#ND+Y?V:25UB6?4+R8F7_ $>U
MA+)''YL@1"@D_29@&_8R*D<'X8<_^"ZOSU_X,XX((O\ @D5=R10HK2_%K6FD
M95 +G[/8C)]3@ ?0"@#])?V<?B9XO^,_P!\%_%SX@?"O4O VN>)O"]CJ>K^#
M=88FZT6YG@222TE)53OC9BAW*K<?,JG*CM*** "BBB@ HHHH **** "BBB@
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
MC!\*--^-'@YO 6N^+?$.E:9<S@ZHOAK5WL)[^WVL&M6N(@)XHWW LT#Q2_*
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
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
<0 4444 %%%% !1110 4444 %%%% !1110!__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>22
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097447632">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cover Page - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Jan. 26, 2025</div></th>
<th class="th"><div>Jun. 28, 2024</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-34218<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">COGNEX CORP<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">MA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">04-2713778<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">One Vision Drive<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Natick<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">MA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">01760<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">508<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">650-3000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock, par value $.002 per share<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">CGNX<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Large Accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Small Business</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_IcfrAuditorAttestationFlag', window );">ICFR Auditor Attestation Flag</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,001,170,186<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">169,865,714<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000851205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2024<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFinStmtErrorCorrectionFlag', window );">Document Financial Statement Error Correction [Flag]</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an annual report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentAnnualReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFinStmtErrorCorrectionFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates whether any of the financial statement period in the filing include a restatement due to error correction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection w<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 4: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFinStmtErrorCorrectionFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityPublicFloat</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityVoluntaryFilers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityWellKnownSeasonedIssuer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_IcfrAuditorAttestationFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_IcfrAuditorAttestationFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<FILENAME>R2.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609098412752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Audit Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AuditInformationAbstract', window );"><strong>Audit Information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorName', window );">Auditor Name</a></td>
<td class="text">GRANT THORNTON LLP<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">Boston, Massachusetts<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorFirmId', window );">Auditor Firm ID</a></td>
<td class="text">248<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AuditInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Audit Information</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AuditInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorFirmId">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorFirmId</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:nonemptySequenceNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorLocation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorLocation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>24
<FILENAME>R3.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097444912">
<tr>
<th class="tl" colspan="2" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF OPERATIONS - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>Income Statement [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 914,515<span></span>
</td>
<td class="nump">$ 837,547<span></span>
</td>
<td class="nump">$ 1,006,090<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of revenue</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">288,721<span></span>
</td>
<td class="nump">236,306<span></span>
</td>
<td class="nump">284,185<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross margin</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">625,794<span></span>
</td>
<td class="nump">601,241<span></span>
</td>
<td class="nump">721,905<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research, development, and engineering expenses</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">139,815<span></span>
</td>
<td class="nump">139,400<span></span>
</td>
<td class="nump">141,133<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general, and administrative expenses</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">370,914<span></span>
</td>
<td class="nump">339,139<span></span>
</td>
<td class="nump">312,107<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_LossGainFromCatastrophes', window );">Loss (recovery) from fire</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="num">(8,000)<span></span>
</td>
<td class="nump">20,779<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring Charges</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,657<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">115,065<span></span>
</td>
<td class="nump">130,702<span></span>
</td>
<td class="nump">246,229<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax', window );">Foreign currency gain (loss)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">1,531<span></span>
</td>
<td class="num">(10,039)<span></span>
</td>
<td class="num">(1,837)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentIncomeNonoperating', window );">Investment income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">13,971<span></span>
</td>
<td class="nump">14,093<span></span>
</td>
<td class="nump">6,715<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other income (expense)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">922<span></span>
</td>
<td class="nump">592<span></span>
</td>
<td class="num">(412)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income tax expense</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">131,489<span></span>
</td>
<td class="nump">135,348<span></span>
</td>
<td class="nump">250,695<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense on continuing operations</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">25,318<span></span>
</td>
<td class="nump">22,114<span></span>
</td>
<td class="nump">35,170<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 106,171<span></span>
</td>
<td class="nump">$ 113,234<span></span>
</td>
<td class="nump">$ 215,525<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicAbstract', window );"><strong>Net Income per weighted-average common and common-equivalent share:</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasic', window );">Net income (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 0.62<span></span>
</td>
<td class="nump">$ 0.66<span></span>
</td>
<td class="nump">$ 1.24<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDilutedAbstract', window );"><strong>Diluted earnings per weighted-average common and common-equivalent share (1):</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Net income (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 0.62<span></span>
</td>
<td class="nump">$ 0.65<span></span>
</td>
<td class="nump">$ 1.23<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract', window );"><strong>Weighted-average common and common-equivalent shares outstanding:</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">171,438<span></span>
</td>
<td class="nump">172,249<span></span>
</td>
<td class="nump">173,407<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted (in shares)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">172,611<span></span>
</td>
<td class="nump">173,399<span></span>
</td>
<td class="nump">174,869<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockDividendsPerShareCashPaid', window );">Cash dividends per common share (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 0.305<span></span>
</td>
<td class="nump">$ 0.286<span></span>
</td>
<td class="nump">$ 0.265<span></span>
</td>
</tr>
<tr><td colspan="4"></td></tr>
<tr><td colspan="4"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">175,481&#160;</span></td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_LossGainFromCatastrophes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Loss (Gain) From Catastrophes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_LossGainFromCatastrophes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockDividendsPerShareCashPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate dividends paid during the period for each share of common stock outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockDividendsPerShareCashPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareBasicAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasicAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 52<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-52<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482635/260-10-55-15<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-7<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(27))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDiluted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDilutedAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDilutedAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before tax, of realized and unrealized gain (loss) from foreign currency transaction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482014/830-20-35-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481956/830-20-45-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481926/830-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481839/830-10-45-17<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionGainLossBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentIncomeNonoperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of income from investments (for example, dividends) not considered a component of the entity's core operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentIncomeNonoperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482916/730-10-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 912<br> -SubTopic 730<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479532/912-730-25-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482047/420-10-45-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>25
<FILENAME>R4.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097462576">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Statement of Comprehensive Income [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 106,171<span></span>
</td>
<td class="nump">$ 113,234<span></span>
</td>
<td class="nump">$ 215,525<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract', window );"><strong>Available-for-sale investments:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $1,245, $4,389, and $(5,943) in 2024, 2023, and 2022, respectively</a></td>
<td class="nump">3,809<span></span>
</td>
<td class="nump">10,507<span></span>
</td>
<td class="num">(17,152)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss into current operations</a></td>
<td class="nump">8<span></span>
</td>
<td class="nump">1,954<span></span>
</td>
<td class="nump">182<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent', window );">Net change related to available-for-sale investments</a></td>
<td class="nump">3,817<span></span>
</td>
<td class="nump">12,461<span></span>
</td>
<td class="num">(16,970)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CurrencytranslationadjustmentAbstract', window );"><strong>Foreign currency translation adjustments:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation gain (loss)</a></td>
<td class="num">(31,258)<span></span>
</td>
<td class="nump">11,500<span></span>
</td>
<td class="num">(4,385)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent', window );">Net change related to foreign currency translation adjustments</a></td>
<td class="num">(31,258)<span></span>
</td>
<td class="nump">11,500<span></span>
</td>
<td class="num">(4,385)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income (loss), net of tax</a></td>
<td class="num">(27,441)<span></span>
</td>
<td class="nump">23,961<span></span>
</td>
<td class="num">(21,355)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Total comprehensive income</a></td>
<td class="nump">$ 78,730<span></span>
</td>
<td class="nump">$ 137,195<span></span>
</td>
<td class="nump">$ 194,170<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CurrencytranslationadjustmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Currency translation adjustment [Abstract]</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CurrencytranslationadjustmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ComprehensiveIncomeNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComprehensiveIncomeNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax and reclassification adjustment, of gain (loss) in value of unsold investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), attributable to parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of other comprehensive income (loss) attributable to parent entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-19<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-20<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (c)(3)<br> -SubTopic 10<br> -Topic 810<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-15<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-9<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-17A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax and 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-9<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<FILENAME>R5.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094824272">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Statement of Comprehensive Income [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax', window );">Tax effect of unrealized gain (loss) on available-for-sale investments</a></td>
<td class="nump">$ 1,245<span></span>
</td>
<td class="nump">$ 4,389<span></span>
</td>
<td class="num">$ (5,943)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before adjustment, of tax expense (benefit) for 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 tax expense (benefit) for unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-12<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>27
<FILENAME>R6.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096440256">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 186,094<span></span>
</td>
<td class="nump">$ 202,655<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $60,725 and $132,799 in 2024 and 2023, respectively, allowance for credit losses of $0 in 2024 and 2023</a></td>
<td class="nump">59,956<span></span>
</td>
<td class="nump">129,392<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, allowance for credit losses of $827 and $583 in 2024 and 2023, respectively</a></td>
<td class="nump">143,359<span></span>
</td>
<td class="nump">114,164<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnbilledReceivablesCurrent', window );">Unbilled revenue</a></td>
<td class="nump">3,055<span></span>
</td>
<td class="nump">2,402<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">157,527<span></span>
</td>
<td class="nump">162,285<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">63,376<span></span>
</td>
<td class="nump">68,099<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">613,367<span></span>
</td>
<td class="nump">678,997<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermInvestments', window );">Non-current investments, amortized cost of $345,033 and $250,790 in 2024 and 2023, respectively, allowance for credit losses of $0 in 2024 and 2023</a></td>
<td class="nump">340,898<span></span>
</td>
<td class="nump">244,230<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property, plant, and equipment, net</a></td>
<td class="nump">98,445<span></span>
</td>
<td class="nump">105,849<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="nump">67,326<span></span>
</td>
<td class="nump">75,115<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">384,937<span></span>
</td>
<td class="nump">393,181<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="nump">90,684<span></span>
</td>
<td class="nump">112,952<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxAssetsNet', window );">Deferred income taxes</a></td>
<td class="nump">392,166<span></span>
</td>
<td class="nump">400,400<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">5,027<span></span>
</td>
<td class="nump">7,088<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Assets', window );">Total assets</a></td>
<td class="nump">1,992,850<span></span>
</td>
<td class="nump">2,017,812<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrentAbstract', window );"><strong>Current liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableCurrent', window );">Accounts payable</a></td>
<td class="nump">38,046<span></span>
</td>
<td class="nump">21,454<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">71,760<span></span>
</td>
<td class="nump">72,374<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesCurrent', window );">Accrued income taxes</a></td>
<td class="nump">25,685<span></span>
</td>
<td class="nump">16,907<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">25,035<span></span>
</td>
<td class="nump">31,525<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityCurrent', window );">Operating lease liabilities</a></td>
<td class="nump">8,854<span></span>
</td>
<td class="nump">9,624<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesCurrent', window );">Total current liabilities</a></td>
<td class="nump">169,380<span></span>
</td>
<td class="nump">151,884<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiabilityNoncurrent', window );">Non-current operating lease liabilities</a></td>
<td class="nump">61,363<span></span>
</td>
<td class="nump">68,977<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">217,155<span></span>
</td>
<td class="nump">246,877<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent', window );">Reserve for income taxes</a></td>
<td class="nump">26,365<span></span>
</td>
<td class="nump">26,685<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedIncomeTaxesNoncurrent', window );">Non-current accrued income taxes</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">18,338<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">1,082<span></span>
</td>
<td class="nump">299<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">475,345<span></span>
</td>
<td class="nump">513,060<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (Note 11)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Authorized shares (in shares)</a></td>
<td class="nump">400,000<span></span>
</td>
<td class="nump">400,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Shareholders&#8217; equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockValueOutstanding', window );">Preferred stock, $0.01 par value - Authorized: 400 shares in 2024 and 2023, respectively, no shares issued and outstanding</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValueOutstanding', window );">Common stock, $0.002 par value &#8211; Authorized: 300,000 shares in 2024 and 2023, respectively, issued and outstanding: 170,434 and 171,599 shares in 2024 and 2023, respectively</a></td>
<td class="nump">341<span></span>
</td>
<td class="nump">343<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdditionalPaidInCapitalCommonStock', window );">Additional paid-in capital</a></td>
<td class="nump">1,090,638<span></span>
</td>
<td class="nump">1,037,202<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">499,303<span></span>
</td>
<td class="nump">512,543<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss, net of tax</a></td>
<td class="num">(72,777)<span></span>
</td>
<td class="num">(45,336)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Total shareholders&#8217; equity</a></td>
<td class="nump">1,517,505<span></span>
</td>
<td class="nump">1,504,752<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesAndStockholdersEquity', window );">Total liabilities and shareholders' equity</a></td>
<td class="nump">$ 1,992,850<span></span>
</td>
<td class="nump">$ 2,017,812<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsReceivableNetCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481990/310-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsReceivableNetCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedIncomeTaxesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedIncomeTaxesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedIncomeTaxesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all domestic and foreign income tax obligations due beyond one year or the operating cycle, whichever is longer. Alternate captions include income taxes payable, noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedIncomeTaxesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-14A<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 220<br> -SubTopic 10<br> -Section 45<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdditionalPaidInCapitalCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdditionalPaidInCapitalCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Assets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 12: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 13: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 30: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Assets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset recognized for present right to economic benefit, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481830/320-10-45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingencies</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of common shares held by shareholders. Excludes common shares repurchased and held as treasury shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValueOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(15)(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsNetExcludingGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsNetExcludingGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(22))<br> -SubTopic 10<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(26))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 15: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 27: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 28: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 29: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Liabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesAndStockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(23))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(32))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesAndStockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(21))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481231/810-10-45-25<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 810<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (bb)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-5<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br><br>Reference 21: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481404/852-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for uncertainty in income taxes classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilityForUncertainTaxPositionsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The total amount of investments that are intended to be held for an extended period of time (longer than one operating cycle).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiabilityNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiabilityNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAssetsNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncurrent assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAssetsNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of nonredeemable preferred shares and preferred shares redeemable solely at option of issuer, held by shareholders. Excludes preferred shares repurchased and held as treasury shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockValueOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PrepaidExpenseAndOtherAssetsCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RetainedEarningsAccumulatedDeficit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated undistributed earnings (deficit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(23)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RetainedEarningsAccumulatedDeficit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnbilledReceivablesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnbilledReceivablesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>28
<FILENAME>R7.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609099330496">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Statement of Financial Position [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent', window );">Current investments, amortized cost</a></td>
<td class="nump">$ 60,725<span></span>
</td>
<td class="nump">$ 132,799<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent', window );">Current investment, allowance for credit loss</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Accounts receivable, allowance for credit losses</a></td>
<td class="nump">827<span></span>
</td>
<td class="nump">583<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent', window );">Non-current investments, amortized cost</a></td>
<td class="nump">345,033<span></span>
</td>
<td class="nump">250,790<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent', window );">Non-current investments, allowance for credit losses</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock par value, in dollars per share</a></td>
<td class="nump">$ 0.002<span></span>
</td>
<td class="nump">$ 0.002<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares)</a></td>
<td class="nump">300,000,000<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued (in shares)</a></td>
<td class="nump">170,434,000<span></span>
</td>
<td class="nump">171,599,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesOutstanding', window );">Common stock, shares outstanding (in shares)</a></td>
<td class="nump">170,434,000<span></span>
</td>
<td class="nump">171,599,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfFinancialPositionAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfFinancialPositionAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>29
<FILENAME>R8.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106282896">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF CASH FLOWS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 106,171<span></span>
</td>
<td class="nump">$ 113,234<span></span>
</td>
<td class="nump">$ 215,525<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Adjustments to reconcile net income to net cash provided by operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockOptionPlanExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">52,443<span></span>
</td>
<td class="nump">54,768<span></span>
</td>
<td class="nump">54,505<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Depreciation', window );">Depreciation of property, plant, and equipment</a></td>
<td class="nump">21,271<span></span>
</td>
<td class="nump">17,270<span></span>
</td>
<td class="nump">16,347<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment', window );">Loss (gain) on disposal of property, plant, and equipment</a></td>
<td class="nump">88<span></span>
</td>
<td class="nump">229<span></span>
</td>
<td class="nump">19<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AmortizationOfIntangibleAssets', window );">Amortization of intangible assets</a></td>
<td class="nump">11,418<span></span>
</td>
<td class="nump">4,610<span></span>
</td>
<td class="nump">3,274<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_NonCashLossFromCatastrophes', window );">Non-cash, loss from catastrophes</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">46,372<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ExcessAndObsoleteInventoryCharges', window );">Excess and obsolete inventory charges</a></td>
<td class="nump">2,505<span></span>
</td>
<td class="nump">3,775<span></span>
</td>
<td class="nump">3,084<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_FairValueAdjustmentOnAcquiredInventories', window );">Fair value adjustment on acquired inventories (Note 21)</a></td>
<td class="nump">1,224<span></span>
</td>
<td class="nump">2,829<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments', window );">Amortization of discounts or premiums on investments</a></td>
<td class="nump">306<span></span>
</td>
<td class="nump">1,745<span></span>
</td>
<td class="nump">4,968<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfInvestments', window );">Realized (gain) loss on sale of investments</a></td>
<td class="nump">8<span></span>
</td>
<td class="nump">1,954<span></span>
</td>
<td class="nump">182<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes', window );">Change in deferred income taxes</a></td>
<td class="num">(21,507)<span></span>
</td>
<td class="num">(19,779)<span></span>
</td>
<td class="num">(27,338)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsReceivable', window );">Accounts receivable</a></td>
<td class="num">(32,128)<span></span>
</td>
<td class="nump">23,346<span></span>
</td>
<td class="nump">3,454<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerAsset', window );">Unbilled revenue</a></td>
<td class="num">(693)<span></span>
</td>
<td class="num">(255)<span></span>
</td>
<td class="nump">1,806<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="num">(1,253)<span></span>
</td>
<td class="num">(22,591)<span></span>
</td>
<td class="num">(48,934)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">1,514<span></span>
</td>
<td class="nump">2,469<span></span>
</td>
<td class="num">(6,998)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="nump">18,352<span></span>
</td>
<td class="num">(13,744)<span></span>
</td>
<td class="num">(17,277)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued expenses</a></td>
<td class="nump">2,916<span></span>
</td>
<td class="num">(35,309)<span></span>
</td>
<td class="nump">2,056<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable', window );">Accrued income taxes</a></td>
<td class="num">(9,278)<span></span>
</td>
<td class="num">(16,745)<span></span>
</td>
<td class="num">(444)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Deferred revenue and customer deposits</a></td>
<td class="num">(6,216)<span></span>
</td>
<td class="num">(9,122)<span></span>
</td>
<td class="nump">4,886<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet', window );">Other</a></td>
<td class="nump">1,940<span></span>
</td>
<td class="nump">4,232<span></span>
</td>
<td class="num">(12,081)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">149,081<span></span>
</td>
<td class="nump">112,916<span></span>
</td>
<td class="nump">243,406<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Cash flows from investing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireInvestments', window );">Purchases of investments</a></td>
<td class="num">(850,852)<span></span>
</td>
<td class="num">(184,056)<span></span>
</td>
<td class="num">(233,720)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments', window );">Maturities and sales of investments</a></td>
<td class="nump">828,370<span></span>
</td>
<td class="nump">496,462<span></span>
</td>
<td class="nump">253,983<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment', window );">Purchases of property, plant, and equipment</a></td>
<td class="num">(15,043)<span></span>
</td>
<td class="num">(23,077)<span></span>
</td>
<td class="num">(19,667)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Net payments related to business acquisitions (Note 21)</a></td>
<td class="num">(1,444)<span></span>
</td>
<td class="num">(257,056)<span></span>
</td>
<td class="num">(5,050)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash provided by (used in) investing activities</a></td>
<td class="num">(38,969)<span></span>
</td>
<td class="nump">32,273<span></span>
</td>
<td class="num">(4,454)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions', window );">Net payments from issuance of common stock under stock plans</a></td>
<td class="nump">994<span></span>
</td>
<td class="nump">3,268<span></span>
</td>
<td class="nump">9,861<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Repurchase of common stock</a></td>
<td class="num">(67,085)<span></span>
</td>
<td class="num">(79,794)<span></span>
</td>
<td class="num">(204,314)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfDividendsCommonStock', window );">Payment of dividends</a></td>
<td class="num">(52,329)<span></span>
</td>
<td class="num">(49,079)<span></span>
</td>
<td class="num">(45,921)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="num">(118,420)<span></span>
</td>
<td class="num">(125,605)<span></span>
</td>
<td class="num">(240,374)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Effect of foreign exchange rate changes on cash and cash equivalents</a></td>
<td class="num">(8,253)<span></span>
</td>
<td class="nump">1,697<span></span>
</td>
<td class="num">(3,365)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect', window );">Net change in cash and cash equivalents</a></td>
<td class="num">(16,561)<span></span>
</td>
<td class="nump">21,281<span></span>
</td>
<td class="num">(4,787)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents at beginning of year</a></td>
<td class="nump">202,655<span></span>
</td>
<td class="nump">181,374<span></span>
</td>
<td class="nump">186,161<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents at end of year</a></td>
<td class="nump">$ 186,094<span></span>
</td>
<td class="nump">$ 202,655<span></span>
</td>
<td class="nump">$ 181,374<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ExcessAndObsoleteInventoryCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Excess and Obsolete Inventory Charges</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ExcessAndObsoleteInventoryCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_FairValueAdjustmentOnAcquiredInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair Value Adjustment on Acquired Inventories</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_FairValueAdjustmentOnAcquiredInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_NonCashLossFromCatastrophes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Non-cash, Loss from Catastrophes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_NonCashLossFromCatastrophes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The sum of the periodic adjustments of the differences between securities' face values and purchase prices that are charged against earnings. This is called accretion if the security was purchased at a discount and amortization if it was purchased at premium. As a noncash item, this element is an adjustment to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Depreciation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Depreciation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 230<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477401/830-230-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnSaleOfInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net realized gain (loss) on investments sold during the period, not including gains (losses) on securities separately or otherwise categorized as trading, available-for-sale, or held-to-maturity, which, for cash flow reporting, is a component of proceeds from investing activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnSaleOfInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnSaleOfPropertyPlantEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnSaleOfPropertyPlantEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInAccruedLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInAccruedLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInContractWithCustomerAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInContractWithCustomerAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478345/912-310-45-11<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the account that represents the temporary difference that results from Income or Loss that is recognized for accounting purposes but not for tax purposes and vice versa.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInDeferredIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating assets after deduction of operating liabilities classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in prepaid expenses, and assets classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsForRepurchaseOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow to reacquire common stock during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRepurchaseOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsOfDividendsCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsOfDividendsCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the purchase of all investments (debt, security, other) during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquirePropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from issuance of shares under share-based payment arrangement. Includes, but is not limited to, option exercised.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow associated with the sale, maturity and collection of all investments such as debt, security and so forth during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockOptionPlanExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of noncash expense for option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockOptionPlanExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>30
<FILENAME>R9.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609098510688">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Common Stock [Member]</div></th>
<th class="th"><div>Additional Paid-in Capital [Member]</div></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><div>Accumulated Other Comprehensive Loss [Member]</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning Balance at Dec. 31, 2021</a></td>
<td class="nump">$ 1,430,093<span></span>
</td>
<td class="nump">$ 351<span></span>
</td>
<td class="nump">$ 914,802<span></span>
</td>
<td class="nump">$ 562,882<span></span>
</td>
<td class="num">$ (47,942)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Beginning Balance, shares (in shares) at Dec. 31, 2021</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">175,481<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock option plans</a></td>
<td class="nump">9,861<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">9,860<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">514<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">(204,314)<span></span>
</td>
<td class="num">$ (7)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(204,307)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,364)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="nump">54,505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">54,505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Payment of dividends ($0.305 per common share)</a></td>
<td class="num">(45,921)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(45,921)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">215,525<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">215,525<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $1,245, $4,389, and $(5,943) in 2024, 2023, and 2022, respectively</a></td>
<td class="num">(17,152)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(17,152)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="num">(17,152)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</a></td>
<td class="nump">182<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">182<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="num">(4,385)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(4,385)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2022</a></td>
<td class="nump">1,438,394<span></span>
</td>
<td class="nump">$ 345<span></span>
</td>
<td class="nump">979,167<span></span>
</td>
<td class="nump">528,179<span></span>
</td>
<td class="num">(69,297)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Balance, shares (in shares) at Dec. 31, 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">172,631<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock option plans</a></td>
<td class="nump">3,268<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">3,267<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">691<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">(79,794)<span></span>
</td>
<td class="num">$ (3)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(79,791)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,723)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="nump">54,768<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">54,768<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Payment of dividends ($0.305 per common share)</a></td>
<td class="num">(49,079)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(49,079)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">113,234<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">113,234<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $1,245, $4,389, and $(5,943) in 2024, 2023, and 2022, respectively</a></td>
<td class="nump">10,507<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,507<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="nump">10,507<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</a></td>
<td class="nump">1,954<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,954<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="nump">11,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,500<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2023</a></td>
<td class="nump">$ 1,504,752<span></span>
</td>
<td class="nump">$ 343<span></span>
</td>
<td class="nump">1,037,202<span></span>
</td>
<td class="nump">512,543<span></span>
</td>
<td class="num">(45,336)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Balance, shares (in shares) at Dec. 31, 2023</a></td>
<td class="nump">171,599<span></span>
</td>
<td class="nump">171,599<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock option plans</a></td>
<td class="nump">$ 994<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">993<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="nump">242<span></span>
</td>
<td class="nump">546<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">$ (67,085)<span></span>
</td>
<td class="num">$ (3)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(67,082)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,711)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue', window );">Stock-based compensation expense</a></td>
<td class="nump">52,443<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">52,443<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Payment of dividends ($0.305 per common share)</a></td>
<td class="num">(52,329)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(52,329)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">106,171<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">106,171<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $1,245, $4,389, and $(5,943) in 2024, 2023, and 2022, respectively</a></td>
<td class="nump">3,809<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,809<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="nump">3,809<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</a></td>
<td class="nump">8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="num">(31,258)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(31,258)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Balance at Dec. 31, 2024</a></td>
<td class="nump">$ 1,517,505<span></span>
</td>
<td class="nump">$ 341<span></span>
</td>
<td class="nump">$ 1,090,638<span></span>
</td>
<td class="nump">$ 499,303<span></span>
</td>
<td class="num">$ (72,777)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Balance, shares (in shares) at Dec. 31, 2024</a></td>
<td class="nump">170,434<span></span>
</td>
<td class="nump">170,434<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481089/718-20-55-13<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481089/718-20-55-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DividendsCommonStockCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of paid and unpaid common stock dividends declared with the form of settlement in cash.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DividendsCommonStockCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInStockholdersEquityRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax and adjustment, of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-15<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-9<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-17A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax and 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-9<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Value of stock issued as a result of the exercise of stock options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(30))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(31))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(19))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.6-05(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 13: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 14: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 4.E)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480418/310-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquity</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>R10.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094957904">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Statement of Stockholders' Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax', window );">Tax effect of unrealized gain on available-for-sale investments</a></td>
<td class="nump">$ 1,245<span></span>
</td>
<td class="nump">$ 4,389<span></span>
</td>
<td class="num">$ (5,943)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax', window );">Tax benefit of foreign currency translation adjustment</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-12<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481956/830-20-45-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-21<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before adjustment, of tax expense (benefit) for 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 tax expense (benefit) for unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-12<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfStockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfStockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>32
<FILENAME>R11.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106208032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">Summary of Significant Accounting Policies</a></td>
<td class="text">Summary of Significant Accounting Policies<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Nature of Operations</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation ("the Company" or "Cognex") is a leading global provider of machine vision products and solutions that improve efficiency and quality and address some of the most critical manufacturing and distribution challenges.</span></div><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Use of Estimates in the Preparation of Financial Statements</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America (U.S.&#160;GAAP) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and the disclosure of contingent liabilities as of the balance sheet date, and the reported amounts of revenues and expenses during the year. Actual results could differ from those estimates. Significant estimates and judgments include those related to revenue recognition and income taxes.</span></div><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Basis of Consolidation</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The consolidated financial statements include the accounts of Cognex Corporation and its subsidiaries, all of which are wholly owned. All intercompany accounts and transactions have been eliminated.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Foreign Currency Translation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements of the Company&#8217;s foreign subsidiaries, where the local currency is the functional currency, are translated using exchange rates in effect at the end of the year for assets and liabilities and average exchange rates during the year for results of operations. The resulting foreign currency translation adjustment, net of tax, is included in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Fair Value Measurements</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company applies a three-level valuation hierarchy for fair value measurements. The categorization of assets and liabilities within the valuation hierarchy is based on the lowest level of input that is significant to the measurement of fair value. Level&#160;1 inputs to the valuation methodology utilize unadjusted quoted market prices in active markets for identical assets and liabilities. Level 2 inputs to the valuation methodology are other observable inputs, including quoted market prices for similar assets and liabilities, quoted prices for identical and similar assets and liabilities in markets that are not active, or other inputs that are observable or can be corroborated by observable market data. Level 3 inputs to the valuation methodology are unobservable inputs based on management&#8217;s best estimate of the inputs that market participants would use in pricing the asset or liability at the measurement date, including assumptions about risk. A change to the level of an asset or liability within the fair value hierarchy is determined at the end of a reporting period.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Cash, Cash Equivalents, and Investments</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#8217;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2024, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#8217; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounts Receivable</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company extends credit with various payment terms to customers based on an evaluation of their financial condition. Accounts that are outstanding longer than the payment terms are considered to be past due. The Company establishes an allowance against accounts receivable for credit losses when it determines receivables are at risk for collection based on the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, and general economic and industry conditions, as well as various other factors. Receivables are written off against this allowance in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a recovery of the credit loss. Credit losses and recoveries related to accounts receivable are included in "Selling, general, and administrative expenses" on the Consolidated Statements of Operations.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Inventories</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost and net realizable value. Cost is determined using standard costs, which approximates actual costs under the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Purchase price variances are incurred when actual costs are different than standard costs due to favorable or unfavorable market prices. Management applies judgment to recognize purchase price variances in the same period that the associated standard costs of the finished goods that consume these components are sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s inventory is subject to technological change or obsolescence. The Company reviews inventory quantities on hand and estimates excess and obsolescence exposures based on assumptions about future demand, product transitions, general economic and industry conditions, and other circumstances, and records reserves to reduce the carrying value of inventories to their net realizable value. If actual future demand is less than estimated, additional inventory write-downs would be required.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company generally disposes of obsolete inventory upon determination of obsolescence. The Company does not dispose of excess inventory immediately, due to the possibility that some of this inventory could be sold to customers as a result of differences between actual and forecasted demand. When inventory has been written down below cost, such reduced amount is considered the new cost basis for subsequent accounting purposes. As a result, the Company could recognize a higher-than-normal gross margin if the reserved inventory were subsequently sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired inventories are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of inventories above the acquired company&#8217;s pre-acquisition carrying value, which results in a lower-than-normal gross margin when these acquired inventories are sold.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Property, Plant, and Equipment</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment are stated at cost and depreciated using the straight-line method over the assets&#8217; estimated useful lives. Buildings&#8217; original useful lives are 39 years, building improvements&#8217; useful lives range from <span style="-sec-ix-hidden:f-435">five</span> to ten years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from <span style="-sec-ix-hidden:f-437">two</span> to ten years. Land that is leased or granted, as well as leasehold improvements, are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases. Maintenance and repairs are expensed when incurred; additions and improvements are capitalized. Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired property, plant, and equipment are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of property, plant, and equipment above the acquired company&#8217;s pre-acquisition carrying value, which results in a higher depreciation expense over the estimated lives of the assets.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Internal-use Software</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Internal-use software is software acquired, internally developed, or modified solely to meet the Company's internal needs, and during the software's development no substantive plan exists to sell the software. The accounting treatment for computer software developed for internal use depends on the nature of activities performed at each stage of development. The preliminary project stage includes conceptual formulation of design alternatives, determination of system requirements, vendor demonstrations, and final selection of vendors, and during this stage costs are expensed as incurred. The application development stage includes software configuration, coding, hardware installation, and testing. During this stage, certain costs are capitalized, including external direct costs of materials and services, as well as payroll and payroll-related costs for employees who are directly associated with the project, while certain costs are expensed as incurred, including training and data conversion costs. The post-implementation stage includes support and maintenance, and during this stage costs are expensed as incurred.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Capitalization begins when both the preliminary project stage is completed and management commits to funding the project. Capitalization ceases at the point the project is substantially complete and ready for its intended use, that is, after all substantial testing is completed. Costs of specified upgrades and enhancements to internal-use software are capitalized if it is probable that those expenditures result in additional functionality. Capitalized costs are amortized on a straight-line basis over the estimated useful life.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Leases</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At inception of a contract, the Company determines whether that contract is or contains a lease by assessing whether there is an identified asset and whether the contract conveys the right to control the use of the identified asset for a period of time in exchange for consideration. The Company has control of the asset if it has the right to direct the use of the asset and obtains substantially all of the economic benefits from the use of the asset throughout the period of use.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a practical expedient, the Company does not recognize a lease asset or lease liability for leases with a lease term of twelve months or less. In the determination of the lease term, the Company considers the existence of extension or termination options and the probability of those options being exercised.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease contracts may include fixed lease components and non-lease components, such as common area maintenance and utilities for property leases. As a practical expedient, the Company accounts for the non-lease components together with the lease components as a single lease component for all of its leases.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: (1) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; (2) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; (3) the lease term is for the major part of the remaining economic life of the underlying asset (the Company considers a major part to be 75% or more of the remaining economic life of the underlying asset); (4) the present value of the sum of the lease payments and any residual value guaranteed by the Company equals or exceeds substantially all of the fair value of the underlying asset (the Company considers substantially all the fair value to be 90% or more of the fair value of the underlying asset amount); or (5) the underlying asset is of such a specialized nature that it is expected to have no alternative use to the lessor at the end of the lease term. When none of the criteria above are met, the Company classifies the lease as an operating lease.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On the lease commencement date, the Company records a lease asset and lease liability on the balance sheet. The lease asset consists of: (1) the amount of the initial lease liability; (2) any lease payments made to the lessor at or before the lease commencement date, minus any lease incentives received; and (3) any initial direct cost incurred by the Company. Initial direct costs are incremental costs of a lease that would not have been incurred if the lease had not been obtained and are capitalized as part of the lease asset. The lease liability equals the present value of the future cash payments discounted using the Company's incremental borrowing rate. The Company&#8217;s incremental borrowing rate is the rate of interest that the Company would have to pay to borrow an amount equal to the lease payments over a similar term which was estimated using the Secured Overnight Financing Rate (SOFR) plus a 2% credit risk spread.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating lease expense equals the total cash payments recognized on a straight-line basis over the lease term. The amortization of the lease asset is calculated as the straight-line lease expense less the accretion of the interest on the lease liability each period. The lease liability is reduced by the cash payment less the interest each period.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Goodwill</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill is stated at cost. The Company evaluates the potential impairment of goodwill annually each fourth quarter </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">and whenever events or circumstances indicate the carrying value of the goodwill may not be recoverable. The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary. Factors that management considers in this assessment include general economic and industry conditions, overall financial performance (both current and projected), changes in strategy, changes in the composition or carrying amount of net assets, and market capitalization. If this qualitative assessment indicates that it is more likely than not that the fair value of a reporting unit is less than its carrying value, the Company proceeds to perform a quantitative impairment test. Under this quantitative analysis, the fair value of the reporting unit is compared with its carrying value, including goodwill. If the carrying value exceeds the fair value of the reporting unit, the Company recognizes an impairment charge. The Company estimates the fair value of its reporting unit using the income approach based on a discounted cash flow model. In addition, the Company uses the market approach, which compares the reporting unit to publicly traded companies and transactions involving similar businesses, to support the conclusions based on the income approach. </span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Intangible Assets</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets are stated at cost and amortized over the assets&#8217; estimated useful lives. Intangible assets are either amortized in relation to the relative cash flows anticipated from the intangible asset or using the straight-line method, depending on facts and circumstances. The useful lives of customer relationships range from <span style="-sec-ix-hidden:f-443">five</span> to fifteen years, completed technologies from <span style="-sec-ix-hidden:f-445">five</span> to nine years, non-compete agreements from <span style="-sec-ix-hidden:f-447">six</span> to seven years, and trademarks for three years. In-process technology is an indefinite-lived intangible asset until the technology is completed, at which point it is amortized over its estimated useful life. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company evaluates the potential impairment of intangible assets whenever events or circumstances indicate the carrying value of the assets may not be recoverable. For finite-lived intangible assets that are subject to amortization, the Company follows a two-step process for impairment testing. In step one, known as the recoverability test, the carrying value of the asset is compared to the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the asset. If the sum of the undiscounted future cash flows is less than the carrying value, the asset is not recoverable and step two is performed. In step two, the impairment charge is measured as the amount by which the carrying value of the asset exceeds its fair value.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Warranty Obligations</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from <span style="-sec-ix-hidden:f-451">one</span> to three years from the time of sale based on the product being purchased and the terms of the customer arrangement. Warranty obligations are evaluated and recorded at the time of sale since it is probable that customers will make claims under warranties related to products that have been sold and the amount of these claims can be reasonably estimated based on historical costs to fulfill claims. Obligations may also be recorded subsequent to the time of sale whenever specific events or circumstances impacting product quality become known that would not have been taken into account using historical data.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Contingencies</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Loss contingencies are accrued if the loss is probable and the amount of the loss can be reasonably estimated. Legal costs associated with potential loss contingencies are expensed as incurred.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Derivative Instruments</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Derivative instruments are recorded on the Consolidated Balance Sheets at fair value. Changes in the fair value of the Company&#8217;s economic hedges utilizing foreign currency forward contracts are included in "Foreign currency gain (loss)" on the Consolidated Statements of Operations. When the Company is engaged in more than one outstanding derivative contract with the same counterparty and also has a legally enforceable master netting agreement with that counterparty, the &#8220;net&#8221; mark-to-market exposure represents the netting of the positive and negative exposures with that counterparty. The cash flows from derivative instruments are presented in the same category on the Consolidated Statements of Cash Flows as the category for the cash flows from the hedged item. Generally, this accounting policy election results in cash flows related to derivative instruments being classified as an operating activity on the Consolidated Statements of Cash Flows. </span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Revenue Recognition</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &#8220;Revenue from Contracts with Customers.&#8221; The core principle of ASC 606 is to recognize revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Company expects to be entitled in exchange for those goods or services. The framework in support of this core principle includes: (1) identifying the contract with the customer; (2) identifying the performance obligations in the contract; (3) determining the transaction price; (4) allocating the transaction price to the performance obligations; and (5) recognizing revenue when (or as) the performance obligations are satisfied. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Contract with the Customer</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies contracts with customers as agreements that create enforceable rights and obligations, which typically take the form of customer contracts or purchase orders. 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.</span></div><div style="margin-top:6pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Performance Obligations in the Contract</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies performance obligations as promises in contracts to transfer distinct goods or services. Standard products and services that the Company regularly sells separately, which customers can benefit from either on their own or with other readily available resources and are distinct within the context of the customer contract, are accounted for as distinct performance obligations. Application-specific customer solutions that are comprised of a combination of products and services are accounted for as one performance obligation to deliver a total solution to the customer. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shipping and handling activities for which the Company is responsible under the terms and conditions of the sale are not accounted for as performance obligations but as fulfillment costs. These activities are required to fulfill the Company&#8217;s promise to transfer the goods and are expensed when revenue is recognized.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company does not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract. If revenue is recognized before immaterial promises have been completed, then the costs related to such immaterial promises are accrued at the time of sale.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Determining the Transaction Price</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company determines the transaction price as the amount of consideration it expects to receive in exchange for transferring promised goods or services to the customer. Amounts collected from customers for sales taxes are excluded from the transaction price. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If a contract includes a variable amount, such as a rebate, then the Company estimates the transaction price using either the expected value or the most likely amount of consideration to be received, depending on the specific facts and circumstances. The Company includes estimated variable consideration in the transaction price only to the extent it is probable that a significant reversal of revenue will not occur when the uncertainty is resolved. The Company updates its estimate of variable consideration at the end of each reporting period to reflect changes in facts and circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company records revenue net of estimated returns. As a practical expedient, the Company estimates the transaction price using the expected value based on its history of return experience using a portfolio approach in which the Company&#8217;s total revenue is reduced by an estimate of total customer returns. Management reasonably expects that the effect of applying a portfolio approach to a group of contracts would not differ materially from considering each contract separately.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Allocating the Transaction Price to the Performance Obligations</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company allocates the transaction price to each performance obligation at contract inception based on a relative stand-alone selling price basis, or the price at which the Company would sell the good or service separately to similar customers in similar circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue when it transfers the promised goods or services to the customer. Revenue for standard products is recognized at the point in time when the customer obtains control of the goods, which is typically upon shipment or delivery when the customer has legal title, physical possession, the risks and rewards of ownership, and an enforceable obligation to pay for the products. Revenue for services, which are not material, is typically recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can reasonably determine that the agreed-upon specifications in the contract have been met and the customer should reasonably accept the performance obligations in the </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#8217;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#8217;s requirements. If the Company can reasonably determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the Company&#8217;s standard products and services, revenue recognition and billing typically occur at the same time. For application-specific customer solutions, however, the agreement with the customer may provide for billing terms which differ from the timing of revenue recognition, resulting in either deferred revenue or unbilled revenue. Credit assessments are performed to determine payment terms, which vary by region, industry, and customer. Prepayment terms result in contract liabilities for customer deposits. When credit is granted to customers, payment is typically due 30 to 90 days from billing. The Company's contracts typically have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on such contracts and to expense sales commissions. The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management exercises judgment when determining the amount of revenue to be recognized each period. Such judgments include, but are not limited to, assessing the customer&#8217;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Research and Development</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development costs primarily include costs related to personnel, prototyping materials and equipment, and outside services. Research and development costs are expensed when incurred until technological feasibility has been established for the product. Thereafter, all software costs may be capitalized until the product is available for general release to customers. The Company determines technological feasibility at the time the product reaches beta in its stage of development. Historically, the time incurred between beta and general release to customers has been short, and therefore, the costs have been insignificant. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Advertising Costs</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Advertising costs are expensed as incurred and totaled $1,286,000 in 2024, $1,190,000 in 2023, and $1,257,000 in 2022.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock-Based Compensation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). The Company has reserved a specific number of shares of its authorized but unissued shares for issuance upon the exercise of stock options or the settlement of RSUs. When a stock option is exercised or an RSU is settled, the Company issues new shares from this pool. Management is responsible for determining the appropriate valuation model and estimating the fair value of stock-based awards, and in doing so, considers a number of factors, including information provided by an outside valuation advisor and the observable market price of the Company's common stock on the grant date. The fair value of RSUs is determined based on the observable market price of the Company's common stock on the grant date less the present value of expected future dividends. The fair value of PRSUs where the performance goal includes service and market conditions is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. When determining the grant-date fair value of stock-based awards, management further considers whether an adjustment is required to the observable </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">market price or volatility of the Company's common stock that is used in the valuation as a result of material non-public information if that information is expected to result in a material increase in share price.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes compensation expense related to stock-based awards using the graded attribution method, in which expense is recognized on a straight-line basis over the service period for each separately vesting portion of the stock option or RSU as if the award was, in substance, multiple awards. The amount of compensation expense recognized at the end of the vesting period is based on the number of awards for which the requisite service has been completed. No compensation expense is recognized for awards that are forfeited for which the employee does not render the requisite service. The term &#8220;forfeitures&#8221; is distinct from &#8220;expirations&#8221; and represents only the unvested portion of the surrendered award. The Company applies estimated forfeiture rates to its unvested awards to arrive at the amount of compensation expense that is expected to be recognized over the requisite service period. At the end of each separately vesting portion of an award, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based on the employee&#8217;s service, and an increase or decrease to compensation expense is recorded to true up the final expense.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Taxes</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes a tax position in its financial statements when that tax position, based solely upon its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statutes of limitations. Derecognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The portion of the liability that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statutes of limitations) or are not expected to be paid within one year are classified as a non-current liability. It is the Company&#8217;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Deferred tax assets and liabilities are determined based on the differences between the financial statement and tax bases of assets and liabilities as measured by the enacted tax rates that will be in effect when these differences reverse. Valuation allowances are provided if, based on the weight of available evidence, it is more likely than not that some or all of the deferred tax assets will not be realized. The Company accounts for the impact of Global Intangible Low-Taxed Income (GILTI) tax in deferred taxes. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sales tax in the United States and similar taxes in other jurisdictions that are collected from customers and remitted to government authorities are presented on a gross basis (i.e., a receivable from the customer with a corresponding payable to the government). Amounts collected from customers and retained by the Company during tax holidays are recognized as non-operating income when earned.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Net Income Per Share</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period. Diluted net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period plus potential dilutive common shares. Dilutive common equivalent shares consist of stock options and restricted stock units and are calculated using the treasury stock method. Common equivalent shares do not qualify as participating securities. In periods where the Company records a net loss, potential common stock equivalents are not included in the calculation of diluted net loss per share as their effect would be anti-dilutive.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Comprehensive Income</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Comprehensive income is defined as the change in equity of a company during a period from transactions and other events and circumstances, excluding transactions resulting from investments by owners and distributions to owners. Accumulated other comprehensive loss, net of tax, consists of foreign currency translation adjustment losses of $67,808,000 and $36,550,000, as of December 31, 2024 and December 31, 2023, respectively; net unrealized losses on available-for-sale investments of $3,698,000 and $7,515,000 as of December 31, 2024 and December 31, 2023, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,000 at each year end.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Concentrations of Risk</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and accounts receivable. The Company has certain domestic and foreign cash balances that exceed the insured limits set by the Federal Deposit Insurance Corporation (FDIC) in the United States and equivalent regulatory agencies in foreign countries. The Company primarily invests in investment-grade debt securities and has established guidelines relative to credit ratings, diversification, and maturities of its debt securities that maintain liquidity and safety. The Company has historically not experienced any significant realized losses on its debt securities. The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has historically not experienced any significant losses related to the collection of its accounts receivable.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of the Company's products is presently manufactured by a third-party contractor located in Indonesia. This contract manufacturer has agreed to provide the Company with termination notification periods and last-time-buy rights, if and when that may be applicable. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges or other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, delivery costs, and manufacturing delays.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company sources components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components may typically be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of the Company&#8217;s products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Business Combinations</span></div>The Company determines whether a transaction qualifies as a business combination by applying the definition of a business, which requires the assets acquired and liabilities assumed to be inputs and processes that have the ability to contribute to the creation of outputs. The Company accounts for business combinations under the acquisition method of accounting, which requires the following steps: (1) identifying the acquirer, (2) determining the acquisition date, (3) recognizing and measuring the identifiable assets acquired and the liabilities assumed, and (4) recognizing and measuring goodwill. The Company measures the identifiable assets acquired and liabilities assumed at their estimated fair values as of the acquisition date. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired, on detailed valuations that use information and assumptions provided by management, which consider management&#8217;s best estimates of inputs and assumptions that a market participant would use. Goodwill is recognized as of the acquisition date as the excess of the consideration transferred over the net amount of assets acquired and liabilities assumed. Transaction costs are expensed as incurred.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SignificantAccountingPoliciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all significant accounting policies of the reporting entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 235<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/235/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SignificantAccountingPoliciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>R12.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106099168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>New Pronouncements<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract', window );"><strong>Accounting Changes and Error Corrections [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock', window );">New Pronouncements</a></td>
<td class="text">New Pronouncements<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all public entities, including public entities with a single reportable segment, that are required to report segment information in accordance with Topic 280, Segment Reporting. The amendments require public business entities to provide in interim and annual periods one or more measures of segment profit or loss used by the chief operating decision maker to allocate resources and assess performance. Additionally, the amendments require disclosure of significant segment expenses and other segment items, as well as incremental qualitative disclosures. The amendments in this ASU are effective for fiscal years beginning after December 15, 2023 and should be applied on a retrospective basis. The Company adopted ASU 2023-07 in 2024. Refer to Note 20 for related disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all entities that are subject to Topic 740, Income Taxes. The amendments require public business entities to disclose specific categories in their rate reconciliation and provide additional information for reconciling items that meet a quantitative threshold. They also require all entities to disclose income taxes paid, net of refund received, disaggregated by federal, state, and foreign taxes and by individual jurisdictions in which income taxes paid, net of refunds received, is equal to or greater than five percent of total income taxes paid. For public business entities, the amendments in this ASU are effective for annual periods beginning after December 15, 2024. The amendments in this ASU should be applied on a prospective basis. Management does not expect ASU 2023-09 to have a material impact on the Company's financial statements and disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2024-03, Income Statement&#8212;Reporting Comprehensive Income&#8212;Expense Disaggregation Disclosures (Subtopic 220-40)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASU 2024-03 aims to enhance transparency for users of financial statements by requiring public business entities to disaggregate specific expense categories. ASU 2024-03 mandates disclosures in the notes to financial statements detailing the composition and trends of key expense categories within major income statement captions. These enhanced disclosures are intended to help investors more effectively assess the entity&#8217;s performance, understand its cost structure, and make more accurate forecasts of future cash flows. For public business entities, ASU 2024-03 is effective for annual periods beginning after December 15, 2026, and interim periods within annual reporting periods beginning after December 15, 2027. The adoption will result in disclosure changes only.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingChangesAndErrorCorrectionsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476173/280-10-65-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 7<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479343/105-10-65-7<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 848<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483550/848-10-65-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 848<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483550/848-10-65-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 848<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483550/848-10-65-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480016/944-40-65-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SAB Topic 11.M.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480530/250-10-S99-5<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (i)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480528/815-20-65-6<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479654/326-10-65-4<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479654/326-10-65-4<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483194/926-20-65-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483194/926-20-65-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483194/926-20-65-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480530/250-10-S99-6<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 250<br> -Publisher FASB<br> -URI https://asc.fasb.org/250/tableOfContent<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<FILENAME>R13.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106138016">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text">Fair Value Measurements<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Financial Assets and Liabilities that are Measured at Fair Value on a Recurring Basis</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, 2024 (in thousands):</span></div><div style="margin-top:10pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:53.578%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.524%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Quoted&#160;Prices&#160;in<br/>Active Markets<br/>for Identical<br/>Assets (Level&#160;1)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Significant&#160;Other<br/>Observable<br/>Inputs (Level&#160;2)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unobservable Inputs                       (Level 3)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,242&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">340,916&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">45,634&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">324&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">211&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s money market instruments are reported at fair value based on the daily market price for identical assets in active markets, and are therefore classified as Level 1. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s debt securities and forward contracts are reported at fair value based on model-driven valuations in which all significant inputs are observable or can be derived from or corroborated by observable market data for substantially the full term of the asset or liability, and are therefore classified as Level 2. Management is responsible for estimating the fair value of these financial assets and liabilities, and in doing so, considers valuations provided by a large, third-party pricing service. For debt securities, this service maintains regular contact with market makers, brokers, dealers, and analysts to gather information on market movement, direction, trends, and other specific data. They use this information to structure yield curves for various types of debt securities and arrive at the daily valuations. The Company's forward contracts are typically traded or executed in over-the-counter markets with a high degree of pricing transparency. The market participants are generally large commercial banks.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis</span></div>Non-financial assets, such as property, plant and equipment, operating lease assets, goodwill, and intangible assets, are required to be measured at fair value only when an impairment loss is recognized. The Company evaluates these long-lived assets for impairment whenever events or changes in circumstances, referred to as "triggering events," indicate the carrying value may not be recoverable. The Company did not record impairment charges related to non-financial assets in 2024, 2023, or 2022.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 107<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-107<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2E<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-6A<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 940<br> -SubTopic 820<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478119/940-820-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>35
<FILENAME>R14.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106232912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents, and Investments<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAbstract', window );"><strong>Cash and Cash Equivalents [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock', window );">Cash, Cash Equivalents, and Investments</a></td>
<td class="text">Cash, Cash Equivalents, and Investments<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash, cash equivalents, and investments consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.274%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">170,852</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">183,242&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">15,242</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,413&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">186,094</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">202,655&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">55,742</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">124,851&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,487</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">990</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">737</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,551&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current investments</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">59,956</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">129,392&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">285,174</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">183,965&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">43,147</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,577</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,763&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">979&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current investments</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">340,898</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">244,230&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">586,948</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">576,277&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Corporate bonds consist of debt securities issued by both domestic and foreign companies; treasury notes consist of debt securities issued by the U.S. government; sovereign bonds consist of direct debt issued by foreign governments; and asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement. All of the Company's securities as of December 31, 2024 and 2023 were denominated in U.S. Dollars.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s cash balance included foreign bank balances totaling $156,027,000 and $173,614,000 as of December&#160;31, 2024 and 2023, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accrued interest receivable is included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $4,144,000 and $3,169,000 as of December 31, 2024 and 2023, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2024 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:36.583%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.005%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">56,472&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(733)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55,742&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,501&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(14)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,487&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,013&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(23)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">739&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">737&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">288,332&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">408&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,566)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">285,174&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,570&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(425)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,147&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,131&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(554)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,577&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">405,758</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">413</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(5,317)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">400,854</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:36.583%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.005%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">128,150&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,299)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">124,851&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,637&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(86)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,551&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,012&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(22)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">189,326&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">506&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,867)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">183,965&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,654&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">82&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(213)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,773&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,010)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,763&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,037&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(58)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">979&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">383,589</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">588</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,555)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">373,622</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2024 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:34.289%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.885%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.328%"></td><td style="width:0.1%"></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">172,049&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,227)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">87,815&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,071)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">259,864&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(4,298)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">42,149&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(425)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,487&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(14)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,636&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(439)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,024&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(547)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,290&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(10)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(557)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(23)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(23)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">225,222</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(3,199)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">93,582</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(2,118)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">318,804</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(5,317)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2023 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:34.289%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.885%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.328%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,770&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(359)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">226,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,807)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">257,413&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,166)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,725&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(153)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,441&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(60)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23,166&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(213)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,062&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,049)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,252&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(47)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,096)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,968&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(80)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,968&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(80)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">68,557</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1,561)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">233,304</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(8,994)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">301,861</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,555)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors debt securities that are in an unrealized loss position to determine whether a loss exists related to the credit quality of the issuer. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows. Based on this evaluation, no allowance for credit losses on debt securities was recorded as of December 31, 2024, 2023, or 2022. Management currently intends to hold these securities to full value recovery at maturity.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The following table summarizes the Company's gross realized gains and losses on the sale of debt securities (in thousands):</span></div><div style="margin-top:9pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:52.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.823%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.524%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized gains</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">111&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">133&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized losses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(16)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,065)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(315)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net realized gains (losses)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(8)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,954)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(182)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Realized gains and losses are included in "Investment income" on the Consolidated Statements of Operations. Prior to the sale of these securities, unrealized gains and losses for these debt securities, net of tax, were recorded in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the effective maturity dates of the Company&#8217;s available-for-sale investments as of December&#160;31, 2024 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:25.508%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.157%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.864%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.256%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.581%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&lt;1&#160;Year</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1-2&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2-3&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">3-4&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">4-5&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">5-7&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55,742&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,324&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">92,207&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">68,029&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,614&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">340,916&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,487&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,177&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,365&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,605&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">45,634&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">737&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,911&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,296&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,982&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,388&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">59,956</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">77,412</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">113,572</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">81,930</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">64,596</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,388</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">400,854</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for cash, cash equivalents, investments in debt and equity instruments (including cost and equity investees and related income statement amounts), equity and cost method investments, investments in joint ventures and any other investment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 13<br> -Subparagraph (d)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482477/820-10-65-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>36
<FILENAME>R15.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609208464512">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventories</a></td>
<td class="text">Inventories<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:70.935%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.517%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></div></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Raw materials</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">86,917</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">93,201&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,544</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,747&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Finished goods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">65,066</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">63,337&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">157,527</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">162,285&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/330/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<FILENAME>R16.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106211136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property, Plant, and Equipment<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Property, Plant and Equipment [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock', window );">Property, Plant, and Equipment</a></td>
<td class="text">Property, Plant, and Equipment<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:70.935%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.517%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Land</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,711</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,805&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Buildings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">38,878</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,117&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Building improvements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">46,496</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,992&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">21,642</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,611&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer hardware and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">57,791</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55,154&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Manufacturing test equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">45,523</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,182&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Furniture and fixtures</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,468</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,361&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">225,509</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">206,222&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: accumulated depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(127,064)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(100,373)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">98,445</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">105,849&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company disposed of property, plant, and equipment with a cost basis of $9,580,000 and accumulated depreciation of $9,492,000 in 2024, resulting in a loss of $88,000. The Company disposed of property, plant, and equipment with a cost basis of $12,421,000 and accumulated depreciation of $12,184,000 in 2023, net of proceeds of $8,000, resulting in a loss of $229,000.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/360/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-6<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<FILENAME>R17.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609095419472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeasesTextBlock', window );">Leases</a></td>
<td class="text">Leases<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company's leases are primarily leased properties across different worldwide locations where the Company conducts its business. All of these leases are classified as operating leases. Certain leases may contain options to extend or terminate the lease at the Company's sole discretion. As of December 31, 2024, there were no options to terminate and twenty options to extend that were accounted for in the determination of the lease term for the Company's outstanding leases. Certain leases contain leasehold improvement incentives, retirement obligations, escalating clauses, rent holidays, and variable payments tied to a consumer price index. There were no restrictions or covenants for the outstanding leases as of December 31, 2024. The Company did not have any leases that had not yet commenced but that created significant rights and/or obligations as of December 31, 2024.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total operating lease expense was $14,131,000 in 2024, $11,598,000 in 2023, and $8,939,000 in 2022. The total operating lease cash payments were $13,683,000 in 2024, $10,148,000 in 2023, and $8,548,000 in 2022. The total lease expense for leases with a term of twelve months or less for which the Company elected not to recognize a lease asset or lease liability was $407,000 in 2024, $427,000 in 2023, and $144,000 in 2022.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future operating lease cash payments are as follows (in thousands):</span></div><div style="margin-top:14pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:82.648%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.728%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.224%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount </span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,534&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,543&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,496&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,820&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,242&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,657&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">93,292</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The discounted present value of the future lease cash payments resulted in a lease liability of $70,217,000 and $78,601,000 as of December 31, 2024 and 2023, respectively. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company leases a building in Singapore that serves as a distribution center for customers in Asia. The lease contains two components: an 88,000 square-foot premises that had a commencement date in June of 2023 and a second 27,000 square-foot premises that does not commence until the fourth quarter of 2025. Accordingly, the second component of the lease has not yet been recorded on the Consolidated Balance Sheets, nor has it created any significant rights and obligations as of December 31, 2024. This second lease component has an original term of eight years and the Company has the right and option to extend this term by an additional five years, commencing upon the expiration of the original term. Future payment obligations associated with this lease component total $13,145,000, $160,000 of which is payable in 2025 and which reflects an estimated extension period of five years. Future payment obligations related to this lease component are not included in the future operating lease cash payments table above. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has entered into a lease for a 6,500 square-foot building in Aachen, Germany for a term of ten years. The commencement date for this lease is expected to be in the second quarter of 2025, and therefore it has not yet been recorded on the Consolidated Balance Sheets, nor has it created any significant rights and obligations as of December 31, 2024. The Company has the right and option to extend the term of this lease for an additional period of five years, commencing upon the expiration of the original term. Future payment obligations associated with this lease total $8,763,000, $483,000 of which is payable in 2025. Future payment obligations related to this lease are not included in the future operating lease cash payments table above.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted-average discount rate was 5.9% and 5.7% for the leases outstanding as of December 31, 2024 and December 31, 2023, respectively. The weighted-average remaining lease term was 9.9 years and 10.5 years for the leases outstanding as of December 31, 2024 and 2023, respectively.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeasesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/842-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeasesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<FILENAME>R18.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106241552">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillDisclosureTextBlock', window );">Goodwill</a></td>
<td class="text">Goodwill<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the carrying value of goodwill were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:83.380%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.688%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">242,630&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Acquisition of Moritex Corporation (refer to Note 21)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">145,047&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,504&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">393,181&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Moritex Corporation measurement period adjustments (refer to Note 21)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,478&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(14,722)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">384,937</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For its 2024 annual analysis of goodwill, management elected to perform a qualitative assessment. Based on this assessment, management believes it is more likely than not that the fair value of the reporting unit exceeds its carrying value. The Company did not record impairment charges related to goodwill in 2024, 2023, or 2022.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for goodwill.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>40
<FILENAME>R19.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106261088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible Assets</a></td>
<td class="text">Intangible Assets<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:51.176%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.320%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">67,781</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,229)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">57,552</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">58,373</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(25,766)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">32,607</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">810</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(337)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">473</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">340</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(288)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">52</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">127,304</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(36,620)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">90,684</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">75,965&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,352)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">70,613&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,123&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(20,745)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">41,378&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">903&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(50)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">853&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">340&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(232)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">108&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">139,331&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(26,379)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">112,952&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company did not record impairment charges related to intangible assets in 2024, 2023, or 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:81.623%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.445%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,147&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,775&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,850&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,120&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,120&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">45,672&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">90,684</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all or part of the information related to intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/985-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>R20.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609208464512">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Expenses<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Payables and Accruals [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">Accrued Expenses</a></td>
<td class="text">Accrued Expenses<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accrued expenses consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:64.002%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.908%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.057%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">18,735</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,645&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign retirement obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,445</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,835&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,140</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,244&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and payroll taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,123</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,774&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vacation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,945</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,827&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">28,372</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,049&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">71,760</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72,374&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the warranty obligation were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:81.209%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.591%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,427&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,876&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,928)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,375&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,940&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,078)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,244&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,794&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,883)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,140</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(24))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 720<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483384/720-30-45-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(19)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>42
<FILENAME>R21.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609202824096">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies</a></td>
<td class="text">Commitments and Contingencies<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, the Company had outstanding purchase orders totaling $44,269,000 to procure inventory from various vendors. Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties. These purchase commitments relate primarily to expected sales in 2025.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of the Company's outstanding inventory purchase orders as of December&#160;31, 2024, as well as additional preauthorized commitments to procure strategic components based on the Company's expected customer demand, are placed with the Company's primary contract manufacturer for the Company's assembled products. The Company purchased $17,461,000, $10,616,000, and $5,269,000 in 2024, 2023, and 2022, respectively, of inventories as a result of the Company's obligation to purchase any non-cancelable and non-returnable components that have been purchased by the contract manufacturer with the Company's preauthorization, when these components have not been consumed within the period defined in the terms of the Company's agreement with this contract manufacturer. While the Company typically expects such purchased components to be used in future production of Cognex finished goods, these components are considered in the Company's reserve estimate for excess and obsolete inventory. Furthermore, the Company accrues for losses on commitments for the future purchase of non-cancelable and non-returnable components from this contract manufacturer at the time that circumstances, such as changes in demand, indicate that the value of the components may not be recoverable, the loss is probable, and management has the ability to reasonably estimate the amount of the loss.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Various claims and legal proceedings generally incidental to the normal course of business are pending or threatened on behalf of or against the Company. While we cannot predict the outcome of these matters, we believe that any liability arising from them will not have a material adverse effect on our financial position, liquidity, or results of operations.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 405<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/405-30/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/450/tableOfContent<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 440<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478522/954-440-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 440<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/440/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>43
<FILENAME>R22.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609210418080">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Indemnification Provisions<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GuaranteesAbstract', window );"><strong>Guarantees [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_IndemnificationProvisionsTextBlock', window );">Indemnification Provisions</a></td>
<td class="text">Indemnification Provisions<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Except as limited by Massachusetts law, the by-laws of the Company require it to indemnify certain current or former directors, officers, and employees of the Company against expenses incurred by them in connection with each proceeding in which he or she is involved as a result of serving or having served in certain capacities. Indemnification is not available with respect to a proceeding as to which it has been adjudicated that the person did not act in good faith in the reasonable belief that the action was in the best interests of the Company. The maximum potential amount of future payments the Company could be required to make under these provisions is unlimited. The Company has never incurred significant costs related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the ordinary course of business, the Company may accept standard limited indemnification provisions in connection with the sale of its products, whereby it indemnifies its customers for certain direct damages incurred in connection with third-party patent or other intellectual property infringement claims with respect to the use of the Company&#8217;s products. The maximum potential amount of future payments the Company could be required to make under these provisions is, in many, but not all instances, subject to fixed monetary limits. The Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.</span></div>In the ordinary course of business, the Company also accepts limited indemnification provisions from time to time, whereby it indemnifies customers for certain direct damages incurred in connection with bodily injury and property damage arising from the use of the Company&#8217;s products. Future payments the Company could be required to make under these provisions is generally recoverable under the Company&#8217;s insurance policies. As a result of this coverage, and the fact that the Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions, the Company believes the estimated fair value of these provisions is not material.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_IndemnificationProvisionsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indemnification provisions are a potential liability whereby the Company indemnifies certain directors, officers, and employees (current or former) against expenses incurred by them in relation to specific legal proceedings. The company also indemnifies other parties for specific situations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_IndemnificationProvisionsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GuaranteesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GuaranteesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>44
<FILENAME>R23.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609095420528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract', window );"><strong>Derivative Instruments and Hedging Activities Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock', window );">Derivative Instruments</a></td>
<td class="text">Derivative Instruments<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s foreign currency risk management strategy is designed to mitigate the potential financial impact of changes in the value of transactions and balances denominated in foreign currencies resulting from changes in foreign currency exchange rates. The Company enters into economic hedges utilizing foreign currency forward contracts with maturities that do not exceed approximately three months to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables. The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged. These economic hedges are not designated as hedging instruments for hedge accounting treatment. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company had the following outstanding forward contracts (in thousands): </span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:47.291%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.765%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.180%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.180%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.354%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Currency</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">USD Equivalent</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">USD Equivalent</span></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="18" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Singapore Dollar</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">40,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">29,457</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39,700&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,136&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Euro</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">26,029</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,302&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chinese Renminbi</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">95,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,990</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">50,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,025&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Mexican Peso</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">220,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,701</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">145,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,505&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Hungarian Forint</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,360,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,951</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,240,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,466&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">British Pound</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,200</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,008</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,345&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,258&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Japanese Yen</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,000,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,750</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">600,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,255&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Swiss Franc</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,200</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,432</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Canadian Dollar</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,390</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,470&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,112&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:15.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.204%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.788%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.350%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.888%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.788%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.358%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Asset Derivatives</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Liability Derivatives</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet  Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet   Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td></tr><tr style="height:24pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="36" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">324</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">151</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">211</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the gross activity for all derivative assets and liabilities which were presented on a net basis on the Consolidated Balance Sheets due to the right of offset with each counterparty (in thousands):</span></div><div style="margin-top:14pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:18.108%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.562%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.814%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.562%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.394%"></td><td style="width:0.1%"></td></tr><tr><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-922"><span style="-sec-ix-hidden:f-923">Asset Derivatives</span></span></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-924"><span style="-sec-ix-hidden:f-925">Liability Derivatives</span></span></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">324</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">151</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">211</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of assets presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">324</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">151&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of liabilities presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">211</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">106&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:21.920%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:22.800%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.762%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.908%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.911%"></td><td style="width:0.1%"></td></tr><tr style="height:12pt"><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Location in Financial Statements</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="24" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gains (losses) recognized in current operations</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,945</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(10,023)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,823&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for derivative instruments and hedging activities including, but not limited to, risk management strategies, non-hedging derivative instruments, assets, liabilities, revenue and expenses, and methodologies and assumptions used in determining the amounts.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480237/815-40-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5C<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-5C<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 815<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/815/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>R24.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609212253488">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue Recognition</a></td>
<td class="text">Revenue Recognition<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by geographic area based on the customer's country of domicile (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:61.216%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.630%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.630%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.632%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Americas</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">350,155</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">330,415&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">390,573&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">217,880</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">220,665&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">234,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Greater China</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">164,147</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">164,115&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">227,447&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">182,333</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">122,352&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">153,427&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">914,515</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">837,547&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:1pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by revenue type (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:61.125%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.466%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.824%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.824%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.616%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Standard products and services</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">795,319</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">734,140&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">848,153&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Application-specific customer solutions</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">119,196</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">103,407&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">157,937&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">914,515</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">837,547&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Costs to Fulfill a Contract</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Costs to fulfill a contract are included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $10,705,000 and $13,265,000 as of December 31, 2024 and 2023, respectively. The amount of amortization during 2024 related to costs deferred as of December 31, 2023 amounted to $12,512,000</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounts Receivable, Contract Assets, and Contract Liabilities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accounts receivable represent amounts billed and currently due from customers which are reported at their net estimated realizable value. The Company maintains an allowance against its accounts receivable for credit losses. Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing primarily for certain application-specific customer solutions contracts. Contract liabilities consist of deferred revenue and customer deposits which arise when amounts are billed to or collected from customers in advance of revenue recognition.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes changes in the allowance for credit losses (in thousands):</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"><tr><td style="width:1.0%"></td><td style="width:79.341%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.459%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">730&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">500&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(645)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">583&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">459&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(222)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">827</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</span></div><div style="margin-top:8pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:79.398%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.402%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40,787&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,538&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(20,987)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Returned customer deposit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,205)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(608)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31,525&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,998&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(28,108)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(380)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,035</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a practical expedient, the Company has elected not to disclose the aggregate amount of the transaction price allocated to unsatisfied performance obligations for contracts that have an original expected duration of less than one year. The remaining unsatisfied performance obligations for contracts that have an original expected duration of more than one year, primarily related to extended hardware warranties, are not material.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-9<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-15<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-12<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-13<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 606<br> -Publisher FASB<br> -URI https://asc.fasb.org/606/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>46
<FILENAME>R25.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106145104">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Shareholders' Equity<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock', window );">Shareholders&#8217; Equity</a></td>
<td class="text">Shareholders&#8217; Equity<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Preferred Stock</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has 400,000 shares of authorized but unissued $.01 par value preferred stock.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Common Stock</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has 300,000,000 shares of authorized $.002 par value common stock.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Each outstanding share of common stock entitles the record holder to one vote on all matters submitted to a vote of the Company&#8217;s shareholders. Common shareholders are also entitled to dividends when and if declared by the Company&#8217;s Board of Directors.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Repurchases</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this March 2020 program, in addition to repurchases made in prior years, the Company repurchased 1,677,000 shares at a cost of $117,000,000 in 2022, which completed purchases under the March 2020 program. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, the Company's Board of Directors authorized the repurchase of an additional $500,000,000 of the Company's common stock. Under this March 2022 program, the Company repurchased 1,682,000 shares at a cost of $87,314,000 in 2022, 1,723,000 shares at a cost of $79,794,000 in 2023, and 1,711,000 shares at a cost of $67,085,000 in 2024, leaving a remaining balance of $265,807,000 as of December 31, 2024. The 2023 repurchase included $446,000 of buyback Excise Tax in accordance with the Inflation Reduction Act of 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements. The Company is authorized to make repurchases of its common stock through open market purchases, pursuant to Rule 10b5-1 trading plans, or in privately negotiated transactions.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Dividends</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors declared and paid cash dividends of $0.065 per share in the first, second, and third quarters of 2022, $0.070 per share in the fourth quarter of 2022 and in the first, second, and third quarters of 2023, and $0.075 per share in the fourth quarter of 2023 and in the first, second, and third quarters of 2024. The dividend was increased to $0.080 per share in the fourth quarter of 2024. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on such factors as the Board deems relevant, including, among other things, the Company's ability to generate positive cash flow from operations.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquityNoteDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for equity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477968/946-235-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-6<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480237/815-40-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(e)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 10: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/505/tableOfContent<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 16<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-16<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockholdersEquityNoteDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>47
<FILENAME>R26.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094373120">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Stock-Based Compensation</a></td>
<td class="text">Stock-Based Compensation<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Plans</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options, restricted stock units ("RSUs"), and performance restricted stock units ("PRSUs"). In May 2023, the shareholders of the Company approved the Cognex Corporation 2023 Stock Option and Incentive Plan (the &#8220;2023 Plan&#8221;). The 2023 Plan permits awards of stock options (both incentive and non-qualified options), stock appreciation rights, RSUs, and PRSUs. Up to 8,100,000 shares of common stock (subject to adjustment in the event of stock splits and other similar events) may be issued pursuant to awards granted under the 2023 Plan. In connection with the approval of the 2023 Plan, no further awards will be made under the Cognex Corporation 2001 General Stock Option Plan, as amended and restated (the &#8220;2001 Plan&#8221;), and the Cognex Corporation 2007 Stock Option and Incentive Plan, as amended and restated (the &#8220;2007 Plan&#8221;). With the approval of the 2023 Plan, the 10,610,800 shares of common stock subject to awards granted under the 2001 Plan and the 2007 Plan that were outstanding as of May 3, 2023 may become eligible for issuance under the 2023 Plan if such awards are forfeited, cancelled, or otherwise terminated (other than by exercise) (the &#8220;Carryover Shares&#8221;). As of December 31, 2024, forfeitures, cancellations, and other terminations from the 2001 Plan and the 2007 Plan have resulted in 1,142,995 Carryover Shares, raising the authorized total shares that may be issued under the 2023 Plan to 9,242,995.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, the Company had 6,458,000 shares available for issuance under its stock plans. Stock options are granted with an exercise price equal to the market value of the Company&#8217;s common stock at the grant date and generally vest over <span style="-sec-ix-hidden:f-1020">four</span> or five years based on continuous employment and expire ten years from the grant date. RSUs generally vest upon <span style="-sec-ix-hidden:f-1023">three</span> or four years of continuous employment or incrementally over such <span style="-sec-ix-hidden:f-1025">three</span> or <span style="-sec-ix-hidden:f-1026">four</span> year periods. PRSUs generally vest upon <span style="-sec-ix-hidden:f-1027">three</span> years of continuous employment and achievement of performance criteria established by the Compensation Committee of our Board of Directors on or prior to the grant date. Participants are not entitled to dividends on stock options, RSUs, or PRSUs.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Options</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s stock option activity:</span></div><div style="margin-bottom:5pt;margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:43.409%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.226%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Remaining<br/>Contractual<br/>Term<br/>(in&#160;years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Aggregate<br/>Intrinsic Value<br/>(in&#160;thousands)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,008&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">50.87&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,641&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39.72&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(242)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24.83&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(864)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">53.18&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9,543</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">49.40</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.62</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,898</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercisable as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,659</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">49.75</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3.90</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,814</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options vested or expected to vest as of&#160;</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;December 31, 2024 (1)</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9,019</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">49.62</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.45</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,875</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;padding-left:36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) In addition to the vested options, the Company expects a portion of the unvested options to vest at some point in the future. Options expected to vest are calculated by applying an estimated forfeiture rate to the unvested options.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total cash received as a result of stock option exercises was $6,011,000 in 2024, $11,104,000 in 2023, and $12,267,000 in 2022. In connection with these exercises, the tax benefit (expense) realized by the Company was $(4,021,000) in 2024, $(4,691,000) in 2023, and $2,548,000 in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:54.847%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.996%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.143%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.146%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Risk-free rate</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.3</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.0&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.2&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.76</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.61&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.44&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">39</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">37&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected term (in years)</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.7</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.5</span></td></tr></table></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Risk-free rate</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The risk-free rate was based on a treasury instrument whose term was consistent with the contractual term of the option.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected dividend yield</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The current dividend yield was calculated by annualizing the cash dividend declared by the Company&#8217;s Board of Directors and dividing that result by the closing stock price on the grant date.&#160;</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected volatility</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The expected volatility was based on a combination of historical volatility of&#160;the Company&#8217;s&#160;common stock over the contractual term of the option and implied volatility for traded options of the Company&#8217;s stock.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected term</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The expected term was derived from the binomial lattice model from the impact of events that trigger exercises over time.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted-average grant-date fair value of stock options granted was $14.89 in 2024, $17.76 in 2023, and $21.39 in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total intrinsic value of stock options exercised was $4,626,000 in 2024, $6,227,000 in 2023, and $8,424,000 in 2022. The total fair value of stock options vested was $29,309,000 in 2024, $34,751,000 in 2023, and $41,497,000 in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Restricted Stock Units (RSUs)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's RSUs activity:</span></div><div style="margin-top:10pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:62.496%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.666%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.808%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average<br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,429&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">54.22&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">844&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">38.90&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(429)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64.07&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(154)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">46.61&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,690</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">44.75</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of RSUs was determined based on the observable market price of the Company's stock on the grant date less the present value of expected future dividends. The weighted-average grant-date fair value of RSUs granted was $38.90 in 2024, $46.14 in 2023, and $58.06 in 2022. There were 429,000, 521,000, and 192,000 RSUs that vested in 2024, 2023, and 2022, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tax obligations for vested RSUs are settled by withholding a portion of the shares prior to distribution to the shareholder. The total cash used by the Company to fund the tax payments was $5,017,000 in 2024, $7,836,000 in 2023, and $2,406,000 in 2022. In connection with these vested RSUs, the tax benefit (expense) realized by the Company was $(7,401,000) in 2024, $(3,229,000) in 2023, and $(1,049,000) in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Performance Restricted Stock Units (PRSUs)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's PRSUs activity:</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.420%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.838%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average <br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">79&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">52.23&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39.05&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">134</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">46.82</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of PRSUs was calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. The weighted average grant-date fair value of PRSUs granted was $39.05 in 2024, $44.86 in 2023, and $62.49 in 2022. No PRSUs vested in 2024, 2023, and 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock-Based Compensation Expense</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company stratifies its employee population into three groups: one consisting of the CEO, another consisting of senior management, and another consisting of all other employees. The Company currently applies an estimated annual forfeiture rate of 0% to all stock-based awards for the CEO, 8% to all stock-based awards for senior management, and 13% for all other employees. Each year during the first quarter, the Company revises its forfeiture rate based on updated estimates of employee turnover. This resulted in a decrease to compensation expense of $1,832,000 in 2024, a decrease to compensation expense of $234,000 in 2023, and an increase to compensation expense of $1,536,000 in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2024, total unrecognized compensation expense, net of estimated forfeitures, related to non-vested stock-based awards, including stock options, RSUs, and PRSUs, was $51,147,000, which is expected to be recognized over a weighted-average period of 1.5 years.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total stock-based compensation expense and the related income tax benefit recognized was $52,443,000 and $8,387,000, respectively, in 2024, $54,768,000 and $8,442,000, respectively, in 2023, and $54,505,000 and $9,540,000, respectively, in 2022. No compensation expense was capitalized in 2024, 2023, or 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the stock-based compensation expense by caption for each period presented on the Consolidated Statements of Operations (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:51.176%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.320%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,966</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,979&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,016&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">14,628</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,480&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,693&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">35,849</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,309&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,796&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">52,443</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">54,768&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">54,505&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>48
<FILENAME>R27.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106094560">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Employee Savings Plan<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock', window );">Employee Savings Plan</a></td>
<td class="text">Employee Savings Plan<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the Company's Employee Savings Plan, a defined contribution plan, all U.S. employees who have attained age 21 may contribute up to 100% of their pay on a pre-tax basis under the Company's Employee Savings Plan, subject to the annual dollar limitations established by the Internal Revenue Service ("IRS"). The Company matches 50% of the first 6% of pay an employee contributes. Company contributions vest 25%, 50%, 75%, and 100% after one, two, three, and four years of continuous employment with the Company, respectively. Company contributions totaled $3,535,000 in 2024, $3,392,000 in 2023, and $3,284,000 in 2022. Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for retirement benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480794/715-70-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480482/715-20-55-17<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (q)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/715/tableOfContent<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (o)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (p)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480506/715-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480126/715-20-S99-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480266/715-60-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>49
<FILENAME>R28.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094366224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Taxes</a></td>
<td class="text">Income Taxes<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Domestic income before taxes was $35,253,000 in 2024, $16,039,000 in 2023, and $48,546,000 in 2022. Foreign income before taxes was $96,236,000 in 2024, $119,309,000 in 2023, and $202,149,000 in 2022. </span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Income tax expense consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:48.680%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.151%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.151%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.154%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="15" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">28,009</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">29,084&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">48,355&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,524</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,544&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,689&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,795</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,207&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,243&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">45,328</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">41,835&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64,287&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(22,273)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(24,731)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(40,772)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1,324)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,877)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,354)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,587</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,887&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,009&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(20,010)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(19,721)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(29,117)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,318</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,114&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,170&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td></tr></table></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A reconciliation of the U.S. federal statutory corporate tax rate to the Company&#8217;s income tax expense, or effective tax rate, was as follows:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:62.296%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.614%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense at U.S. federal statutory corporate tax rate</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">21</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State income taxes, net of federal benefit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign tax rate differential</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(4)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Taxation on multinational operations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(5)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax reserves</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Limitation on deduction for executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax expense related to employee stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit for audit settlements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense for foreign earnings not indefinitely reinvested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense related to tax return filings</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense related to rate revaluation on state tax assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit related to GILTI adjustments</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax benefit for release of valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(4)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">19</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Tax Reserves</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in gross amounts of unrecognized tax benefits, excluding interest and penalties, were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:81.158%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.642%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2021</span></div></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,812&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(119)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,850&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">505&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,329)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,072)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,647&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(242)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,556&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,877&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,230)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(894)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">25,714&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(39)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">208&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,935&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,751)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,331)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2024</span></div></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">23,736</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s reserve for income taxes, including gross interest and penalties, was $28,733,000 as of December 31, 2024, of which $26,365,000 was classified as a non-current liability and $2,368,000 was classified as an offset to deferred tax assets. The Company's reserve for income taxes, including gross interest and penalties, was $29,053,000 as of December 31, 2023, of which $26,685,000 was classified as a non-current liability and $2,368,000 was classified as an offset to deferred tax assets. The amount of gross interest and penalties included in these balances was $4,997,000 and $3,339,000 as of December&#160;31, 2024 and 2023, respectively. If the Company&#8217;s tax positions were sustained or the statutes of limitations related to certain positions expired, these reserves would be released and income tax expense would be reduced in a future period. As a result of the expiration of certain statutes of limitations, there is a potential that a portion of these reserves could be released, which would decrease income tax expense by approximately $2,000,000 to $4,000,000 over the next twelve months.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has defined its major tax jurisdictions as the United States, Ireland, China, Japan, and Korea and within the United States, Massachusetts. The statutory tax rate is 12.5% in Ireland, 25% in China, 34.6% in Japan, and 21% in Korea, compared to the U.S. federal statutory corporate tax rate of 21%. These differences resulted in a favorable impact to the effective tax rate of 4 percentage points for 2024, 6 percentage points for 2023, and 7 percentage points for 2022. Management has determined that earnings from its legal entities in China will be indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested. In 2024, the Company recorded a non-current deferred tax liability of $1,400,000 with respect to earnings that are not indefinitely reinvested. In 2023, the Company qualified for a tax holiday in China, which is renewed every three years. The tax effect of this benefit on basic and diluted earnings per share for 2024 was not material. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Within the United States, the tax years 2020 through 2023 remain open to examination by the Internal Revenue Service ("IRS") and various state taxing authorities. The tax years 2013 through 2023 remain open to examination by various taxing authorities in foreign jurisdictions in which the Company operates. Management believes the Company is adequately reserved for these audits. The final determination of tax audits could result in favorable or unfavorable changes in our estimates. Any reserves associated with this audit period will not be released until the issue is settled or the audit is concluded. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Interest and penalties included in income tax expense were $2,145,000 in 2024, $1,032,000 in 2023, and $229,000 in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash paid for income taxes totaled $59,849,000 in 2024, $56,618,000 in 2023, and $57,016,000 in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Deferred Tax Assets and Liabilities</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tax effects of temporary differences and attributes that give rise to deferred income tax assets and liabilities as of December 31, 2024 and December 31, 2023 were as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:66.495%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.735%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.737%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Intangible asset in connection with change in tax structure</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">369,474</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">375,360&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Capitalization of R&amp;D expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">35,948</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28,521&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">22,428</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,916&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credit carryforwards</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,186</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,848&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventory and revenue related</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,355</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,897&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Bonuses, commissions, and other compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,949</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,243&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,877</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,840&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign net operating losses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,306</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">339&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,624</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,514&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total deferred tax assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">462,147</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">457,478&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(2,515)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(943)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">459,632</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">456,535&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">GILTI tax basis differences in connection with change in tax structure</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(254,213)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(274,327)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(29,008)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(28,685)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve for unremitted foreign earnings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1,400)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(284,621)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(303,012)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net deferred taxes</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">175,011</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">153,523&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Change in Tax Structure and Global Intangible Low-Taxed Income Tax</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, the Company made changes to its international tax structure due to legislation by the European Union regarding low tax structures that resulted in an intercompany sale of intellectual property. As a result, the Company recorded an associated deferred tax asset of $437,500,000 in Ireland based on the fair value of the intellectual property that is being realized over fifteen years as future tax deductions. From a United States perspective, the sale was disregarded, and any future deductions claimed in Ireland are added back to taxable income as part of Global Intangible Low-Taxed Income ("GILTI") minimum tax. The Company recorded an associated deferred tax liability of $350,000,000, representing the GILTI minimum tax related to the fair value of the intellectual property.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Other Deferred Tax Assets and Liabilities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Beginning in 2022, the Tax Cuts and Jobs Act eliminates the option to deduct research and development expenditures in the period incurred and requires taxpayers to capitalize and amortize such expenditures over five or fifteen years, as applicable, pursuant to Section 174 of the Internal Revenue Code. Accordingly, the Company recorded deferred tax assets resulting from the capitalization of research and development expenditures. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, the Company had foreign net operating loss carryforwards of $1,306,000, state tax credit carryforwards of $7,619,000 that will begin to expire for the 2031 tax return, and foreign tax credit carryforwards of $2,567,000.  As of December 31, 2023, the Company had foreign net operating loss carryforwards of $1,720,000, state tax credit carryforwards of $8,740,000, and foreign tax credit carryforwards of $943,000.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2024, the Company had a valuation allowance for foreign net operation loss carryforwards of $599,000 and a valuation allowance for foreign tax credits of $1,916,000 that were not considered to be realized.  As of December 31, 2023, the Company had a valuation allowance for foreign tax credits of $943,000 that was not considered to be realized. Should these credits be utilized in a future period, the reserve associated with these </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">credits would be reversed in the period when it is determined that the credits can be utilized to offset future income tax liabilities.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While the deferred tax assets, net of valuation allowance, are not assured of realization, management has evaluated the realizability of these deferred tax as sets and has determined that it is more likely than not that these assets will be realized. In reaching this conclusion, we have evaluated certain relevant criteria including the Company&#8217;s historical profitability, current projections of future profitability, and the lives of tax credits, net operating losses, and other carryforwards. Should the Company fail to generate sufficient pre-tax profits in future periods, we may be required to establish valuation allowances against these deferred tax assets, resulting in a charge to current operations in the period of determination.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for income tax.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12C<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12B<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 270<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477891/740-270-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.5.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480990/946-20-50-13<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/740/tableOfContent<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-14<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-21<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 11.C)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482603/740-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>50
<FILENAME>R29.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106252656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Weighted Average Shares<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareTextBlock', window );">Weighted Average Shares</a></td>
<td class="text">Weighted Average Shares<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Weighted-average shares were calculated as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:55.058%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.976%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.976%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.124%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic weighted-average common shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">171,438</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">172,249&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">173,407&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Effect of dilutive stock awards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,173</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,150&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,462&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted weighted-average common and common-equivalent shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">172,611</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">173,399&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">174,869&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock options to purchase 8,496,599, 6,854,092, and 4,715,104 shares of common stock, on a weighted-average basis, were outstanding in 2024, 2023, and 2022, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling 365 and 26,079 that will be settled in shares of common stock to the extent they vest, on a weighted-average basis, were outstanding in 2023 and 2022, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. No restricted stock units were excluded in the calculation of dilutive net income per share in 2024. No PRSUs were excluded in the calculation of dilutive net income per share in 2024, 2023, and 2022 as PRSUs were not anti-dilutive on a weighted-average basis.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for earnings per share.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/260/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<FILENAME>R30.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106135360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment and Geographic Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment and Geographic Information</a></td>
<td class="text">Segment and Geographic Information<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company operates in one segment, machine vision technology. The Company has a single, company-wide management team that administers operations as a whole rather than as discrete operating segments. The Company&#8217;s chief operating decision maker is the chief executive officer, who assesses performance and allocates  resources at the corporate level, as compared to the geography, product line, or end market levels. The Company offers a variety of machine vision products that have similar economic characteristics and are distributed by the same sales channels to the same types of customers.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes information about geographic areas (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:28.665%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.243%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.393%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">United&#160;States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Greater China </span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">306,766</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">217,880</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">164,147</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">225,722</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">914,515</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">56,948</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">15,655</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">14,844</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16,025</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">103,472</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">288,324&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">220,665&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">164,115&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">164,443&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">837,547&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,946&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,005&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,028&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,958&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">112,937&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">343,835&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">234,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">227,447&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">200,165&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">66,928&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,725&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,334&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,370&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,357&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue is presented geographically based on the customer&#8217;s country of domicile. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from a single customer accounted for 10% and 11% of total revenue in 2024 and 2022, respectively. Revenue from this customer was not greater than 10% of total revenue in 2023. Accounts receivable from this customer was 10% of total accounts receivable as of December 31, 2024 and was not greater than 10% of total accounts receivable as of December 31, 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from a second customer accounted for 11% of total revenue in 2022. Revenue from this customer was not greater than 10% of total revenue in 2024 or 2023. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2024 or December 31, 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The measure of segment profit or loss for the Company's single segment is net income. Segment expenses were disaggregated based on the information the chief operating decision maker uses to assess performance and allocate resources considering both quantitative and qualitative factors. The following table summarizes significant segment expenses, which represents the difference between segment revenue and segment net income, (in thousands):</span></div><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:55.332%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.350%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.408%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.350%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.408%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.352%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">914,515</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">837,547&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue (1)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">288,721</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">236,306&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">284,185&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">625,794</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">601,241&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">721,905&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering expenses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and fringe benefits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">79,544</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">78,762&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">76,448&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation (2)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,711</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,446&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,447&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">14,628</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,480&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,693&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation and amortization</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,229</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,056&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,649&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other segment expenses (3)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">37,703</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39,656&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40,896&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total research, development, and engineering expenses</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">139,815</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">139,400&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">141,133&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and fringe benefits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">179,898</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">166,612&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">150,696&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation (2)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">45,565</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,513&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40,716&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">35,849</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,309&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,796&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation and amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16,936</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,759&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,702&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other segment expenses (3)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">92,666</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">88,946&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">75,197&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total selling, general, and administrative expenses</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">370,914</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">339,139&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">312,107&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss (recovery) from fire</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,000)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,779&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,657&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating income</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">115,065</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">130,702&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">246,229&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,531</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(10,039)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,837)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Investment income</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">13,971</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,093&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,715&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other income (expense)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">922</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">592&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(412)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income before income tax expense</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">131,489</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">135,348&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">250,695&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,318</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,114&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,170&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106,171</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">113,234&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">215,525&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) Cost of revenue includes depreciation and amortization expense (including amortization of acquired technologies) of $12,524,000, $7,065,000, and $6,270,000 for 2024, 2023, and 2022, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2)   Incentive compensation includes company bonus and sales commissions.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(3)  Other segment expenses</span><span style="color:#ee2724;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">include outside services, prototyping materials, sales demonstration equipment, travel and entertainment, marketing programs, and rent, among other less significant expenses.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 10: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 34<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-34<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26C<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26B<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-15<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/280/tableOfContent<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 26<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-26<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-21<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<FILENAME>R31.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096169296">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Acquisitions<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsAbstract', window );"><strong>Business Combinations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationDisclosureTextBlock', window );">Business Acquisitions</a></td>
<td class="text">Business Combinations<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Moritex Corporation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 18, 2023, the Company acquired all the outstanding shares of Moritex Corporation ("Moritex"), a global provider of premium optical components based in Japan, for an enterprise value of &#165;40&#160;billion Japanese Yen, or approximately $270&#160;million U.S. Dollars based on the closing date foreign exchange rate. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The cash-free, debt-free enterprise value was adjusted by cash acquired, debt assumed, and final working capital balances to arrive at total consideration to be allocated to assets acquired and liabilities assumed of &#165;44,376,245,000 ($296,138,000 based on the closing date foreign exchange rate), of which &#165;44,227,414,000 ($295,144,000) was paid in cash on the closing date and &#165;148,831,000 ($994,000) was paid during the first quarter of 2024 as a purchase price adjustment based on the closing balance sheet. The Company acquired cash balances totaling $38,088,000 as part of this transaction, to arrive at a net cash outflow of $257,056,000 on the closing date. There was no contingent consideration as part of this transaction. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the fourth quarter of 2024, the Company recorded measurement-period adjustments that increased goodwill by $6,478,000 and are reflected in the final purchase price allocation below. The adjustments consisted primarily of changes to deferred income tax liabilities based on the final push-down accounting for intangible assets to legal-entity jurisdictions, a reduction in customer relationships based on a methodology refinement, and changes to provisional assets and liabilities based on new information obtained within the one-year measurement period that refined initial estimates.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The portfolio of Moritex optical components allows us to expand our served market to include high-end lenses and lighting and provide our customers with a more complete product offering by replacing third-party components with Cognex-manufactured optical components. Moritex also provides the Company with a more substantial presence in Japan, which is an important machine vision market where we believe we can increase our share through a stronger local presence.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This transaction was accounted for as a business combination. Identifiable assets acquired and liabilities assumed were recorded at their estimated fair values as of the acquisition date, which were valued using level 3 inputs for intangible assets, inventories, and property, plant and equipment. Pro-forma information, as well as revenue and earnings from the date of the acquisition, are not presented because they are not material to the Company&#8217;s consolidated financial statements. </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Transaction costs were approximately $5,800,000 and were expensed as incurred as part of SG&amp;A expenses on the Consolidated Statement of Operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The purchase price was allocated as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:79.016%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.784%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">38,088&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,543&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,882&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,805&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">151,525&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64,800&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32,300&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">850&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,162&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,363&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6,639)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(14,718)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(22,665)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve for income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,864)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,294)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;Purchase price</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">296,138</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The customer relationships, completed technologies, and trademarks are included in "Intangible assets" on the Consolidated Balance </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sheet.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The customer relationships are being amortized to SG&amp;A expenses over fifteen years, the completed technologies are being amortized to cost of revenue over nine years, and the trademarks are being amortized to SG&amp;A expenses over three years. None of the acquired goodwill is deductible for tax purposes.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-5<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/805/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>53
<FILENAME>R32.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096372960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Loss from Fire<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesDisclosureAbstract', window );"><strong>Other Liabilities Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CatastropheTextBlock', window );">Loss from Fire</a></td>
<td class="text">Loss (Recovery) from Fire<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 7, 2022, the Company&#8217;s primary contract manufacturer experienced a fire at its plant in Indonesia, destroying a significant amount of Cognex inventories.</span></div>In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses of inventories and other assets of $48,339,000, partially offset by insurance proceeds received from the Company's insurance carrier of $27,560,000. In 2023, the Company recorded recoveries related to the fire of $8,000,000, consisting of $2,500,000 for proceeds received from the Company's insurance carrier in relation to a business interruption claim and $5,500,000 for proceeds received as part of a financial settlement for lost inventory and other losses incurred as a result of the fire.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CatastropheTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Catastrophe</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CatastropheTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherLiabilitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<FILENAME>R33.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094353312">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Events<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsAbstract', window );"><strong>Subsequent Events [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events</a></td>
<td class="text">Subsequent Events<div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 12, 2025, the Company's Board of Directors declared a cash dividend of $0.080 per share. The dividend is payable March 13, 2025 to all shareholders of record as of the close of business on February 27, 2025.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/855/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>R34.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106151904">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule II - Valuation and Qualifying Accounts<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ValuationAndQualifyingAccountsAbstract', window );"><strong>SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock', window );">Schedule II - Valuation and Qualifying Accounts</a></td>
<td class="text">SCHEDULE II &#8211; VALUATION AND QUALIFYING ACCOUNTS<div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"></td><td style="width:30.711%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.536%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.472%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.536%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.472%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.536%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.472%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.536%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.914%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.581%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.472%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.581%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.481%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Additions</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Description</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Balance&#160;at<br/>Beginning<br/>of Period</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Charged&#160;to<br/>Costs and<br/>Expenses</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Charged<br/>to Other<br/>Accounts</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Deductions</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Other</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Balance&#160;at<br/>End of<br/>Period</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="33" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(In thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Allowance for Credit Losses on Accounts Receivable:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">583&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">459&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(222)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">827&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">730&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">500&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(645)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">583&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">776&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">191&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(237)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">730&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve&#160;for Sales Returns:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,018&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">500&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,518&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,518&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">500&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,018&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,518&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,518&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred Tax Valuation Allowance:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">943&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,572&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,515&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,661&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6,718)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">943&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,188&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,234&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,889&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6,650)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,661&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:4pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt">Specific write-offs</span></div><div style="padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt">Foreign currency exchange rate changes</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Regulation S-X (SX)<br> -Number 210<br> -Section 12<br> -Subsection 09<br> -Publisher SEC<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ValuationAndQualifyingAccountsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ValuationAndQualifyingAccountsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<FILENAME>R35.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094270304">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pay vs Performance Disclosure - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_PvpTable', window );"><strong>Pay vs Performance Disclosure</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">$ 106,171<span></span>
</td>
<td class="nump">$ 113,234<span></span>
</td>
<td class="nump">$ 215,525<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_PvpTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection v<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_PvpTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>57
<FILENAME>R36.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609101371904">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Arrangements<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2024 </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrAdoptedFlag', window );">Non-Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrTrmntdFlag', window );">Non-Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_IndividualAxis=cgnx_JoergKuechenMember', window );">Joerg Kuechen [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_MtrlTermsOfTrdArrTextBlock', window );">Material Terms of Trading Arrangement</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">During the quarter ended December 31, 2024, the following Section 16 officer adopted a Rule 10b5-1 trading arrangement, as defined in Item 408 of Regulation S-K, that is intended to satisfy the affirmative defense conditions of Exchange Act Rule 10b5-1(c):</span></div><div style="text-align:justify"><span><br/></span></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;padding-left:14.5pt">On December 10, 2024, Joerg Kuechen, the Chief Technology Officer of the Company, adopted a trading arrangement for the sale of shares of the Company&#8217;s common stock (a &#8220;Rule 10b5-1 Trading Plan&#8221;). Mr. Kuechen&#8217;s Rule 10b5-1 Trading Plan, which has a term ending on December 10, 2025, provides for the exercise of vested stock options to acquire up to 265,732 shares of common stock and the sale of up to 277,342 shares of common stock pursuant to the terms of such Rule 10b5-1 Trading Plan. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">During the quarter ended December 31, 2024, no 10b5-1 trading arrangements were modified or terminated, and no director or officer of the Company adopted or terminated a &#8220;non-Rule 10b5-1 trading arrangement,&#8221; as defined in Item 408 of Regulation S-K.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrIndName', window );">Name</a></td>
<td class="text">Joerg Kuechen<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrIndTitle', window );">Title</a></td>
<td class="text">Chief Technology Officer<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrAdoptedFlag', window );">Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrAdoptionDate', window );">Adoption Date</a></td>
<td class="text">December 10, 2024<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrDuration', window );">Arrangement Duration</a></td>
<td class="text">360 days<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember', window );">Joerg Kuechen, Rule Trading Arrangement, Common Stock Purchase [Member] | Joerg Kuechen [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrSecuritiesAggAvailAmt', window );">Aggregate Available</a></td>
<td class="nump">265,732<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember', window );">Joerg Kuechen, Rule Trading Arrangement, Common Stock Sale [Member] | Joerg Kuechen [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrSecuritiesAggAvailAmt', window );">Aggregate Available</a></td>
<td class="nump">277,342<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_MtrlTermsOfTrdArrTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_MtrlTermsOfTrdArrTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrByIndTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrByIndTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TrdArrAdoptionDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TrdArrAdoptionDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TrdArrDuration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph C<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TrdArrDuration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TrdArrIndName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TrdArrIndName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TrdArrIndTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TrdArrIndTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TrdArrSecuritiesAggAvailAmt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TrdArrSecuritiesAggAvailAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_IndividualAxis=cgnx_JoergKuechenMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_IndividualAxis=cgnx_JoergKuechenMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>58
<FILENAME>R37.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097604352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cybersecurity Risk Management and Strategy Disclosure<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems', window );"><strong>Cybersecurity Risk Management, Strategy, and Governance [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock', window );">Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of our overall &#8220;Enterprise Risk Management&#8221; program, the Company has implemented a cybersecurity risk management program that is informed by recognized industry standards and frameworks. Our cybersecurity risk </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">management program includes a number of components, including information security program assessments, penetration testing, and threat simulation exercises that are conducted periodically by both internal and external resources, as well as continuous monitoring of critical risks from cybersecurity threats using automated tools. During onboarding and periodically thereafter, we conduct trainings for the Company&#8217;s employees and contractors about cybersecurity risks, including sending test phishing emails for training purposes to all users of the Company&#8217;s email system. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of our cybersecurity risk management program, we maintain processes to assess and review the cybersecurity practices of third-party vendors and service providers, including utilization of software to evaluate, assess, and monitor cybersecurity risks posed by third parties that provide critical services or handle confidential information. Additionally, prior to engaging a critical third-party vendor or service provider, and periodically thereafter, we conduct security audits of such third parties, and, as appropriate, include security requirements in contracts. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We, like other companies in our industry, face a number of cybersecurity risks in connection with our business. Although such risks have not materially affected us, including our business strategy, results of operations, or financial condition, to date, we have, from time to time, experienced threats and security incidents related to our data and systems, including denial of service and phishing attacks. For more information about the cybersecurity risks we face, see the risk factor entitled &#8220;Information security breaches may adversely affect our business&#8221; in Item 1A- Risk Factors.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementProcessesIntegratedFlag', window );">Cybersecurity Risk Management Processes Integrated [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock', window );">Cybersecurity Risk Management Processes Integrated [Text Block]</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of our overall &#8220;Enterprise Risk Management&#8221; program, the Company has implemented a cybersecurity risk management program that is informed by recognized industry standards and frameworks. Our cybersecurity risk </span></div>management program includes a number of components, including information security program assessments, penetration testing, and threat simulation exercises that are conducted periodically by both internal and external resources, as well as continuous monitoring of critical risks from cybersecurity threats using automated tools. During onboarding and periodically thereafter, we conduct trainings for the Company&#8217;s employees and contractors about cybersecurity risks, including sending test phishing emails for training purposes to all users of the Company&#8217;s email system.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementThirdPartyEngagedFlag', window );">Cybersecurity Risk Management Third Party Engaged [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag', window );">Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag', window );">Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock', window );">Cybersecurity Risk Board of Directors Oversight [Text Block]</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our cybersecurity risk management program and related operations and processes are managed by our Information Security team (the &#8220;IS Team&#8221;), which is led by the Senior Director of Information Security. The Senior Director of Information Security role is currently held by an individual who has over fifteen years of experience managing information security programs. The IS Team is responsible for assessing risks from cybersecurity threats, including their potential business impact and likelihood of occurrence, as well as implementing risk mitigations and remediations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The IS Team provides reports on cybersecurity risk management processes to the Chief Financial Officer and other leaders of the Company on a quarterly basis, or as potentially critical risks from cybersecurity threats or incidents arise. </span></div>The IS Team provides reports on a semi-annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter. The Audit Committee periodically reports on cybersecurity risk management to the full Board of Directors. The Board of Directors, as a whole and through its committees, has responsibility for the oversight of risk management.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock', window );">Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]</a></td>
<td class="text">The IS Team provides reports on a semi-annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter. The Audit Committee periodically reports on cybersecurity risk management to the full Board of Directors. The Board of Directors, as a whole and through its committees, has responsibility for the oversight of risk management.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock', window );">Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our cybersecurity risk management program and related operations and processes are managed by our Information Security team (the &#8220;IS Team&#8221;), which is led by the Senior Director of Information Security. The Senior Director of Information Security role is currently held by an individual who has over fifteen years of experience managing information security programs. The IS Team is responsible for assessing risks from cybersecurity threats, including their potential business impact and likelihood of occurrence, as well as implementing risk mitigations and remediations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The IS Team provides reports on cybersecurity risk management processes to the Chief Financial Officer and other leaders of the Company on a quarterly basis, or as potentially critical risks from cybersecurity threats or incidents arise. </span></div>The IS Team provides reports on a semi-annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter. The Audit Committee periodically reports on cybersecurity risk management to the full Board of Directors. The Board of Directors, as a whole and through its committees, has responsibility for the oversight of risk management.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskRoleOfManagementTextBlock', window );">Cybersecurity Risk Role of Management [Text Block]</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our cybersecurity risk management program and related operations and processes are managed by our Information Security team (the &#8220;IS Team&#8221;), which is led by the Senior Director of Information Security. The Senior Director of Information Security role is currently held by an individual who has over fifteen years of experience managing information security programs. The IS Team is responsible for assessing risks from cybersecurity threats, including their potential business impact and likelihood of occurrence, as well as implementing risk mitigations and remediations.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag', window );">Cybersecurity Risk Management Positions or Committees Responsible [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock', window );">Cybersecurity Risk Management Positions or Committees Responsible [Text Block]</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The IS Team provides reports on cybersecurity risk management processes to the Chief Financial Officer and other leaders of the Company on a quarterly basis, or as potentially critical risks from cybersecurity threats or incidents arise. </span></div>The IS Team provides reports on a semi-annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock', window );">Cybersecurity Risk Management Expertise of Management Responsible [Text Block]</a></td>
<td class="text">The Senior Director of Information Security role is currently held by an individual who has over fifteen years of experience managing information security programs.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock', window );">Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]</a></td>
<td class="text">The IS Team is responsible for assessing risks from cybersecurity threats, including their potential business impact and likelihood of occurrence, as well as implementing risk mitigations and remediations.<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The IS Team provides reports on cybersecurity risk management processes to the Chief Financial Officer and other leaders of the Company on a quarterly basis, or as potentially critical risks from cybersecurity threats or incidents arise. </span></div>The IS Team provides reports on a semi-annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter. The Audit Committee periodically reports on cybersecurity risk management to the full Board of Directors. The Board of Directors, as a whole and through its committees, has responsibility for the oversight of risk management.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag', window );">Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]</a></td>
<td class="text">true<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph iii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph iii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementProcessesIntegratedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementProcessesIntegratedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph i<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskManagementThirdPartyEngagedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph ii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph ii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskManagementThirdPartyEngagedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 2<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 1<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph ii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br> -Subparagraph ii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskRoleOfManagementTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection c<br> -Paragraph 2<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection c<br> -Paragraph 2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskRoleOfManagementTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Section 106<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph iii<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Section 16K<br> -Subsection b<br> -Paragraph 1<br> -Subparagraph iii<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cyd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>i:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<FILENAME>R38.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097813120">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_NatureOfOperationsPolicyTextBlock', window );">Nature of Operations</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Nature of Operations</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation ("the Company" or "Cognex") is a leading global provider of machine vision products and solutions that improve efficiency and quality and address some of the most critical manufacturing and distribution challenges.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates in the Preparation of Financial Statements</a></td>
<td class="text"><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Use of Estimates in the Preparation of Financial Statements</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America (U.S.&#160;GAAP) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and the disclosure of contingent liabilities as of the balance sheet date, and the reported amounts of revenues and expenses during the year. Actual results could differ from those estimates. Significant estimates and judgments include those related to revenue recognition and income taxes.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConsolidationPolicyTextBlock', window );">Basis of Consolidation</a></td>
<td class="text"><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Basis of Consolidation</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The consolidated financial statements include the accounts of Cognex Corporation and its subsidiaries, all of which are wholly owned. All intercompany accounts and transactions have been eliminated.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign Currency</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Foreign Currency Translation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements of the Company&#8217;s foreign subsidiaries, where the local currency is the functional currency, are translated using exchange rates in effect at the end of the year for assets and liabilities and average exchange rates during the year for results of operations. The resulting foreign currency translation adjustment, net of tax, is included in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Fair Value Measurements</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Fair Value Measurements</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company applies a three-level valuation hierarchy for fair value measurements. The categorization of assets and liabilities within the valuation hierarchy is based on the lowest level of input that is significant to the measurement of fair value. Level&#160;1 inputs to the valuation methodology utilize unadjusted quoted market prices in active markets for identical assets and liabilities. Level 2 inputs to the valuation methodology are other observable inputs, including quoted market prices for similar assets and liabilities, quoted prices for identical and similar assets and liabilities in markets that are not active, or other inputs that are observable or can be corroborated by observable market data. Level 3 inputs to the valuation methodology are unobservable inputs based on management&#8217;s best estimate of the inputs that market participants would use in pricing the asset or liability at the measurement date, including assumptions about risk. A change to the level of an asset or liability within the fair value hierarchy is determined at the end of a reporting period.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash, Cash Equivalents, and Investments</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Cash, Cash Equivalents, and Investments</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#8217;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2024, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#8217; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentPolicyTextBlock', window );">Cash, Cash Equivalents, and Investments</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Cash, Cash Equivalents, and Investments</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#8217;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2024, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#8217; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TradeAndOtherAccountsReceivablePolicy', window );">Accounts Receivable</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounts Receivable</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company extends credit with various payment terms to customers based on an evaluation of their financial condition. Accounts that are outstanding longer than the payment terms are considered to be past due. The Company establishes an allowance against accounts receivable for credit losses when it determines receivables are at risk for collection based on the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, and general economic and industry conditions, as well as various other factors. Receivables are written off against this allowance in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a recovery of the credit loss. Credit losses and recoveries related to accounts receivable are included in "Selling, general, and administrative expenses" on the Consolidated Statements of Operations.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventories</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Inventories</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost and net realizable value. Cost is determined using standard costs, which approximates actual costs under the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Purchase price variances are incurred when actual costs are different than standard costs due to favorable or unfavorable market prices. Management applies judgment to recognize purchase price variances in the same period that the associated standard costs of the finished goods that consume these components are sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s inventory is subject to technological change or obsolescence. The Company reviews inventory quantities on hand and estimates excess and obsolescence exposures based on assumptions about future demand, product transitions, general economic and industry conditions, and other circumstances, and records reserves to reduce the carrying value of inventories to their net realizable value. If actual future demand is less than estimated, additional inventory write-downs would be required.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company generally disposes of obsolete inventory upon determination of obsolescence. The Company does not dispose of excess inventory immediately, due to the possibility that some of this inventory could be sold to customers as a result of differences between actual and forecasted demand. When inventory has been written down below cost, such reduced amount is considered the new cost basis for subsequent accounting purposes. As a result, the Company could recognize a higher-than-normal gross margin if the reserved inventory were subsequently sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired inventories are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of inventories above the acquired company&#8217;s pre-acquisition carrying value, which results in a lower-than-normal gross margin when these acquired inventories are sold.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property, Plant, and Equipment</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Property, Plant, and Equipment</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment are stated at cost and depreciated using the straight-line method over the assets&#8217; estimated useful lives. Buildings&#8217; original useful lives are 39 years, building improvements&#8217; useful lives range from <span style="-sec-ix-hidden:f-435">five</span> to ten years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from <span style="-sec-ix-hidden:f-437">two</span> to ten years. Land that is leased or granted, as well as leasehold improvements, are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases. Maintenance and repairs are expensed when incurred; additions and improvements are capitalized. Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired property, plant, and equipment are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of property, plant, and equipment above the acquired company&#8217;s pre-acquisition carrying value, which results in a higher depreciation expense over the estimated lives of the assets.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InternalUseSoftwarePolicy', window );">Internal-use Software</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Internal-use Software</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Internal-use software is software acquired, internally developed, or modified solely to meet the Company's internal needs, and during the software's development no substantive plan exists to sell the software. The accounting treatment for computer software developed for internal use depends on the nature of activities performed at each stage of development. The preliminary project stage includes conceptual formulation of design alternatives, determination of system requirements, vendor demonstrations, and final selection of vendors, and during this stage costs are expensed as incurred. The application development stage includes software configuration, coding, hardware installation, and testing. During this stage, certain costs are capitalized, including external direct costs of materials and services, as well as payroll and payroll-related costs for employees who are directly associated with the project, while certain costs are expensed as incurred, including training and data conversion costs. The post-implementation stage includes support and maintenance, and during this stage costs are expensed as incurred.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Capitalization begins when both the preliminary project stage is completed and management commits to funding the project. Capitalization ceases at the point the project is substantially complete and ready for its intended use, that is, after all substantial testing is completed. Costs of specified upgrades and enhancements to internal-use software are capitalized if it is probable that those expenditures result in additional functionality. Capitalized costs are amortized on a straight-line basis over the estimated useful life.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Leases</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At inception of a contract, the Company determines whether that contract is or contains a lease by assessing whether there is an identified asset and whether the contract conveys the right to control the use of the identified asset for a period of time in exchange for consideration. The Company has control of the asset if it has the right to direct the use of the asset and obtains substantially all of the economic benefits from the use of the asset throughout the period of use.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a practical expedient, the Company does not recognize a lease asset or lease liability for leases with a lease term of twelve months or less. In the determination of the lease term, the Company considers the existence of extension or termination options and the probability of those options being exercised.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease contracts may include fixed lease components and non-lease components, such as common area maintenance and utilities for property leases. As a practical expedient, the Company accounts for the non-lease components together with the lease components as a single lease component for all of its leases.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: (1) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; (2) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; (3) the lease term is for the major part of the remaining economic life of the underlying asset (the Company considers a major part to be 75% or more of the remaining economic life of the underlying asset); (4) the present value of the sum of the lease payments and any residual value guaranteed by the Company equals or exceeds substantially all of the fair value of the underlying asset (the Company considers substantially all the fair value to be 90% or more of the fair value of the underlying asset amount); or (5) the underlying asset is of such a specialized nature that it is expected to have no alternative use to the lessor at the end of the lease term. When none of the criteria above are met, the Company classifies the lease as an operating lease.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On the lease commencement date, the Company records a lease asset and lease liability on the balance sheet. The lease asset consists of: (1) the amount of the initial lease liability; (2) any lease payments made to the lessor at or before the lease commencement date, minus any lease incentives received; and (3) any initial direct cost incurred by the Company. Initial direct costs are incremental costs of a lease that would not have been incurred if the lease had not been obtained and are capitalized as part of the lease asset. The lease liability equals the present value of the future cash payments discounted using the Company's incremental borrowing rate. The Company&#8217;s incremental borrowing rate is the rate of interest that the Company would have to pay to borrow an amount equal to the lease payments over a similar term which was estimated using the Secured Overnight Financing Rate (SOFR) plus a 2% credit risk spread.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating lease expense equals the total cash payments recognized on a straight-line basis over the lease term. The amortization of the lease asset is calculated as the straight-line lease expense less the accretion of the interest on the lease liability each period. The lease liability is reduced by the cash payment less the interest each period.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy', window );">Goodwill</a></td>
<td class="text"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Goodwill</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill is stated at cost. The Company evaluates the potential impairment of goodwill annually each fourth quarter </span></div>and whenever events or circumstances indicate the carrying value of the goodwill may not be recoverable. The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary. Factors that management considers in this assessment include general economic and industry conditions, overall financial performance (both current and projected), changes in strategy, changes in the composition or carrying amount of net assets, and market capitalization. If this qualitative assessment indicates that it is more likely than not that the fair value of a reporting unit is less than its carrying value, the Company proceeds to perform a quantitative impairment test. Under this quantitative analysis, the fair value of the reporting unit is compared with its carrying value, including goodwill. If the carrying value exceeds the fair value of the reporting unit, the Company recognizes an impairment charge. The Company estimates the fair value of its reporting unit using the income approach based on a discounted cash flow model. In addition, the Company uses the market approach, which compares the reporting unit to publicly traded companies and transactions involving similar businesses, to support the conclusions based on the income approach.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsFiniteLivedPolicy', window );">Intangible Assets</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Intangible Assets</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets are stated at cost and amortized over the assets&#8217; estimated useful lives. Intangible assets are either amortized in relation to the relative cash flows anticipated from the intangible asset or using the straight-line method, depending on facts and circumstances. The useful lives of customer relationships range from <span style="-sec-ix-hidden:f-443">five</span> to fifteen years, completed technologies from <span style="-sec-ix-hidden:f-445">five</span> to nine years, non-compete agreements from <span style="-sec-ix-hidden:f-447">six</span> to seven years, and trademarks for three years. In-process technology is an indefinite-lived intangible asset until the technology is completed, at which point it is amortized over its estimated useful life. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company evaluates the potential impairment of intangible assets whenever events or circumstances indicate the carrying value of the assets may not be recoverable. For finite-lived intangible assets that are subject to amortization, the Company follows a two-step process for impairment testing. In step one, known as the recoverability test, the carrying value of the asset is compared to the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the asset. If the sum of the undiscounted future cash flows is less than the carrying value, the asset is not recoverable and step two is performed. In step two, the impairment charge is measured as the amount by which the carrying value of the asset exceeds its fair value.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StandardProductWarrantyPolicy', window );">Warranty Obligations</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Warranty Obligations</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from <span style="-sec-ix-hidden:f-451">one</span> to three years from the time of sale based on the product being purchased and the terms of the customer arrangement. Warranty obligations are evaluated and recorded at the time of sale since it is probable that customers will make claims under warranties related to products that have been sold and the amount of these claims can be reasonably estimated based on historical costs to fulfill claims. Obligations may also be recorded subsequent to the time of sale whenever specific events or circumstances impacting product quality become known that would not have been taken into account using historical data.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesPolicyTextBlock', window );">Contingencies</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Contingencies</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Loss contingencies are accrued if the loss is probable and the amount of the loss can be reasonably estimated. Legal costs associated with potential loss contingencies are expensed as incurred.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativesPolicyTextBlock', window );">Derivative Instruments</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Derivative Instruments</span></div>Derivative instruments are recorded on the Consolidated Balance Sheets at fair value. Changes in the fair value of the Company&#8217;s economic hedges utilizing foreign currency forward contracts are included in "Foreign currency gain (loss)" on the Consolidated Statements of Operations. When the Company is engaged in more than one outstanding derivative contract with the same counterparty and also has a legally enforceable master netting agreement with that counterparty, the &#8220;net&#8221; mark-to-market exposure represents the netting of the positive and negative exposures with that counterparty. The cash flows from derivative instruments are presented in the same category on the Consolidated Statements of Cash Flows as the category for the cash flows from the hedged item. Generally, this accounting policy election results in cash flows related to derivative instruments being classified as an operating activity on the Consolidated Statements of Cash Flows.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRecognitionPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Revenue Recognition</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &#8220;Revenue from Contracts with Customers.&#8221; The core principle of ASC 606 is to recognize revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Company expects to be entitled in exchange for those goods or services. The framework in support of this core principle includes: (1) identifying the contract with the customer; (2) identifying the performance obligations in the contract; (3) determining the transaction price; (4) allocating the transaction price to the performance obligations; and (5) recognizing revenue when (or as) the performance obligations are satisfied. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Contract with the Customer</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies contracts with customers as agreements that create enforceable rights and obligations, which typically take the form of customer contracts or purchase orders. 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.</span></div><div style="margin-top:6pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Performance Obligations in the Contract</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies performance obligations as promises in contracts to transfer distinct goods or services. Standard products and services that the Company regularly sells separately, which customers can benefit from either on their own or with other readily available resources and are distinct within the context of the customer contract, are accounted for as distinct performance obligations. Application-specific customer solutions that are comprised of a combination of products and services are accounted for as one performance obligation to deliver a total solution to the customer. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shipping and handling activities for which the Company is responsible under the terms and conditions of the sale are not accounted for as performance obligations but as fulfillment costs. These activities are required to fulfill the Company&#8217;s promise to transfer the goods and are expensed when revenue is recognized.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company does not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract. If revenue is recognized before immaterial promises have been completed, then the costs related to such immaterial promises are accrued at the time of sale.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Determining the Transaction Price</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company determines the transaction price as the amount of consideration it expects to receive in exchange for transferring promised goods or services to the customer. Amounts collected from customers for sales taxes are excluded from the transaction price. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If a contract includes a variable amount, such as a rebate, then the Company estimates the transaction price using either the expected value or the most likely amount of consideration to be received, depending on the specific facts and circumstances. The Company includes estimated variable consideration in the transaction price only to the extent it is probable that a significant reversal of revenue will not occur when the uncertainty is resolved. The Company updates its estimate of variable consideration at the end of each reporting period to reflect changes in facts and circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company records revenue net of estimated returns. As a practical expedient, the Company estimates the transaction price using the expected value based on its history of return experience using a portfolio approach in which the Company&#8217;s total revenue is reduced by an estimate of total customer returns. Management reasonably expects that the effect of applying a portfolio approach to a group of contracts would not differ materially from considering each contract separately.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Allocating the Transaction Price to the Performance Obligations</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company allocates the transaction price to each performance obligation at contract inception based on a relative stand-alone selling price basis, or the price at which the Company would sell the good or service separately to similar customers in similar circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue when it transfers the promised goods or services to the customer. Revenue for standard products is recognized at the point in time when the customer obtains control of the goods, which is typically upon shipment or delivery when the customer has legal title, physical possession, the risks and rewards of ownership, and an enforceable obligation to pay for the products. Revenue for services, which are not material, is typically recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can reasonably determine that the agreed-upon specifications in the contract have been met and the customer should reasonably accept the performance obligations in the </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#8217;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#8217;s requirements. If the Company can reasonably determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the Company&#8217;s standard products and services, revenue recognition and billing typically occur at the same time. For application-specific customer solutions, however, the agreement with the customer may provide for billing terms which differ from the timing of revenue recognition, resulting in either deferred revenue or unbilled revenue. Credit assessments are performed to determine payment terms, which vary by region, industry, and customer. Prepayment terms result in contract liabilities for customer deposits. When credit is granted to customers, payment is typically due 30 to 90 days from billing. The Company's contracts typically have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on such contracts and to expense sales commissions. The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management exercises judgment when determining the amount of revenue to be recognized each period. Such judgments include, but are not limited to, assessing the customer&#8217;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock', window );">Research and Development</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Research and Development</span></div>Research and development costs primarily include costs related to personnel, prototyping materials and equipment, and outside services. Research and development costs are expensed when incurred until technological feasibility has been established for the product. Thereafter, all software costs may be capitalized until the product is available for general release to customers. The Company determines technological feasibility at the time the product reaches beta in its stage of development. Historically, the time incurred between beta and general release to customers has been short, and therefore, the costs have been insignificant.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingCostsPolicyTextBlock', window );">Advertising Costs</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Advertising Costs</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Advertising costs are expensed as incurred and totaled $1,286,000 in 2024, $1,190,000 in 2023, and $1,257,000 in 2022.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-Based Compensation</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock-Based Compensation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). The Company has reserved a specific number of shares of its authorized but unissued shares for issuance upon the exercise of stock options or the settlement of RSUs. When a stock option is exercised or an RSU is settled, the Company issues new shares from this pool. Management is responsible for determining the appropriate valuation model and estimating the fair value of stock-based awards, and in doing so, considers a number of factors, including information provided by an outside valuation advisor and the observable market price of the Company's common stock on the grant date. The fair value of RSUs is determined based on the observable market price of the Company's common stock on the grant date less the present value of expected future dividends. The fair value of PRSUs where the performance goal includes service and market conditions is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. When determining the grant-date fair value of stock-based awards, management further considers whether an adjustment is required to the observable </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">market price or volatility of the Company's common stock that is used in the valuation as a result of material non-public information if that information is expected to result in a material increase in share price.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes compensation expense related to stock-based awards using the graded attribution method, in which expense is recognized on a straight-line basis over the service period for each separately vesting portion of the stock option or RSU as if the award was, in substance, multiple awards. The amount of compensation expense recognized at the end of the vesting period is based on the number of awards for which the requisite service has been completed. No compensation expense is recognized for awards that are forfeited for which the employee does not render the requisite service. The term &#8220;forfeitures&#8221; is distinct from &#8220;expirations&#8221; and represents only the unvested portion of the surrendered award. The Company applies estimated forfeiture rates to its unvested awards to arrive at the amount of compensation expense that is expected to be recognized over the requisite service period. At the end of each separately vesting portion of an award, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based on the employee&#8217;s service, and an increase or decrease to compensation expense is recorded to true up the final expense.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Taxes</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Taxes</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes a tax position in its financial statements when that tax position, based solely upon its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statutes of limitations. Derecognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The portion of the liability that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statutes of limitations) or are not expected to be paid within one year are classified as a non-current liability. It is the Company&#8217;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Deferred tax assets and liabilities are determined based on the differences between the financial statement and tax bases of assets and liabilities as measured by the enacted tax rates that will be in effect when these differences reverse. Valuation allowances are provided if, based on the weight of available evidence, it is more likely than not that some or all of the deferred tax assets will not be realized. The Company accounts for the impact of Global Intangible Low-Taxed Income (GILTI) tax in deferred taxes. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sales tax in the United States and similar taxes in other jurisdictions that are collected from customers and remitted to government authorities are presented on a gross basis (i.e., a receivable from the customer with a corresponding payable to the government). Amounts collected from customers and retained by the Company during tax holidays are recognized as non-operating income when earned.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Net Income Per Share</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Net Income Per Share</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period. Diluted net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period plus potential dilutive common shares. Dilutive common equivalent shares consist of stock options and restricted stock units and are calculated using the treasury stock method. Common equivalent shares do not qualify as participating securities. In periods where the Company records a net loss, potential common stock equivalents are not included in the calculation of diluted net loss per share as their effect would be anti-dilutive.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock', window );">Comprehensive Income</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Comprehensive Income</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Comprehensive income is defined as the change in equity of a company during a period from transactions and other events and circumstances, excluding transactions resulting from investments by owners and distributions to owners. Accumulated other comprehensive loss, net of tax, consists of foreign currency translation adjustment losses of $67,808,000 and $36,550,000, as of December 31, 2024 and December 31, 2023, respectively; net unrealized losses on available-for-sale investments of $3,698,000 and $7,515,000 as of December 31, 2024 and December 31, 2023, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,000 at each year end.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock', window );">Concentrations of Risk</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Concentrations of Risk</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and accounts receivable. The Company has certain domestic and foreign cash balances that exceed the insured limits set by the Federal Deposit Insurance Corporation (FDIC) in the United States and equivalent regulatory agencies in foreign countries. The Company primarily invests in investment-grade debt securities and has established guidelines relative to credit ratings, diversification, and maturities of its debt securities that maintain liquidity and safety. The Company has historically not experienced any significant realized losses on its debt securities. The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has historically not experienced any significant losses related to the collection of its accounts receivable.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of the Company's products is presently manufactured by a third-party contractor located in Indonesia. This contract manufacturer has agreed to provide the Company with termination notification periods and last-time-buy rights, if and when that may be applicable. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges or other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, delivery costs, and manufacturing delays.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company sources components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components may typically be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of the Company&#8217;s products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsPolicy', window );">Business Acquisitions</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Business Combinations</span></div>The Company determines whether a transaction qualifies as a business combination by applying the definition of a business, which requires the assets acquired and liabilities assumed to be inputs and processes that have the ability to contribute to the creation of outputs. The Company accounts for business combinations under the acquisition method of accounting, which requires the following steps: (1) identifying the acquirer, (2) determining the acquisition date, (3) recognizing and measuring the identifiable assets acquired and the liabilities assumed, and (4) recognizing and measuring goodwill. The Company measures the identifiable assets acquired and liabilities assumed at their estimated fair values as of the acquisition date. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired, on detailed valuations that use information and assumptions provided by management, which consider management&#8217;s best estimates of inputs and assumptions that a market participant would use. Goodwill is recognized as of the acquisition date as the excess of the consideration transferred over the net amount of assets acquired and liabilities assumed. Transaction costs are expensed as incurred.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock', window );">New Accounting Pronouncements</a></td>
<td class="text">New Pronouncements<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all public entities, including public entities with a single reportable segment, that are required to report segment information in accordance with Topic 280, Segment Reporting. The amendments require public business entities to provide in interim and annual periods one or more measures of segment profit or loss used by the chief operating decision maker to allocate resources and assess performance. Additionally, the amendments require disclosure of significant segment expenses and other segment items, as well as incremental qualitative disclosures. The amendments in this ASU are effective for fiscal years beginning after December 15, 2023 and should be applied on a retrospective basis. The Company adopted ASU 2023-07 in 2024. Refer to Note 20 for related disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all entities that are subject to Topic 740, Income Taxes. The amendments require public business entities to disclose specific categories in their rate reconciliation and provide additional information for reconciling items that meet a quantitative threshold. They also require all entities to disclose income taxes paid, net of refund received, disaggregated by federal, state, and foreign taxes and by individual jurisdictions in which income taxes paid, net of refunds received, is equal to or greater than five percent of total income taxes paid. For public business entities, the amendments in this ASU are effective for annual periods beginning after December 15, 2024. The amendments in this ASU should be applied on a prospective basis. Management does not expect ASU 2023-09 to have a material impact on the Company's financial statements and disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2024-03, Income Statement&#8212;Reporting Comprehensive Income&#8212;Expense Disaggregation Disclosures (Subtopic 220-40)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">ASU 2024-03 aims to enhance transparency for users of financial statements by requiring public business entities to disaggregate specific expense categories. ASU 2024-03 mandates disclosures in the notes to financial statements detailing the composition and trends of key expense categories within major income statement captions. These enhanced disclosures are intended to help investors more effectively assess the entity&#8217;s performance, understand its cost structure, and make more accurate forecasts of future cash flows. For public business entities, ASU 2024-03 is effective for annual periods beginning after December 15, 2026, and interim periods within annual reporting periods beginning after December 15, 2027. The adoption will result in disclosure changes only.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Concentrations of Risk.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_NatureOfOperationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Nature of Operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_NatureOfOperationsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingCostsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for advertising cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 35<br> -Topic 720<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483406/720-35-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingCostsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for completed business combinations (purchase method, acquisition method or combination of entities under common control). This accounting policy may include a general discussion of the purchase method or acquisition method of accounting (including for example, the treatment accorded contingent consideration, the identification of assets and liabilities, the purchase price allocation process, how the fair values of acquired assets and liabilities are determined) and the entity's specific application thereof. An entity that acquires another entity in a leveraged buyout transaction generally discloses the accounting policy followed by the acquiring entity in determining the basis used to value its interest in the acquired entity, and the rationale for that accounting policy.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479515/805-10-05-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479515/805-10-05-4<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479515/805-10-05-4<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 05<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479515/805-10-05-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for commitments and contingencies, which may include policies for recognizing and measuring loss and gain contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 450<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477850/954-450-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for comprehensive income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ComprehensiveIncomePolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConsolidationPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 810<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481203/810-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConsolidationPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for its derivative instruments and hedging activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 815<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(n))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-1A<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-1<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerSharePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerSharePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueOfFinancialInstrumentsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for determining the fair value of financial instruments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 825<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueOfFinancialInstrumentsPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/830/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-20<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-19<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-25<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 17<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-17<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-28<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsFiniteLivedPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for finite-lived intangible assets. This accounting policy also might address: (1) the amortization method used; (2) the useful lives of such assets; and (3) how the entity assesses and measures impairment of such assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-30/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478609/920-350-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478609/920-350-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478609/920-350-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsFiniteLivedPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InternalUseSoftwarePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for costs incurred when both (1) the software is acquired, internally developed, or modified solely to meet the entity's internal needs, and (2) during the software's development or modification, no substantive plan exists or is being developed to market the software externally.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-40/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InternalUseSoftwarePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 330<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478411/912-330-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/330/tableOfContent<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483080/330-10-50-4<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 6<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 270<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482989/270-10-45-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for investment in financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(3)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(f)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(f)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(f)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 12<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 19<br> -Subparagraph (2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-19<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeLeasesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for leasing arrangement entered into by lessee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeLeasesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-6<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -SubTopic 360<br> -Topic 958<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477798/958-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for its research and development and computer software activities including the accounting treatment for costs incurred for (1) research and development activities, (2) development of computer software for internal use, (3) computer software to be sold, leased or otherwise marketed as a separate product or as part of a product or process and (4) in-process research and development acquired in a purchase business combination.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/985-20/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/350-40/tableOfContent<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 730<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/730/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueRecognitionPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483426/235-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRecognitionPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.C.Q3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.1.Q5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.3.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.D.2.Q6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/718/tableOfContent<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StandardProductWarrantyPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for standard warranties including the methodology for measuring the liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StandardProductWarrantyPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TradeAndOtherAccountsReceivablePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-6<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 310<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481569/310-20-50-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-15<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11B<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-11B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TradeAndOtherAccountsReceivablePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-9<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-12<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>60
<FILENAME>R39.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106129776">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Fair Value Measurements (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock', window );">Assets and Liabilities Measured at Fair Value on a Recurring Basis</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, 2024 (in thousands):</span></div><div style="margin-top:10pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:53.578%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.524%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Quoted&#160;Prices&#160;in<br/>Active Markets<br/>for Identical<br/>Assets (Level&#160;1)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Significant&#160;Other<br/>Observable<br/>Inputs (Level&#160;2)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unobservable Inputs                       (Level 3)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,242&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">340,916&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">45,634&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">324&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">211&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueDisclosuresAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueDisclosuresAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, 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).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>61
<FILENAME>R40.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094319424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents, and Investments (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAbstract', window );"><strong>Cash and Cash Equivalents [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock', window );">Components of Cash, Cash Equivalents and Investments</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash, cash equivalents, and investments consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.274%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">170,852</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">183,242&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">15,242</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,413&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">186,094</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">202,655&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">55,742</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">124,851&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,487</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">990</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">737</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,551&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current investments</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">59,956</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">129,392&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">285,174</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">183,965&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">43,147</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,577</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,763&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">979&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current investments</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">340,898</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">244,230&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">586,948</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">576,277&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock', window );">Summary of Available-for-Sale Investments</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2024 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:36.583%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.005%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">56,472&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(733)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55,742&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,501&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(14)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,487&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,013&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(23)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">739&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">737&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">288,332&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">408&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,566)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">285,174&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,570&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(425)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,147&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,131&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(554)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,577&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">405,758</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">413</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(5,317)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">400,854</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:36.583%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.005%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">128,150&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,299)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">124,851&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,637&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(86)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,551&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,012&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(22)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">189,326&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">506&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,867)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">183,965&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,654&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">82&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(213)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,773&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,010)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,763&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,037&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(58)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">979&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">383,589</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">588</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,555)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">373,622</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock', window );">Gross Unrealized Losses and Fair Value for Available-for-Sale Investments</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2024 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:34.289%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.885%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.328%"></td><td style="width:0.1%"></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">172,049&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,227)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">87,815&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,071)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">259,864&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(4,298)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">42,149&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(425)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,487&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(14)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,636&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(439)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,024&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(547)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,290&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(10)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(557)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(23)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(23)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">225,222</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(3,199)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">93,582</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(2,118)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">318,804</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(5,317)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2023 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:34.289%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.885%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.328%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,770&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(359)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">226,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,807)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">257,413&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,166)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,725&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(153)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,441&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(60)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23,166&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(213)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,062&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,049)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,252&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(47)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,096)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,968&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(80)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,968&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(80)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">68,557</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1,561)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">233,304</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(8,994)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">301,861</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,555)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock', window );">Realized Gain (Loss) on Investments</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The following table summarizes the Company's gross realized gains and losses on the sale of debt securities (in thousands):</span></div><div style="margin-top:9pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:52.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.823%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.524%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized gains</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">111&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">133&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized losses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(16)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,065)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(315)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net realized gains (losses)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(8)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,954)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(182)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock', window );">Effective Maturity Dates of Available-for-Sale Investments</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the effective maturity dates of the Company&#8217;s available-for-sale investments as of December&#160;31, 2024 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:25.508%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.157%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.864%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.256%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.581%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&lt;1&#160;Year</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1-2&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2-3&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">3-4&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">4-5&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">5-7&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55,742&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,324&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">92,207&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">68,029&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,614&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">340,916&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,487&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,177&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,365&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,605&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">45,634&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">737&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,911&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,296&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,982&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,388&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">59,956</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">77,412</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">113,572</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">81,930</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">64,596</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,388</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">400,854</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Components of cash cash equivalents and investments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of maturities of an entity's investments as well as any other information pertinent to the investments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of realized gains and losses on investments reported in the statement of income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RealizedGainLossOnInvestmentsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation of available-for-sale securities from cost basis to fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For all investments in an unrealized loss position, including those for which other-than-temporary impairments have not been recognized in earnings (including investments for which a portion of an other-than-temporary impairment has been recognized in other comprehensive income), a tabular disclosure of the aggregate related fair value of investments with unrealized losses and the aggregate amount of unrealized losses (that is, the amount by which amortized cost basis exceeds fair value).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>62
<FILENAME>R41.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609095499264">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Inventories</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:70.935%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.517%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></div></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Raw materials</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">86,917</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">93,201&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,544</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,747&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Finished goods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">65,066</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">63,337&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">157,527</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">162,285&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483489/210-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<FILENAME>R42.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106095472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property, Plant, and Equipment (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Property, Plant and Equipment [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Property, Plant, and Equipment</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:70.935%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.517%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Land</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,711</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,805&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Buildings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">38,878</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,117&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Building improvements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">46,496</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,992&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">21,642</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,611&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer hardware and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">57,791</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55,154&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Manufacturing test equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">45,523</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,182&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Furniture and fixtures</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,468</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,361&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">225,509</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">206,222&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: accumulated depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(127,064)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(100,373)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">98,445</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">105,849&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<FILENAME>R43.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609098229456">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Schedule of lease payments</a></td>
<td class="text"><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future operating lease cash payments are as follows (in thousands):</span></div><div style="margin-top:14pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:82.648%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.728%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.224%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount </span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,534&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,543&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,496&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,820&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,242&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,657&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">93,292</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>65
<FILENAME>R44.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094237056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfGoodwillTextBlock', window );">Changes in the Carrying Value of Goodwill</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the carrying value of goodwill were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:83.380%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.688%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">242,630&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Acquisition of Moritex Corporation (refer to Note 21)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">145,047&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,504&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">393,181&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Moritex Corporation measurement period adjustments (refer to Note 21)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,478&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(14,722)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">384,937</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfGoodwillTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 10: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 11: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1A<br><br>Reference 12: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfGoodwillTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>66
<FILENAME>R45.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106147680">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Amortized Intangible Assets</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:51.176%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.320%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">67,781</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,229)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">57,552</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">58,373</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(25,766)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">32,607</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">810</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(337)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">473</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">340</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(288)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">52</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">127,304</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(36,620)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">90,684</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">75,965&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,352)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">70,613&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,123&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(20,745)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">41,378&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">903&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(50)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">853&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">340&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(232)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">108&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">139,331&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(26,379)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">112,952&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Estimated Amortization Expense Succeeding Fiscal Years</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:81.623%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.445%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,147&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,775&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,850&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,120&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2029</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,120&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">45,672&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">90,684</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<FILENAME>R46.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609095823280">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Expenses (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Payables and Accruals [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Constituents of Accrued Expenses</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accrued expenses consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:64.002%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.908%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.057%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">18,735</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,645&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign retirement obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,445</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,835&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,140</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,244&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and payroll taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,123</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,774&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vacation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,945</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,827&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">28,372</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,049&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">71,760</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72,374&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the warranty obligation were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:81.209%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.591%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,427&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,876&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,928)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,375&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,940&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,078)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,244&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,794&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,883)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,140</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock', window );">Changes in Warranty Obligations</a></td>
<td class="text"><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:81.209%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.591%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,427&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,876&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,928)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,375&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,940&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,078)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,244&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,794&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,883)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,140</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>68
<FILENAME>R47.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106169888">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract', window );"><strong>Derivative Instruments and Hedging Activities Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock', window );">Schedule of Notional Amounts of Outstanding Derivative Positions</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company had the following outstanding forward contracts (in thousands): </span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:47.291%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.765%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.180%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.180%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.354%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Currency</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">USD Equivalent</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">USD Equivalent</span></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="18" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Singapore Dollar</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">40,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">29,457</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39,700&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,136&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Euro</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">26,029</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,302&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chinese Renminbi</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">95,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,990</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">50,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,025&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Mexican Peso</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">220,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,701</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">145,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,505&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Hungarian Forint</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,360,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,951</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,240,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,466&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">British Pound</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,200</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,008</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,345&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,258&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Japanese Yen</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,000,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,750</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">600,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,255&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Swiss Franc</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,200</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,432</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Canadian Dollar</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,390</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,470&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,112&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock', window );">Schedule of Derivative Instruments in Statement of Financial Position, Fair Value</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:15.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.204%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.788%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.350%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.888%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.788%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.358%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Asset Derivatives</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Liability Derivatives</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet  Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet   Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td></tr><tr style="height:24pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="36" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">324</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">151</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">211</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OffsettingAssetsTableTextBlock', window );">Offsetting Assets</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the gross activity for all derivative assets and liabilities which were presented on a net basis on the Consolidated Balance Sheets due to the right of offset with each counterparty (in thousands):</span></div><div style="margin-top:14pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:18.108%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.562%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.814%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.562%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.394%"></td><td style="width:0.1%"></td></tr><tr><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-922"><span style="-sec-ix-hidden:f-923">Asset Derivatives</span></span></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-924"><span style="-sec-ix-hidden:f-925">Liability Derivatives</span></span></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2024</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">324</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">151</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">211</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of assets presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">324</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">151&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of liabilities presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">211</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">106&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock', window );">Derivative Instruments, Gain (Loss)</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:21.920%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:22.800%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.762%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.908%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.911%"></td><td style="width:0.1%"></td></tr><tr style="height:12pt"><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Location in Financial Statements</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="24" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gains (losses) recognized in current operations</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,945</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(10,023)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,823&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OffsettingAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of derivative and other financial assets that are subject to offsetting, including master netting arrangements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483466/210-20-50-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483466/210-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OffsettingAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4E<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4C<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4C<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the location and fair value amounts of derivative instruments (and nonderivative instruments that are designated and qualify as hedging instruments) reported in the statement of financial position.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the notional amounts of outstanding derivative positions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>69
<FILENAME>R48.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106183376">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by geographic area based on the customer's country of domicile (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:61.216%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.630%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.630%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.632%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Americas</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">350,155</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">330,415&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">390,573&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">217,880</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">220,665&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">234,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Greater China</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">164,147</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">164,115&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">227,447&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">182,333</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">122,352&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">153,427&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">914,515</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">837,547&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:1pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by revenue type (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:61.125%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.466%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.824%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.824%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.616%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Standard products and services</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">795,319</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">734,140&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">848,153&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Application-specific customer solutions</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">119,196</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">103,407&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">157,937&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">914,515</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">837,547&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock', window );">Allowance for Credit Loss</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes changes in the allowance for credit losses (in thousands):</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"><tr><td style="width:1.0%"></td><td style="width:79.341%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.459%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">730&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">500&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(645)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">583&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">459&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(222)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">827</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Contract with Customer, Liability</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</span></div><div style="margin-top:8pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:79.398%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.402%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40,787&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,538&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(20,987)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Returned customer deposit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,205)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(608)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31,525&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,998&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(28,108)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(380)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2024</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,035</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allowance for credit loss on financing receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-11B<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>70
<FILENAME>R49.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106165456">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Summary of Stock Option Activity</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s stock option activity:</span></div><div style="margin-bottom:5pt;margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:43.409%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.226%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Remaining<br/>Contractual<br/>Term<br/>(in&#160;years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Aggregate<br/>Intrinsic Value<br/>(in&#160;thousands)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,008&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">50.87&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,641&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39.72&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(242)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24.83&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(864)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">53.18&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9,543</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">49.40</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.62</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,898</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercisable as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,659</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">49.75</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3.90</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,814</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options vested or expected to vest as of&#160;</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;December 31, 2024 (1)</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9,019</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">49.62</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.45</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,875</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;padding-left:36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) In addition to the vested options, the Company expects a portion of the unvested options to vest at some point in the future. Options expected to vest are calculated by applying an estimated forfeiture rate to the unvested options.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total cash received as a result of stock option exercises was $6,011,000 in 2024, $11,104,000 in 2023, and $12,267,000 in 2022. In connection with these exercises, the tax benefit (expense) realized by the Company was $(4,021,000) in 2024, $(4,691,000) in 2023, and $2,548,000 in 2022.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:54.847%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.996%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.143%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.146%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Risk-free rate</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.3</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4.0&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.2&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.76</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.61&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.44&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">39</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">37&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected term (in years)</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.7</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.5</span></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock', window );">Nonvested Restricted Stock Shares Activity</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's RSUs activity:</span></div><div style="margin-top:10pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:62.496%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.666%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.808%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average<br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,429&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">54.22&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">844&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">38.90&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(429)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64.07&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(154)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">46.61&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,690</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">44.75</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock', window );">Schedule of Performance Restricted Stock Units</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Performance Restricted Stock Units (PRSUs)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's PRSUs activity:</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.420%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.838%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average <br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">79&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">52.23&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39.05&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2024</span></div></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">134</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">46.82</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Stock-Based Compensation Expense</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the stock-based compensation expense by caption for each period presented on the Consolidated Statements of Operations (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:51.176%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.320%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,966</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,979&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,016&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">14,628</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,480&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,693&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">35,849</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,309&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,796&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">52,443</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">54,768&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">54,505&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in outstanding nonvested restricted stock shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Subparagraph (c)<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (f)(2)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>71
<FILENAME>R50.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106216400">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Constituents of Provision for Income Taxes</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Income tax expense consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:48.680%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.151%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.151%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.154%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="15" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">28,009</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">29,084&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">48,355&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,524</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,544&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,689&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,795</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,207&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,243&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">45,328</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">41,835&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64,287&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(22,273)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(24,731)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(40,772)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1,324)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,877)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,354)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,587</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,887&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,009&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(20,010)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(19,721)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(29,117)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,318</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,114&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,170&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Reconciliation of the United States Federal Statutory Corporate Tax Rate to the Company's Effective Tax Rate or Income Tax Provision</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A reconciliation of the U.S. federal statutory corporate tax rate to the Company&#8217;s income tax expense, or effective tax rate, was as follows:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:62.296%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.614%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense at U.S. federal statutory corporate tax rate</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">21</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State income taxes, net of federal benefit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign tax rate differential</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(4)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Taxation on multinational operations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(5)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax reserves</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Limitation on deduction for executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax expense related to employee stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit for audit settlements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense for foreign earnings not indefinitely reinvested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense related to tax return filings</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense related to rate revaluation on state tax assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit related to GILTI adjustments</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax benefit for release of valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(4)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">19</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Constituents of Deferred Tax Assets</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tax effects of temporary differences and attributes that give rise to deferred income tax assets and liabilities as of December 31, 2024 and December 31, 2023 were as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:66.495%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.735%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.737%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Intangible asset in connection with change in tax structure</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">369,474</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">375,360&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Capitalization of R&amp;D expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">35,948</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28,521&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">22,428</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,916&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credit carryforwards</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,186</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,848&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventory and revenue related</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,355</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,897&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Bonuses, commissions, and other compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,949</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,243&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,877</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,840&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign net operating losses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,306</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">339&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,624</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,514&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total deferred tax assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">462,147</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">457,478&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(2,515)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(943)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">459,632</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">456,535&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">GILTI tax basis differences in connection with change in tax structure</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(254,213)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(274,327)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(29,008)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(28,685)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve for unremitted foreign earnings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1,400)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(284,621)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(303,012)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net deferred taxes</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">175,011</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">153,523&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock', window );">Schedule of Unrecognized Tax Benefits Roll Forward</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in gross amounts of unrecognized tax benefits, excluding interest and penalties, were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:81.158%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.642%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2021</span></div></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,812&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(119)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,850&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">505&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,329)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,072)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,647&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(242)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,556&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,877&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,230)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(894)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">25,714&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(39)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">208&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,935&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,751)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,331)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2024</span></div></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">23,736</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the change in unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<FILENAME>R51.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609095483856">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Weighted Average Shares (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock', window );">Calculation of Weighted Average Shares</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Weighted-average shares were calculated as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:55.058%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.976%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.976%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.124%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic weighted-average common shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">171,438</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">172,249&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">173,407&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Effect of dilutive stock awards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,173</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,150&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,462&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted weighted-average common and common-equivalent shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">172,611</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">173,399&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">174,869&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 260<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<FILENAME>R52.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094329632">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment and Geographic Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock', window );">Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes information about geographic areas (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:28.665%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.243%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.393%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">United&#160;States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Greater China </span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2024</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">306,766</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">217,880</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">164,147</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">225,722</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">914,515</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">56,948</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">15,655</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">14,844</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16,025</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">103,472</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">288,324&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">220,665&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">164,115&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">164,443&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">837,547&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,946&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,005&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,028&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,958&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">112,937&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">343,835&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">234,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">227,447&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">200,165&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">66,928&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,725&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,334&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,370&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,357&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock', window );">Schedule of Segment Reporting Information, by Segment</a></td>
<td class="text">The following table summarizes significant segment expenses, which represents the difference between segment revenue and segment net income, (in thousands):<div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:55.332%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.350%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.408%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.350%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.408%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.352%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">914,515</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">837,547&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: </span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue (1)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">288,721</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">236,306&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">284,185&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross profit</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">625,794</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">601,241&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">721,905&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering expenses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and fringe benefits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">79,544</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">78,762&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">76,448&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation (2)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,711</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,446&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,447&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">14,628</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,480&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,693&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation and amortization</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,229</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,056&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,649&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other segment expenses (3)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">37,703</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39,656&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40,896&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total research, development, and engineering expenses</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">139,815</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">139,400&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">141,133&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and fringe benefits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">179,898</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">166,612&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">150,696&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation (2)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">45,565</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,513&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40,716&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">35,849</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">36,309&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,796&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation and amortization</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16,936</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,759&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,702&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other segment expenses (3)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">92,666</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">88,946&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">75,197&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total selling, general, and administrative expenses</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">370,914</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">339,139&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">312,107&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss (recovery) from fire</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,000)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,779&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,657&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating income</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">115,065</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">130,702&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">246,229&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,531</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(10,039)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,837)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Investment income</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">13,971</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,093&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,715&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other income (expense)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">922</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">592&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(412)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income before income tax expense</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">131,489</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">135,348&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">250,695&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,318</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,114&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,170&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106,171</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">113,234&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">215,525&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) Cost of revenue includes depreciation and amortization expense (including amortization of acquired technologies) of $12,524,000, $7,065,000, and $6,270,000 for 2024, 2023, and 2022, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2)   Incentive compensation includes company bonus and sales commissions.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(3)  Other segment expenses</span><span style="color:#ee2724;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">include outside services, prototyping materials, sales demonstration equipment, travel and entertainment, marketing programs, and rent, among other less significant expenses.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of information concerning material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-25<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 30<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>74
<FILENAME>R53.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106243520">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Acquisitions - (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsAbstract', window );"><strong>Business Combinations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock', window );">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The purchase price was allocated as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:79.016%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.784%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">38,088&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,543&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,882&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,805&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">151,525&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64,800&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32,300&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">850&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,162&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,363&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6,639)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(14,718)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(22,665)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve for income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,864)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,294)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;Purchase price</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">296,138</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Paragraph 1<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>75
<FILENAME>R54.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097118688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Additional Information (Detail)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum', window );">Effective maturity of investments</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MaximumInvestmentOfCompanyInPartnership', window );">Maximum investment of the company in partnership</a></td>
<td class="nump">5.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember', window );">Building [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">39 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember', window );">Building Improvements [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember', window );">Building Improvements [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">10 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_ComputerHardwareAndSoftwareMember', window );">Computer Hardware and Software [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_ComputerHardwareAndSoftwareMember', window );">Computer Hardware and Software [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">10 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember', window );">Manufacturing Test Equipment [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember', window );">Manufacturing Test Equipment [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Available-for-sale Securities, Debt Maturities, Effective Term, Maximum</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_MaximumInvestmentOfCompanyInPartnership">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum investment of the company in partnership.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_MaximumInvestmentOfCompanyInPartnership</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_ComputerHardwareAndSoftwareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_ComputerHardwareAndSoftwareMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>76
<FILENAME>R55.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096398176">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Intangible Assets (Details)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember', window );">Completed Technologies And Other Intangible Assets [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember', window );">Completed Technologies And Other Intangible Assets [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">9 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember', window );">Customer Relationships [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">5 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember', window );">Customer Relationships [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">15 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete agreements | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">6 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete agreements | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">7 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember', window );">Trademarks</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">3 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>77
<FILENAME>R56.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097599968">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Warranty (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductLiabilityContingencyLineItems', window );"><strong>Product Liability Contingency [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ProductWarrantyPeriod', window );">Product Warranty Period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductLiabilityContingencyLineItems', window );"><strong>Product Liability Contingency [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ProductWarrantyPeriod', window );">Product Warranty Period</a></td>
<td class="text">3 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ProductWarrantyPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Product warranty period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ProductWarrantyPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductLiabilityContingencyLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.Y.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480102/450-20-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-4<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483076/450-20-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductLiabilityContingencyLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<FILENAME>R57.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609224246832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2024</div></th></tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_RevenuePaymentTerms', window );">Revenue, payment terms</a></td>
<td class="text">30 days<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_RevenuePaymentTerms', window );">Revenue, payment terms</a></td>
<td class="text">90 days<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_RevenuePaymentTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue, Payment Terms</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_RevenuePaymentTerms</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>79
<FILENAME>R58.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094314000">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Advertising Costs (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingExpense', window );">Advertising costs</a></td>
<td class="nump">$ 1,286,000<span></span>
</td>
<td class="nump">$ 1,190,000<span></span>
</td>
<td class="nump">$ 1,257,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 720<br> -SubTopic 35<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483385/720-35-55-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 720<br> -SubTopic 35<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483406/720-35-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>R59.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094725296">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Comprehensive Income (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems', window );"><strong>Accumulated Other Comprehensive Income (Loss) [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax', window );">Accumulated other comprehensive loss consists of foreign currency translation adjustments, net of tax</a></td>
<td class="num">$ (67,808,000)<span></span>
</td>
<td class="nump">$ 36,550,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized losses on available-for-sale investments, net of tax</a></td>
<td class="num">(3,698,000)<span></span>
</td>
<td class="nump">7,515,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax', window );">Losses on currency swaps, net of gains on long-term intercompany loans</a></td>
<td class="nump">1,271,000<span></span>
</td>
<td class="nump">1,271,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Net realized gains reclassified into current operations</a></td>
<td class="num">(8,000)<span></span>
</td>
<td class="num">(1,954,000)<span></span>
</td>
<td class="num">$ (182,000)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementEquityComponentsAxis=us-gaap_AccumulatedOtherComprehensiveIncomeMember', window );">Accumulated Other Comprehensive Loss [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems', window );"><strong>Accumulated Other Comprehensive Income (Loss) [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Net realized gains reclassified into current operations</a></td>
<td class="num">$ (8,000)<span></span>
</td>
<td class="num">$ (1,954,000)<span></span>
</td>
<td class="num">$ (182,000)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax, of accumulated unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated adjustment, net of tax, that results from the process of translating subsidiary financial statements and foreign equity investments into the reporting currency from the functional currency of the reporting entity, net of reclassification of realized foreign currency translation gains or losses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-14A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482736/825-10-45-5A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-10A<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-14<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-5<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481674/830-30-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-17<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-20<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-20<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-20<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after tax, of increase (decrease) in accumulated other comprehensive income (AOCI) from gain (loss) on intra-entity foreign currency transaction that is considered to be long-term-investment with settlement not planned or anticipated in foreseeable future.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482014/830-20-35-3<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481694/830-30-45-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after tax of reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-15<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-9<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-17A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementEquityComponentsAxis=us-gaap_AccumulatedOtherComprehensiveIncomeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_AccumulatedOtherComprehensiveIncomeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>81
<FILENAME>R60.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609101122032">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail) - Fair Value, Measurements, Recurring<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member', window );">Quoted&#160;Prices&#160;in Active Markets for Identical Assets (Level&#160;1)</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MoneyMarketInstrumentsFairValueDisclosure', window );">Money market instruments</a></td>
<td class="nump">$ 15,242<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CorporateBondsFairValueDisclosure', window );">Corporate bonds</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_TreasuryBillsFairValueDisclosure', window );">Treasury notes</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AssetBackedSecuritiesFairValueDisclosure', window );">Asset-backed securities</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_SovereignBondsFairValueDisclosure', window );">Sovereign bonds</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosureAbstract', window );"><strong>Liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Significant&#160;Other Observable Inputs (Level&#160;2)</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MoneyMarketInstrumentsFairValueDisclosure', window );">Money market instruments</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CorporateBondsFairValueDisclosure', window );">Corporate bonds</a></td>
<td class="nump">340,916<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_TreasuryBillsFairValueDisclosure', window );">Treasury notes</a></td>
<td class="nump">45,634<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AssetBackedSecuritiesFairValueDisclosure', window );">Asset-backed securities</a></td>
<td class="nump">13,314<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_SovereignBondsFairValueDisclosure', window );">Sovereign bonds</a></td>
<td class="nump">990<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">324<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosureAbstract', window );"><strong>Liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">211<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member', window );">Unobservable Inputs (Level 3)</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MoneyMarketInstrumentsFairValueDisclosure', window );">Money market instruments</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CorporateBondsFairValueDisclosure', window );">Corporate bonds</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_TreasuryBillsFairValueDisclosure', window );">Treasury notes</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AssetBackedSecuritiesFairValueDisclosure', window );">Asset-backed securities</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_SovereignBondsFairValueDisclosure', window );">Sovereign bonds</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilitiesFairValueDisclosureAbstract', window );"><strong>Liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AssetBackedSecuritiesFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Backed Securities Fair Value Disclosure</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AssetBackedSecuritiesFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CorporateBondsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Corporate bonds fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CorporateBondsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_MoneyMarketInstrumentsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Money market instruments fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_MoneyMarketInstrumentsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_SovereignBondsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sovereign bonds fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_SovereignBondsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_TreasuryBillsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Treasury bills fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_TreasuryBillsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AssetsFairValueDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsFairValueDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value portion of asset contracts related to the exchange of different currencies, including, but not limited to, foreign currency options, forward contracts, and swaps.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyContractAssetFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value portion of liability contracts related to the exchange of different currencies, including, but not limited to, foreign currency options, forward (delivery or nondelivery) contracts, and swaps entered into.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LiabilitiesFairValueDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesFairValueDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel3Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>82
<FILENAME>R61.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097258336">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Cash', window );">Cash</a></td>
<td class="nump">$ 170,852<span></span>
</td>
<td class="nump">$ 183,242<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MoneyMarketFundsAtCarryingValue', window );">Money market instruments</a></td>
<td class="nump">15,242<span></span>
</td>
<td class="nump">19,413<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">186,094<span></span>
</td>
<td class="nump">202,655<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">59,956<span></span>
</td>
<td class="nump">129,392<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermInvestments', window );">Non-current investments</a></td>
<td class="nump">340,898<span></span>
</td>
<td class="nump">244,230<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments', window );">Total</a></td>
<td class="nump">586,948<span></span>
</td>
<td class="nump">576,277<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasuryBillSecuritiesMember', window );">Treasury Bills [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">2,487<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">43,147<span></span>
</td>
<td class="nump">43,523<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">737<span></span>
</td>
<td class="nump">3,551<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">12,577<span></span>
</td>
<td class="nump">15,763<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">55,742<span></span>
</td>
<td class="nump">124,851<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">285,174<span></span>
</td>
<td class="nump">183,965<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">990<span></span>
</td>
<td class="nump">990<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 979<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash, cash equivalents, short term and long term investments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CashCashEquivalentsShortTermAndLongTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481830/320-10-45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481830/320-10-45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Cash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-12<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477796/946-210-45-21<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 210<br> -Topic 946<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477796/946-210-45-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Cash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The total amount of investments that are intended to be held for an extended period of time (longer than one operating cycle).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(12))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LongTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MoneyMarketFundsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Investment in short-term money-market instruments (such as commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and so forth) which are highly liquid (that is, readily convertible to known amounts of cash) and so near their maturity that they present an insignificant risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify as cash equivalents by definition. Original maturity means an original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three-years ago does not become a cash equivalent when its remaining maturity is three months.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MoneyMarketFundsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasuryBillSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_USTreasuryBillSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>83
<FILENAME>R62.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609095387392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Additional Information (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAbstract', window );"><strong>Cash and Cash Equivalents [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DueFromForeignBanks', window );">Cash balance included foreign bank balance</a></td>
<td class="nump">$ 156,027<span></span>
</td>
<td class="nump">$ 173,614<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestReceivable', window );">Interest Receivable</a></td>
<td class="nump">4,144<span></span>
</td>
<td class="nump">3,169<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain', window );">Gross realized gains</a></td>
<td class="nump">8<span></span>
</td>
<td class="nump">111<span></span>
</td>
<td class="nump">$ 133<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss', window );">Allowance for credit loss</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss', window );">Gross realized losses</a></td>
<td class="num">$ (16)<span></span>
</td>
<td class="num">$ (2,065)<span></span>
</td>
<td class="num">$ (315)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DueFromForeignBanks">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Due from foreign banks.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DueFromForeignBanks</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-9<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of realized gain on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleRealizedGain</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of realized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InterestReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount as of the balance sheet date of interest earned but not received. Also called accrued interest or accrued interest receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477802/946-310-45-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>84
<FILENAME>R63.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609101422816">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">$ 405,758<span></span>
</td>
<td class="nump">$ 383,589<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">413<span></span>
</td>
<td class="nump">588<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(5,317)<span></span>
</td>
<td class="num">(10,555)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">400,854<span></span>
</td>
<td class="nump">373,622<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">45,634<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills [Member] | Long-term investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">43,570<span></span>
</td>
<td class="nump">43,654<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">2<span></span>
</td>
<td class="nump">82<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(425)<span></span>
</td>
<td class="num">(213)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">43,147<span></span>
</td>
<td class="nump">43,523<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills [Member] | Short-term Investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">2,501<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(14)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">2,487<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">13,314<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member] | Long-term investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">13,131<span></span>
</td>
<td class="nump">16,773<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(554)<span></span>
</td>
<td class="num">(1,010)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">12,577<span></span>
</td>
<td class="nump">15,763<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member] | Short-term Investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">739<span></span>
</td>
<td class="nump">3,637<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(2)<span></span>
</td>
<td class="num">(86)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">737<span></span>
</td>
<td class="nump">3,551<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">340,916<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member] | Long-term investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">288,332<span></span>
</td>
<td class="nump">189,326<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">408<span></span>
</td>
<td class="nump">506<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(3,566)<span></span>
</td>
<td class="num">(5,867)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">285,174<span></span>
</td>
<td class="nump">183,965<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member] | Short-term Investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">56,472<span></span>
</td>
<td class="nump">128,150<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">3<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(733)<span></span>
</td>
<td class="num">(3,299)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">55,742<span></span>
</td>
<td class="nump">124,851<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">990<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member] | Long-term investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,037<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(58)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">979<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member] | Short-term Investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">1,013<span></span>
</td>
<td class="nump">1,012<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(23)<span></span>
</td>
<td class="num">(22)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">$ 990<span></span>
</td>
<td class="nump">$ 990<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before tax, of unrealized gain in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before tax, of unrealized loss in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 103<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-103<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481830/320-10-45-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesDebtSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_InvestmentDurationAxis=cgnx_LongTermInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_InvestmentDurationAxis=cgnx_LongTermInvestmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_InvestmentDurationAxis=us-gaap_ShortTermInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_InvestmentDurationAxis=us-gaap_ShortTermInvestmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>85
<FILENAME>R64.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609099478176">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">$ 225,222<span></span>
</td>
<td class="nump">$ 68,557<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(3,199)<span></span>
</td>
<td class="num">(1,561)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">93,582<span></span>
</td>
<td class="nump">233,304<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(2,118)<span></span>
</td>
<td class="num">(8,994)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">318,804<span></span>
</td>
<td class="nump">301,861<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(5,317)<span></span>
</td>
<td class="num">(10,555)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">42,149<span></span>
</td>
<td class="nump">20,725<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(425)<span></span>
</td>
<td class="num">(153)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">2,487<span></span>
</td>
<td class="nump">2,441<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(14)<span></span>
</td>
<td class="num">(60)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">44,636<span></span>
</td>
<td class="nump">23,166<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(439)<span></span>
</td>
<td class="num">(213)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">11,024<span></span>
</td>
<td class="nump">17,062<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(547)<span></span>
</td>
<td class="num">(1,049)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">2,290<span></span>
</td>
<td class="nump">2,252<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(10)<span></span>
</td>
<td class="num">(47)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">13,314<span></span>
</td>
<td class="nump">19,314<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(557)<span></span>
</td>
<td class="num">(1,096)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">990<span></span>
</td>
<td class="nump">1,968<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(23)<span></span>
</td>
<td class="num">(80)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">990<span></span>
</td>
<td class="nump">1,968<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(23)<span></span>
</td>
<td class="num">(80)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">172,049<span></span>
</td>
<td class="nump">30,770<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(2,227)<span></span>
</td>
<td class="num">(359)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">87,815<span></span>
</td>
<td class="nump">226,643<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(2,071)<span></span>
</td>
<td class="num">(8,807)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">259,864<span></span>
</td>
<td class="nump">257,413<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">$ (4,298)<span></span>
</td>
<td class="num">$ (9,166)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for more than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479081/326-30-55-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-7<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for 12 months or longer, without allowance for credit loss. Includes beneficial interest in securitized financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479081/326-30-55-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-7<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position without allowance for credit loss.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479081/326-30-55-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-6<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position, without allowance for credit loss. Includes beneficial interest in securitized financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479106/326-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>86
<FILENAME>R65.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609101122848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAbstract', window );"><strong>Cash and Cash Equivalents [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain', window );">Gross realized gains</a></td>
<td class="nump">$ 8<span></span>
</td>
<td class="nump">$ 111<span></span>
</td>
<td class="nump">$ 133<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss', window );">Gross realized losses</a></td>
<td class="num">(16)<span></span>
</td>
<td class="num">(2,065)<span></span>
</td>
<td class="num">(315)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RealizedInvestmentGainsLosses', window );">Net realized gains (losses)</a></td>
<td class="num">$ (8)<span></span>
</td>
<td class="num">$ (1,954)<span></span>
</td>
<td class="num">$ (182)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of realized gain on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleRealizedGain</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of realized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RealizedInvestmentGainsLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of realized gain (loss) on investment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(3)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RealizedInvestmentGainsLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<FILENAME>R66.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097557568">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">$ 59,956<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">77,412<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">113,572<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">81,930<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">64,596<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">400,854<span></span>
</td>
<td class="nump">$ 373,622<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">available for sale securities debt maturities after five years before seven years fair value</a></td>
<td class="nump">3,388<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">2,487<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">9,177<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">21,365<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">12,605<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">45,634<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">available for sale securities debt maturities after five years before seven years fair value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">55,742<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">62,324<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">92,207<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">68,029<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">62,614<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">340,916<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">available for sale securities debt maturities after five years before seven years fair value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">737<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">5,911<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">1,296<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">1,982<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">13,314<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">available for sale securities debt maturities after five years before seven years fair value</a></td>
<td class="nump">3,388<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">990<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">990<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">available for sale securities debt maturities after five years before seven years fair value</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Available-for-sale securities, debt maturities after fourth year but before fifth year, fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>This item represents the fair value of debt securities which are expected to mature within one year of the balance sheet date and which are categorized neither as held-to-maturity nor trading securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Available-for-sale securities, debt maturities after third year but before fourth year, fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Available-for-sale securities, debt maturities after second year but before third year, fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), with single maturity date and allocated without single maturity date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477268/942-320-50-3A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 103<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-103<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481830/320-10-45-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479130/326-30-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesDebtSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481800/320-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>R67.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094256800">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Inventories - Inventories (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Oct. 18, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryLineItems', window );"><strong>Inventory [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">$ 86,917<span></span>
</td>
<td class="nump">$ 93,201<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcessNetOfReserves', window );">Work-in-process</a></td>
<td class="nump">5,544<span></span>
</td>
<td class="nump">5,747<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">65,066<span></span>
</td>
<td class="nump">63,337<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">$ 157,527<span></span>
</td>
<td class="nump">$ 162,285<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember', window );">Moritex Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryLineItems', window );"><strong>Inventory [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventories acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 21,882<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of inventory recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryFinishedGoodsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoodsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryRawMaterialsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryRawMaterialsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryWorkInProcessNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480581/330-10-S99-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWorkInProcessNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>89
<FILENAME>R68.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097201264">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Property, Plant, and Equipment - Property, Plant, and Equipment (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">$ 225,509<span></span>
</td>
<td class="nump">$ 206,222<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: accumulated depreciation</a></td>
<td class="num">(127,064)<span></span>
</td>
<td class="num">(100,373)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property, plant and equipment, net, total</a></td>
<td class="nump">98,445<span></span>
</td>
<td class="nump">105,849<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember', window );">Land [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">8,711<span></span>
</td>
<td class="nump">8,805<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember', window );">Building [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">38,878<span></span>
</td>
<td class="nump">34,117<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember', window );">Building Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">46,496<span></span>
</td>
<td class="nump">44,992<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">21,642<span></span>
</td>
<td class="nump">19,611<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_HardwareAndSoftwareMember', window );">Computer Hardware And Software [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">57,791<span></span>
</td>
<td class="nump">55,154<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember', window );">Manufacturing Test Equipment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">45,523<span></span>
</td>
<td class="nump">36,182<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">$ 6,468<span></span>
</td>
<td class="nump">$ 7,361<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(14))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 360<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(13))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 360<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -SubTopic 10<br> -Topic 360<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482099/360-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 360<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478451/942-360-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_HardwareAndSoftwareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_HardwareAndSoftwareMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>90
<FILENAME>R69.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609099255504">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property, Plant and Equipment - Additional Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Oct. 18, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Property, Plant and Equipment [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisposals', window );">Disposals in period</a></td>
<td class="nump">$ 9,580<span></span>
</td>
<td class="nump">$ 12,421<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1', window );">Reduction of accumulated depreciation due to disposals</a></td>
<td class="nump">9,492<span></span>
</td>
<td class="nump">12,184<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Loss on disposition of property, plant and equipment</a></td>
<td class="nump">88<span></span>
</td>
<td class="nump">229<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisposals', window );">Disposals in period</a></td>
<td class="nump">9,580<span></span>
</td>
<td class="nump">12,421<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1', window );">Reduction of accumulated depreciation due to disposals</a></td>
<td class="nump">9,492<span></span>
</td>
<td class="nump">12,184<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Loss on disposition of property, plant and equipment</a></td>
<td class="num">$ (88)<span></span>
</td>
<td class="num">(229)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from Sale of Property, Plant, and Equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember', window );">Moritex Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property, plant and equipment acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 19,805<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in accumulated depreciation, depletion and amortization as a result of sale or disposal of property, plant and equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of property, plant, and equipment recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnDispositionOfAssets1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnDispositionOfAssets1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 12<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentDisposals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of divestiture of long-lived, 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, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentDisposals</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-7A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>91
<FILENAME>R70.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609101365056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>ft&#178; </div>
<div>lease_component</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseExpense', window );">Operating lease expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 14,131<span></span>
</td>
<td class="nump">$ 11,598<span></span>
</td>
<td class="nump">$ 8,939<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeasePayments', window );">Operating lease payments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13,683<span></span>
</td>
<td class="nump">10,148<span></span>
</td>
<td class="nump">8,548<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized', window );">Operating lease expense for which no liability or asset was recognized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">407<span></span>
</td>
<td class="nump">427<span></span>
</td>
<td class="nump">$ 144<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_OperatingLeaseLiabilityDiscountedPresentValue', window );">Operating lease, liability, discounted present value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">70,217<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating lease, liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">78,601<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 67,326<span></span>
</td>
<td class="nump">$ 75,115<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent', window );">Operating lease, weighted average discount rate (percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.90%<span></span>
</td>
<td class="nump">5.70%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1', window );">Operating lease, weighted average remaining lease term (years)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">9 years 10 months 24 days<span></span>
</td>
<td class="text">10 years 6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Lessee, Operating Lease, Liability, Payments, Due</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 93,292<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 12,534<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm', window );">Unrecorded Unconditional Purchase Obligation, Term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_SG', window );">SINGAPORE</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_LesseeOperatingLeaseComponents', window );">Lessee, Operating Lease, Components | lease_component</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_SG', window );">SINGAPORE | 88,000 Square-Foot Premises</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetRentableArea', window );">Net Rentable Area | ft&#178;</a></td>
<td class="nump">88,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_SG', window );">SINGAPORE | 27,000 Square-Foot Premises</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetRentableArea', window );">Net Rentable Area | ft&#178;</a></td>
<td class="nump">27,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract', window );">Lessee, Operating Lease, Option to Renew, Term of Contract</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Lessee, Operating Lease, Liability, Payments, Due</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 13,145<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2025</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 160<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=cgnx_AachenGermanyMember', window );">Aachen Germany</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AreaOfRealEstateProperty', window );">Area of Real Estate Property | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount', window );">Unrecorded Unconditional Purchase Obligation, Including Lease Not yet Commenced, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 8,763<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm', window );">Unrecorded Uncontditional Purchase Obligation, Renewal Term</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary', window );">Unrecorded Unconditional Purchase Obligation, Including Lease Not yet Commenced, to be Paid, Year One</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 483<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_LesseeOperatingLeaseComponents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Components</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_LesseeOperatingLeaseComponents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Option to Renew, Term of Contract</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Expense, No Liability Or Asset Recognized</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_OperatingLeaseLiabilityDiscountedPresentValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Liability, Discounted Present Value</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_OperatingLeaseLiabilityDiscountedPresentValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecorded Uncontditional Purchase Obligation, Renewal Term</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AreaOfRealEstateProperty">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area of a real estate property.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AreaOfRealEstateProperty</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:areaItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LessorLeaseDescriptionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479773/842-30-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LessorLeaseDescriptionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetRentableArea">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Net rentable area for properties owned.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetRentableArea</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:areaItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease expense. Excludes sublease income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseRightOfUseAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's right to use underlying asset under operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseRightOfUseAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average discount rate for operating lease calculated at point in time.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 53<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479589/842-20-55-53<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of fixed and determinable portion of unrecorded unconditional purchase obligation 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). Includes, but is not limited to, lease not yet commenced.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecorded obligation to transfer funds in future for fixed or minimum amount or quantity of product and service at fixed or minimum price. Includes, but is not limited to, lease not yet commenced and take-or-pay and throughput contracts.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecordedUnconditionalPurchaseObligationTerm">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Term of the unrecognized unconditional purchase obligation, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482648/440-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecordedUnconditionalPurchaseObligationTerm</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_SG">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_SG</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_A88000SquareFootPremisesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_A88000SquareFootPremisesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_A27000SquareFootPremisesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_A27000SquareFootPremisesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=cgnx_AachenGermanyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=cgnx_AachenGermanyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>92
<FILENAME>R71.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609101704384">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases - Schedule of Payments (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2025</a></td>
<td class="nump">$ 12,534<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo', window );">2026</a></td>
<td class="nump">10,543<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree', window );">2027</a></td>
<td class="nump">9,496<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour', window );">2028</a></td>
<td class="nump">8,820<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive', window );">2029</a></td>
<td class="nump">8,242<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="nump">43,657<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total</a></td>
<td class="nump">$ 93,292<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LeasesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LeasesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478964/842-20-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>93
<FILENAME>R72.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609095365360">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill - Changes in the Carrying Value of Goodwill (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, Beginning Balance</a></td>
<td class="nump">$ 393,181<span></span>
</td>
<td class="nump">$ 242,630<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillForeignCurrencyTranslationGainLoss', window );">Foreign exchange rate changes</a></td>
<td class="num">(14,722)<span></span>
</td>
<td class="nump">5,504<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, Ending Balance</a></td>
<td class="nump">384,937<span></span>
</td>
<td class="nump">393,181<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_SACSiriusAdvancedCyberneticsGmbHMember', window );">SAC Sirius Advanced Cybernetics GmbH</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillOtherIncreaseDecrease', window );">Goodwill, Other Increase (Decrease)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 145,047<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember', window );">Moritex Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillOtherIncreaseDecrease', window );">Goodwill, Other Increase (Decrease)</a></td>
<td class="nump">$ 6,478<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillForeignCurrencyTranslationGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of foreign currency translation gain (loss) which increases (decreases) asset representing future economic benefit from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillForeignCurrencyTranslationGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillOtherIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) of asset representing future economic benefit from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillOtherIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_SACSiriusAdvancedCyberneticsGmbHMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_SACSiriusAdvancedCyberneticsGmbHMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<FILENAME>R73.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097831632">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets - Amortized Intangible Assets (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">$ 127,304<span></span>
</td>
<td class="nump">$ 139,331<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(36,620)<span></span>
</td>
<td class="num">(26,379)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">90,684<span></span>
</td>
<td class="nump">112,952<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember', window );">Completed Technologies [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">58,373<span></span>
</td>
<td class="nump">62,123<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(25,766)<span></span>
</td>
<td class="num">(20,745)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">32,607<span></span>
</td>
<td class="nump">41,378<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember', window );">Customer Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">67,781<span></span>
</td>
<td class="nump">75,965<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(10,229)<span></span>
</td>
<td class="num">(5,352)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">57,552<span></span>
</td>
<td class="nump">70,613<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete agreements</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">340<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(288)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">52<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember', window );">Trademarks</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">810<span></span>
</td>
<td class="nump">903<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(337)<span></span>
</td>
<td class="num">(50)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">$ 473<span></span>
</td>
<td class="nump">853<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_OtherIntangibleAssetsMember', window );">Non-compete Agreements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">340<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(232)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 108<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(16))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480265/350-10-S45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 928<br> -SubTopic 340<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478859/928-340-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DevelopedTechnologyRightsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CustomerContractsAndRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_OtherIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_OtherIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>95
<FILENAME>R74.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096414096">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets - Narrative (Details) - Moritex Corporation<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Oct. 18, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer relationships</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="nump">$ 64,800<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologyMember', window );">Completed technologies</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="nump">32,300<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember', window );">Trademarks</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="nump">$ 850<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of identifiable intangible assets recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482686/350-30-45-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>96
<FILENAME>R75.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096396816">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2025</a></td>
<td class="nump">$ 10,147<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2026</a></td>
<td class="nump">9,775<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2027</a></td>
<td class="nump">8,850<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2028</a></td>
<td class="nump">8,120<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">2029</a></td>
<td class="nump">8,120<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Thereafter</a></td>
<td class="nump">45,672<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">$ 90,684<span></span>
</td>
<td class="nump">$ 112,952<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482640/350-30-55-40<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482665/350-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483154/926-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>97
<FILENAME>R76.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609099368816">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Accrued Expenses - Constituents of Accrued Expenses (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrentAbstract', window );"><strong>Constituents of accrued expenses</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedBonusesCurrent', window );">Incentive compensation</a></td>
<td class="nump">$ 18,735<span></span>
</td>
<td class="nump">$ 10,645<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedSalariesCurrent', window );">Salaries and payroll taxes</a></td>
<td class="nump">5,123<span></span>
</td>
<td class="nump">8,774<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_RetirementAllowance', window );">Foreign retirement obligations</a></td>
<td class="nump">10,445<span></span>
</td>
<td class="nump">12,835<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedVacationCurrent', window );">Vacation</a></td>
<td class="nump">3,945<span></span>
</td>
<td class="nump">5,827<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualClassifiedCurrent', window );">Warranty obligations</a></td>
<td class="nump">5,140<span></span>
</td>
<td class="nump">4,244<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">28,372<span></span>
</td>
<td class="nump">30,049<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">$ 71,760<span></span>
</td>
<td class="nump">$ 72,374<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_RetirementAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Retirement allowance Japan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_RetirementAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedBonusesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable for incentive compensation awarded to employees and directors or earned by them based on the terms of one or more relevant arrangements. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedBonusesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedLiabilitiesCurrentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedLiabilitiesCurrentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedSalariesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of the obligations incurred through that date and payable for employees' services provided. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 8<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483467/210-10-45-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedSalariesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccruedVacationCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable for unused vacation time owed to employees based on the entity's vacation benefit given to its employees. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 25<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483070/710-10-25-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccruedVacationCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAccruedLiabilitiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAccruedLiabilitiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductWarrantyAccrualClassifiedCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents the current portion of the liabilities (due within one year or within the normal operating cycle if longer).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantyAccrualClassifiedCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>98
<FILENAME>R77.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096398176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Expenses - Changes in Warranty Obligations (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MovementInStandardProductWarrantyAccrualRollForward', window );"><strong>Movement in Standard Product Warranty Accrual [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrual', window );">Beginning Balance</a></td>
<td class="nump">$ 4,244<span></span>
</td>
<td class="nump">$ 4,375<span></span>
</td>
<td class="nump">$ 5,427<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualWarrantiesIssued', window );">Provisions for warranties issued during the period</a></td>
<td class="nump">4,794<span></span>
</td>
<td class="nump">2,940<span></span>
</td>
<td class="nump">1,876<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualPayments', window );">Fulfillment of warranty obligations</a></td>
<td class="num">(3,883)<span></span>
</td>
<td class="num">(3,078)<span></span>
</td>
<td class="num">(2,928)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss', window );">Foreign exchange rate changes</a></td>
<td class="num">(15)<span></span>
</td>
<td class="nump">7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrual', window );">Ending Balance</a></td>
<td class="nump">$ 5,140<span></span>
</td>
<td class="nump">$ 4,244<span></span>
</td>
<td class="nump">$ 4,375<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MovementInStandardProductWarrantyAccrualRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MovementInStandardProductWarrantyAccrualRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductWarrantyAccrual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(15)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantyAccrual</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductWarrantyAccrualPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in the standard and extended product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard and extended product warranty.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantyAccrualPayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductWarrantyAccrualWarrantiesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in the standard and extended product warranty accrual from warranties issued.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantyAccrualWarrantiesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of foreign currency translation gain (loss) which decreases (increases) the standard and extended product warranty accrual.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>99
<FILENAME>R78.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106129776">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Additional Information (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted', window );">Purchase order outstanding</a></td>
<td class="nump">$ 44,269<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherInventoryPurchasedGoods', window );">Other Inventory, Purchased Goods, Gross</a></td>
<td class="nump">$ 17,461<span></span>
</td>
<td class="nump">$ 10,616<span></span>
</td>
<td class="nump">$ 5,269<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherInventoryPurchasedGoods">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross amount of components used by the entity which are bought from another entity rather than produced by the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherInventoryPurchasedGoods</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum amount to be expended to satisfy the terms of arrangements in which the entity has agreed to expend funds to procure goods or services, excluding long-term purchase commitments or unconditional purchase obligations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>100
<FILENAME>R79.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094672256">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments - Additional Details (Details) - Not Designated as Hedging Instrument [Member] - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1', window );">Maturities of forward of contracts</a></td>
<td class="text">3 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeGainLossOnDerivativeNet', window );">Gains (losses) recognized in net income</a></td>
<td class="nump">$ 1,945<span></span>
</td>
<td class="num">$ (10,023)<span></span>
</td>
<td class="nump">$ 9,823<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeGainLossOnDerivativeNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the fair value of derivatives recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeGainLossOnDerivativeNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480237/815-40-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum amount of time remaining before foreign currency exchange rate derivatives mature or expire, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>101
<FILENAME>R80.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609099414640">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Derivative Instruments - Outstanding Forward Contracts (Details) - Not Designated as Hedging Instrument [Member]<br> &#8364; in Thousands, &#165; in Thousands, &#165; in Thousands, &#163; in Thousands, SFr in Thousands, Ft in Thousands, $ in Thousands, $ in Thousands, $ in Thousands, $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>SGD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>CNY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>MXN ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>HUF (Ft)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>CHF (SFr)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>SGD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>CNY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>MXN ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>HUF (Ft)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>CHF (SFr)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>CAD ($)</div>
</th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Euro [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 26,029<span></span>
</td>
<td class="nump">&#8364; 25,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 44,302<span></span>
</td>
<td class="nump">&#8364; 40,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Japanese Yen [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,750<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 2,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,255<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 600,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Mexican Peso [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,701<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 220,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 145,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">British Pound [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,008<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#163; 3,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,258<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#163; 3,345<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Hungarian Forint [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,951<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">Ft 2,360,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,466<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">Ft 2,240,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Canadian Dollar [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,390<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,112<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,470<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">China, Yuan Renminbi</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">12,990<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 95,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 50,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Switzerland, Francs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">2,432<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">SFr 2,200<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">SFr 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Singapore Dollar [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">$ 40,000<span></span>
</td>
<td class="nump">$ 29,457<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 39,700<span></span>
</td>
<td class="nump">$ 30,136<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssetNotionalAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Nominal or face amount used to calculate payments on the derivative asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SX 210.12-13(Column A)(Footnote 3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5C<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5A<br> -Subparagraph (SX 210.12-13A(Column D))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5B<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-1B<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-1A<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssetNotionalAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480237/815-40-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_EUR">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_EUR</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_JPY">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_JPY</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_MXN">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_MXN</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_GBP">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_GBP</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_HUF">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_HUF</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_CAD">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_CAD</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_CNY">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_CNY</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_CHF">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_CHF</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_CurrencyAxis=currency_SGD">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_CurrencyAxis=currency_SGD</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>102
<FILENAME>R81.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609210507456">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Derivative Instruments - Balance Sheet Location (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativesFairValueLineItems', window );"><strong>Derivatives, Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Net amount of assets presented</a></td>
<td class="nump">$ 324<span></span>
</td>
<td class="nump">$ 151<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">211<span></span>
</td>
<td class="nump">106<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativesFairValueLineItems', window );"><strong>Derivatives, Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Net amount of assets presented</a></td>
<td class="nump">324<span></span>
</td>
<td class="nump">151<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">$ 211<span></span>
</td>
<td class="nump">$ 106<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 103<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-103<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-12<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477439/946-210-55-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(3)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column H)(Footnote 7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5C<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(3)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SX 210.12-13(Column A)(Footnote 3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column H))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5C<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5A<br> -Subparagraph (SX 210.12-13A(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column E)(Footnote 4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483466/210-20-50-3<br><br>Reference 30: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-22<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-10<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial liability 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. Includes liabilities not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 16: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(9)(e))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column H)(Footnote 7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5C<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(9)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(9)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SX 210.12-13(Column G)(Footnote 8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column H))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5C<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SX 210.12-13(Column G))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5A<br> -Subparagraph (SX 210.12-13A(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column E)(Footnote 4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483466/210-20-50-3<br><br>Reference 28: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-22<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-10<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativesFairValueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativesFairValueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>103
<FILENAME>R82.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609098120752">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract', window );"><strong>Derivative Instruments and Hedging Activities Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeAsset', window );">Derivative Asset, Fair Value, Gross Asset</a></td>
<td class="nump">$ 324<span></span>
</td>
<td class="nump">$ 151<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset', window );">Derivative Asset gross amount offset</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Net amount of assets presented</a></td>
<td class="nump">324<span></span>
</td>
<td class="nump">151<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeLiability', window );">Derivative Liability, Fair Value, Gross Liability</a></td>
<td class="nump">211<span></span>
</td>
<td class="nump">106<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset', window );">Derivative liability gross amount offset</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">$ 211<span></span>
</td>
<td class="nump">$ 106<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration', window );">Derivative Liability, Statement of Financial Position [Extensible Enumeration]</a></td>
<td class="text">Other liabilities<span></span>
</td>
<td class="text">Other liabilities<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration', window );">Derivative Asset, Statement of Financial Position [Extensible Enumeration]</a></td>
<td class="text">Other assets<span></span>
</td>
<td class="text">Other assets<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to return cash collateral under master netting arrangements offset against derivative assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -SubTopic 10<br> -Topic 815<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480463/815-10-45-5<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -SubTopic 20<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483466/210-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates line item in statement of financial position that includes derivative asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>enum2:enumerationSetItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 103<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-103<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-12<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 11: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477439/946-210-55-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 20: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(3)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column H)(Footnote 7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5C<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(3)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SX 210.12-13(Column A)(Footnote 3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column H))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5C<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5A<br> -Subparagraph (SX 210.12-13A(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column E)(Footnote 4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483466/210-20-50-3<br><br>Reference 30: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-22<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-10<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeFairValueOfDerivativeAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value, before effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets elected not to be offset. Excludes assets not subject to a master netting arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4B<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4B<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-22<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483466/210-20-50-3<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-7<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (c)(2)<br> -SubTopic 20<br> -Topic 860<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481326/860-20-50-4D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeFairValueOfDerivativeAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeFairValueOfDerivativeLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value, before effects of master netting arrangements, of a financial liability 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. Includes liabilities elected not to be offset. Excludes liabilities not subject to a master netting arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4B<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4B<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-22<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483466/210-20-50-3<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-7<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (c)(2)<br> -SubTopic 20<br> -Topic 860<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481326/860-20-50-4D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeFairValueOfDerivativeLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair value, after the effects of master netting arrangements, of a financial liability 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. Includes liabilities not subject to a master netting arrangement and not elected to be offset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (bbb)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482106/820-10-50-3<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 16: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478795/946-210-50-6<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(9)(e))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column H)(Footnote 7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5C<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(9)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(9)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SX 210.12-13(Column G)(Footnote 8))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5C<br> -Subparagraph (SX 210.12-13C(Column H))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5C<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SX 210.12-13(Column G))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5A<br> -Subparagraph (SX 210.12-13A(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5B<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column E)(Footnote 4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477271/946-320-S99-5B<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483466/210-20-50-3<br><br>Reference 28: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-22<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483444/210-20-55-10<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of right to receive cash collateral under master netting arrangements offset against derivative liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -SubTopic 10<br> -Topic 815<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480463/815-10-45-5<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -SubTopic 20<br> -Topic 210<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483466/210-20-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates line item in statement of financial position that includes derivative liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>enum2:enumerationSetItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>104
<FILENAME>R83.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094293232">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsGainLossLineItems', window );"><strong>Derivative Instruments, Gain (Loss) [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeGainLossOnDerivativeNet', window );">Gains (losses) recognized in net income</a></td>
<td class="nump">$ 1,945<span></span>
</td>
<td class="num">$ (10,023)<span></span>
</td>
<td class="nump">$ 9,823<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeGainLossOnDerivativeNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in the fair value of derivatives recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeGainLossOnDerivativeNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentsGainLossLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4E<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480434/815-10-50-4E<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsGainLossLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>105
<FILENAME>R84.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094714864">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Narratives (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalizedContractCostGross', window );">Capitalized Contract Cost, Gross</a></td>
<td class="nump">$ 10,705<span></span>
</td>
<td class="nump">$ 13,265<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAmortizationOfDeferredCharges', window );">Amortization of Other Deferred Charges</a></td>
<td class="nump">12,512<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings', window );">Deferred Tax Liabilities, Undistributed Foreign Earnings</a></td>
<td class="num">$ (1,400)<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CapitalizedContractCostGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 340<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479483/340-40-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CapitalizedContractCostGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from undistributed earnings of subsidiary and other recognized entity not within country of domicile. Includes, but is not limited to, other basis differences.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherAmortizationOfDeferredCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of amortization of other deferred costs recognized in the income statement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherAmortizationOfDeferredCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>106
<FILENAME>R85.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094951504">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Disaggregation by Geography and Type (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 914,515<span></span>
</td>
<td class="nump">$ 837,547<span></span>
</td>
<td class="nump">$ 1,006,090<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cgnx_StandardProductandServicesMember', window );">Standard products and services</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">795,319<span></span>
</td>
<td class="nump">734,140<span></span>
</td>
<td class="nump">848,153<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ProductOrServiceAxis=cgnx_ApplicationofCustomerSpecificSolutionsMember', window );">Application-specific customer solutions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">119,196<span></span>
</td>
<td class="nump">103,407<span></span>
</td>
<td class="nump">157,937<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_AmericasMember', window );">Americas [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">350,155<span></span>
</td>
<td class="nump">330,415<span></span>
</td>
<td class="nump">390,573<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_EuropeMember', window );">Europe [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">217,880<span></span>
</td>
<td class="nump">220,665<span></span>
</td>
<td class="nump">234,643<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=cgnx_GreaterChinaMember', window );">Greater China [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">164,147<span></span>
</td>
<td class="nump">164,115<span></span>
</td>
<td class="nump">227,447<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=cgnx_OtherAsiaMember', window );">Other Asia [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 182,333<span></span>
</td>
<td class="nump">$ 122,352<span></span>
</td>
<td class="nump">$ 153,427<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=cgnx_StandardProductandServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=cgnx_StandardProductandServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ProductOrServiceAxis=cgnx_ApplicationofCustomerSpecificSolutionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ProductOrServiceAxis=cgnx_ApplicationofCustomerSpecificSolutionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_AmericasMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_AmericasMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_EuropeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_EuropeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=cgnx_GreaterChinaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=cgnx_GreaterChinaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=cgnx_OtherAsiaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=cgnx_OtherAsiaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>107
<FILENAME>R86.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106176480">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Allowance for Credit Loss (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward', window );"><strong>Accounts Receivable, Allowance for Credit Loss [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Beginning balance</a></td>
<td class="nump">$ 583<span></span>
</td>
<td class="nump">$ 730<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProvisionForDoubtfulAccounts', window );">Increases to the allowance for credit losses</a></td>
<td class="nump">459<span></span>
</td>
<td class="nump">500<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs', window );">Write-offs, net of recoveries</a></td>
<td class="num">(222)<span></span>
</td>
<td class="num">(645)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="nump">7<span></span>
</td>
<td class="num">(2)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Ending balance</a></td>
<td class="nump">$ 827<span></span>
</td>
<td class="nump">$ 583<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478777/944-210-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479344/326-20-45-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481962/310-10-50-4<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of direct write-downs of accounts receivable charged against the allowance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>108
<FILENAME>R87.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096587072">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CustomerContractsLiabilityCurrentRollForward', window );"><strong>Customer Contracts Liability, Current</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Beginning balance</a></td>
<td class="nump">$ 31,525<span></span>
</td>
<td class="nump">$ 40,787<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">21,998<span></span>
</td>
<td class="nump">21,538<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized', window );">Recognition of revenue deferred in prior period</a></td>
<td class="num">(28,108)<span></span>
</td>
<td class="num">(20,987)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ContractLiabilityForeignExchangeRateChanges', window );">Foreign exchange rate changes</a></td>
<td class="num">(380)<span></span>
</td>
<td class="num">(608)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">End balance</a></td>
<td class="nump">$ 25,035<span></span>
</td>
<td class="nump">31,525<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueRefundPayments1', window );">Deferred Revenue, Refund Payments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (9,205)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ContractLiabilityForeignExchangeRateChanges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract Liability Foreign Exchange Rate Changes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ContractLiabilityForeignExchangeRateChanges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract with Customer, Liability, Current And Prior Period Revenue Recognized</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Liability, Period Increase (Decrease)</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CustomerContractsLiabilityCurrentRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Customer Contracts Liability Current [Roll Forward]</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CustomerContractsLiabilityCurrentRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueRefundPayments1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to customers for refund payments of revenue that was previously reported as deferred or unearned revenue.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredRevenueRefundPayments1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>109
<FILENAME>R88.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609101589424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Shareholders' Equity - Additional Information (Detail)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="8">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>Vote </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Oct. 02, 2022 </div>
<div>$ / shares</div>
</th>
<th class="th" colspan="2">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>Vote </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Sep. 29, 2024 </div>
<div>$ / shares</div>
</th>
<th class="th" colspan="2">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Oct. 01, 2023 </div>
<div>$ / shares</div>
</th>
<th class="th" colspan="2">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Mar. 03, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 12, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 25, 2018 </div>
<div>shares</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Authorized shares (in shares) | shares</a></td>
<td class="nump">400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">400,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">400,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock par value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock par value, in dollars per share | $ / shares</a></td>
<td class="nump">$ 0.002<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.002<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.002<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares) | shares</a></td>
<td class="nump">300,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_VoteEntitledForEachCommonShareOutstanding', window );">Vote entitled for each common share outstanding | Vote</a></td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Stock Repurchased During Period, Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 67,085,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 79,794,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 204,314,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1', window );">Share Repurchase Program, Remaining Authorized, Amount</a></td>
<td class="nump">$ 265,807,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 265,807,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockDividendsPerShareCashPaid', window );">Cash dividends per common share (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 0.080<span></span>
</td>
<td class="nump">$ 0.065<span></span>
</td>
<td class="nump">$ 0.305<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 0.075<span></span>
</td>
<td class="nump">$ 0.286<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 0.070<span></span>
</td>
<td class="nump">$ 0.265<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2020Member', window );">Repurchase Program March 2020 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StockRepurchaseProgramAuthorizedAmount1', window );">Repurchase of authorized common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Stock Repurchased During Period, Shares | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,677,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Stock Repurchased During Period, Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 117,000,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2022Member', window );">Repurchase Program March 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StockRepurchaseProgramAuthorizedAmount1', window );">Repurchase of authorized common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">$ 500,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRedeemedOrCalledDuringPeriodShares', window );">Stock Redeemed or Called During Period, Shares | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,711,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,723,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,682,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRedeemedOrCalledDuringPeriodValue', window );">Stock Redeemed or Called During Period, Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 67,085,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 79,794,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 87,314,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_StockRepurchaseProgramBuybackExciseTax', window );">Stock Repurchase Program, Buyback Excise Tax</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 446,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr><td colspan="14"></td></tr>
<tr><td colspan="14"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">175,481&#160;</span></td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_StockRepurchaseProgramBuybackExciseTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Stock Repurchase Program, Buyback Excise Tax</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_StockRepurchaseProgramBuybackExciseTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_VoteEntitledForEachCommonShareOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Vote entitled for each common share outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_VoteEntitledForEachCommonShareOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StockRepurchaseProgramAuthorizedAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 505<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481520/505-30-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StockRepurchaseProgramAuthorizedAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ClassOfStockLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/recommendedDisclosureRef<br> -Topic 272<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483014/272-10-45-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 272<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482987/272-10-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 14<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-14<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-18<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(27)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ClassOfStockLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockDividendsPerShareCashPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate dividends paid during the period for each share of common stock outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockDividendsPerShareCashPaid</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479170/946-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRedeemedOrCalledDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of stock bought back by the entity at the exercise price or redemption price.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRedeemedOrCalledDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRedeemedOrCalledDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock bought back by the entity at the exercise price or redemption price.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRedeemedOrCalledDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount remaining authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(i)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479886/946-10-S99-3<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-11<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478009/946-205-45-4<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478448/946-505-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2020Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2020Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2022Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2022Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>110
<FILENAME>R89.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096230624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Additional Information (Detail)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1">20 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>group </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>group </div>
<div>shares</div>
</th>
<th class="th">
<div>May 03, 2023 </div>
<div>shares</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_NumberOfGroupsWithinEmployeePopulation', window );">Number of groups within the employee population | group</a></td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement', window );">Estimated forfeiture rate for unvested options for senior management</a></td>
<td class="nump">8.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement', window );">Estimated forfeiture rate for unvested options for all non-senior management</a></td>
<td class="nump">13.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates', window );">Increase in compensation expense due to revised estimated forfeiture rates</a></td>
<td class="nump">$ 1,832,000<span></span>
</td>
<td class="nump">$ 234,000<span></span>
</td>
<td class="nump">$ 1,536,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant-date fair values of stock options granted | $ / shares</a></td>
<td class="nump">$ 14.89<span></span>
</td>
<td class="nump">$ 17.76<span></span>
</td>
<td class="nump">$ 21.39<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue', window );">Total intrinsic values of stock options exercised</a></td>
<td class="nump">$ 4,626,000<span></span>
</td>
<td class="nump">$ 6,227,000<span></span>
</td>
<td class="nump">$ 8,424,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue', window );">Total fair values of stock options vested</a></td>
<td class="nump">29,309,000<span></span>
</td>
<td class="nump">34,751,000<span></span>
</td>
<td class="nump">41,497,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions', window );">Total unrecognized compensation expense related to non-vested stock options</a></td>
<td class="nump">$ 51,147,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 51,147,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Recognition period for unrecognized compensation expense</a></td>
<td class="text">1 year 6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 52,443,000<span></span>
</td>
<td class="nump">54,768,000<span></span>
</td>
<td class="nump">54,505,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="nump">8,387,000<span></span>
</td>
<td class="nump">8,442,000<span></span>
</td>
<td class="nump">9,540,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount', window );">Compensation expense capitalized</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO', window );">Estimated Forfeiture Rate for Unvested Options for CEO</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember', window );">Cognex Corporation 2023 Stock Option And Incentive Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized | shares</a></td>
<td class="nump">9,242,995<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">9,242,995<span></span>
</td>
<td class="nump">8,100,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,142,995<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember', window );">Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Shares available for grant under stock option plans | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,610,800<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember', window );">Employee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Shares available for grant under stock option plans | shares</a></td>
<td class="nump">6,458,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,458,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ExpirationPeriodOfStockOptionPlan', window );">Expiration period of stock option plan</a></td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember', window );">Performance Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 39.05<span></span>
</td>
<td class="nump">$ 44.86<span></span>
</td>
<td class="nump">$ 62.49<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares) | shares</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted | shares</a></td>
<td class="nump">55,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation', window );">Cash used to fund tax payments</a></td>
<td class="nump">$ 5,017,000<span></span>
</td>
<td class="nump">$ 7,836,000<span></span>
</td>
<td class="nump">$ 2,406,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="num">$ (7,401,000)<span></span>
</td>
<td class="num">$ (3,229,000)<span></span>
</td>
<td class="num">$ (1,049,000)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, weighted-average exercise price | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 46.14<span></span>
</td>
<td class="nump">$ 58.06<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested (in shares) | shares</a></td>
<td class="nump">429,000<span></span>
</td>
<td class="nump">521,000<span></span>
</td>
<td class="nump">192,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Employee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Performance Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Employee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Performance Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">3 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">4 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Employee service share based compensation recognized period costs capitalized amount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Estimated forfeiture rate for unvested options for all non-senior management.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Estimated Forfeiture Rate for Unvested Options for CEO</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Estimated forfeiture rate for unvested options for senior management.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ExpirationPeriodOfStockOptionPlan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expiration period of stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ExpirationPeriodOfStockOptionPlan</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase (decrease) in compensation expense due to revised estimated forfeiture rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_NumberOfGroupsWithinEmployeePopulation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of groups within employee population.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_NumberOfGroupsWithinEmployeePopulation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share based compensation arrangement by share based payment award options vested fair value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Shares based compensation arrangement by shares based payment award options exercised intrinsic value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost to be recognized for option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit for recognition of expense of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of additional shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PlanNameAxis=cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PlanNameAxis=cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>111
<FILENAME>R90.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609101152384">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail) - USD ($)<br> $ / shares in Units, shares in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Shares</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Beginning balance outstanding</a></td>
<td class="nump">9,008<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod', window );">Granted</a></td>
<td class="nump">1,641<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Exercised</a></td>
<td class="num">(242)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod', window );">Forfeited or expired</a></td>
<td class="num">(864)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber', window );">Ending balance outstanding</a></td>
<td class="nump">9,543<span></span>
</td>
<td class="nump">9,008<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Beginning balance outstanding, weighted-average exercise price</a></td>
<td class="nump">$ 50.87<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice', window );">Granted, weighted-average exercise price</a></td>
<td class="nump">39.72<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, weighted-average exercise price</a></td>
<td class="nump">24.83<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice', window );">Forfeited or expired, weighted-average exercise price</a></td>
<td class="nump">53.18<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Ending balance outstanding, weighted-average exercise price</a></td>
<td class="nump">$ 49.40<span></span>
</td>
<td class="nump">$ 50.87<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable, Shares</a></td>
<td class="nump">5,659<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber', window );">Options vested or expected to vest</a></td>
<td class="nump">9,019<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice', window );">Exercisable, weighted-average exercise price</a></td>
<td class="nump">$ 49.75<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice', window );">Options vested or expected to vest, weighted-average exercise price</a></td>
<td class="nump">$ 49.62<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Outstanding, weighted-average remaining contractual term (in years)</a></td>
<td class="text">5 years 7 months 13 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1', window );">Exercisable, weighted-average remaining contractual term (in years)</a></td>
<td class="text">3 years 10 months 24 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Options vested or expected to vest, weighted-average remaining contractual term (in years)</a></td>
<td class="text">5 years 5 months 12 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Outstanding, aggregate intrinsic value</a></td>
<td class="nump">$ 6,898<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue', window );">Exercisable, aggregate intrinsic value</a></td>
<td class="nump">6,814<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Options vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">6,875<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromStockOptionsExercised', window );">Proceeds from Stock Options Exercised</a></td>
<td class="nump">6,011<span></span>
</td>
<td class="nump">$ 11,104<span></span>
</td>
<td class="nump">$ 12,267<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions', window );">Share-Based Payment Arrangement, Exercise of Option, Tax Benefit</a></td>
<td class="num">$ (4,021)<span></span>
</td>
<td class="num">$ (4,691)<span></span>
</td>
<td class="nump">$ 2,548<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share based compensation arrangement by share based payment award options exercisable aggregate intrinsic value.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For presentations that combine terminations, 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 or that expired.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price of options that were either forfeited or expired.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Net number of share options (or share units) granted during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of options outstanding, including both vested and non-vested options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of fully vested and expected to vest exercisable options that may be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -SubTopic 10<br> -Subparagraph (e)(1)<br> -Name Accounting Standards Codification<br> -Paragraph 2<br> -Section 50<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481112/505-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>112
<FILENAME>R91.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609095347776">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail) - Employee Stock Option [Member]<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free rate</a></td>
<td class="nump">4.30%<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">2.20%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.76%<span></span>
</td>
<td class="nump">0.61%<span></span>
</td>
<td class="nump">0.44%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate', window );">Expected volatility</a></td>
<td class="nump">39.00%<span></span>
</td>
<td class="nump">39.00%<span></span>
</td>
<td class="nump">37.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected term (in years)</a></td>
<td class="text">4 years 8 months 12 days<span></span>
</td>
<td class="text">5 years<span></span>
</td>
<td class="text">5 years 6 months<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The risk-free interest rate assumption that is used in valuing an option on its own shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>113
<FILENAME>R92.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094717328">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail) - Restricted Stock [Member]<br> shares in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2024 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested beginning balance outstanding | shares</a></td>
<td class="nump">1,429<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted | shares</a></td>
<td class="nump">844<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested | shares</a></td>
<td class="num">(429)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited or expired | shares</a></td>
<td class="num">(154)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested ending balance outstanding | shares</a></td>
<td class="nump">1,690<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted-Average Grant Fair Value</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested beginning balance, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 54.22<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, weighted-average exercise price | $ / shares</a></td>
<td class="nump">38.90<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested, weighted-average exercise price | $ / shares</a></td>
<td class="nump">64.07<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited or expired, weighted-average exercise price | $ / shares</a></td>
<td class="nump">46.61<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested ending balance, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 44.75<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>114
<FILENAME>R93.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096579536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Recognition period for unrecognized compensation expense</a></td>
<td class="text">1 year 6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 52,443,000<span></span>
</td>
<td class="nump">$ 54,768,000<span></span>
</td>
<td class="nump">$ 54,505,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="nump">8,387,000<span></span>
</td>
<td class="nump">8,442,000<span></span>
</td>
<td class="nump">9,540,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount', window );">Compensation expense capitalized</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=cgnx_ProductCostOfRevenueMember', window );">Product cost of revenue [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">1,966,000<span></span>
</td>
<td class="nump">1,979,000<span></span>
</td>
<td class="nump">2,016,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research, development, and engineering expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">14,628,000<span></span>
</td>
<td class="nump">16,480,000<span></span>
</td>
<td class="nump">17,693,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementLocationAxis=cgnx_SellingGeneralAndAdministrativeMember', window );">Selling, general, and administrative [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 35,849,000<span></span>
</td>
<td class="nump">$ 36,309,000<span></span>
</td>
<td class="nump">$ 34,796,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Employee service share based compensation recognized period costs capitalized amount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit for recognition of expense of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=cgnx_ProductCostOfRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=cgnx_ProductCostOfRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=cgnx_SellingGeneralAndAdministrativeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeStatementLocationAxis=cgnx_SellingGeneralAndAdministrativeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>115
<FILENAME>R94.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097577984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details) - Performance Shares - $ / shares<br> shares in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested beginning balance outstanding</a></td>
<td class="nump">79<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested beginning balance, weighted-average exercise price</a></td>
<td class="nump">$ 52.23<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted</a></td>
<td class="nump">55<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, weighted-average exercise price</a></td>
<td class="nump">$ 39.05<span></span>
</td>
<td class="nump">$ 44.86<span></span>
</td>
<td class="nump">$ 62.49<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue', window );">Vested, weighted-average exercise price</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited or expired</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue', window );">Forfeited or expired, weighted-average exercise price</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested ending balance outstanding</a></td>
<td class="nump">134<span></span>
</td>
<td class="nump">79<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested ending balance, weighted-average exercise price</a></td>
<td class="nump">$ 46.82<span></span>
</td>
<td class="nump">$ 52.23<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1D<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-1D<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480483/718-10-35-3<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(04)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(v)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_PerformanceSharesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>116
<FILENAME>R95.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609296352848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Employee Savings Plan - Additional Information (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan', window );">Minimum age to be eligible to defined contribution plan</a></td>
<td class="text">21 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent', window );">Maximum contribution by company expressed as percentage of employee pre-tax salary</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch', window );">Company match percent</a></td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent', window );">Percent of employee contribution</a></td>
<td class="nump">6.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CompanyContributionsVestAtEndOfOneYear', window );">Company contributions vest at end of one year</a></td>
<td class="nump">25.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CompanyContributionsVestAtEndOfTwoYear', window );">Company contributions vest at end of two years</a></td>
<td class="nump">50.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CompanyContributionsVestAtEndOfThreeYears', window );">Company contributions vest at end of three years</a></td>
<td class="nump">75.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CompanyContributionsVestAtEndOfFourYears', window );">Company contributions vest at end of four years</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanCostRecognized', window );">Company contributions to employee savings plan</a></td>
<td class="nump">$ 3,535<span></span>
</td>
<td class="nump">$ 3,392<span></span>
</td>
<td class="nump">$ 3,284<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CompanyContributionsVestAtEndOfFourYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Company contributions vest at end of four years.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CompanyContributionsVestAtEndOfFourYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CompanyContributionsVestAtEndOfOneYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Company Contributions Vest At End Of One Year</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CompanyContributionsVestAtEndOfOneYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CompanyContributionsVestAtEndOfThreeYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Company contributions vest at end of three years.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CompanyContributionsVestAtEndOfThreeYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CompanyContributionsVestAtEndOfTwoYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Company contributions vest at end of two year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CompanyContributionsVestAtEndOfTwoYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum age to be eligible to defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanCostRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost for defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480794/715-70-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanCostRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage employer matches of the employee's percentage contribution matched.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum percentage of employee gross pay the employee may contribute to a defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>117
<FILENAME>R96.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609098431664">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Additional Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic', window );">Domestic income from continuing operations before taxes</a></td>
<td class="nump">$ 35,253<span></span>
</td>
<td class="nump">$ 16,039<span></span>
</td>
<td class="nump">$ 48,546<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Foreign income from continuing operations before taxes</a></td>
<td class="nump">96,236<span></span>
</td>
<td class="nump">119,309<span></span>
</td>
<td class="nump">$ 202,149<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_UnrecognizedTaxBenefitsGross', window );">Unrecognized Tax Benefits, Gross</a></td>
<td class="nump">28,733<span></span>
</td>
<td class="nump">29,053<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability', window );">Unrecognized Tax Benefits, Gross, Noncurrent Liability</a></td>
<td class="nump">26,365<span></span>
</td>
<td class="nump">26,685<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes', window );">Unrecognized Tax Benefits, Gross, Offset to Tax Attributes</a></td>
<td class="nump">2,368<span></span>
</td>
<td class="nump">2,368<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued', window );">Interest and penalties, gross</a></td>
<td class="nump">4,997<span></span>
</td>
<td class="nump">$ 3,339<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves', window );">Minimum decrease in income tax expense due to release in reserves</a></td>
<td class="nump">2,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves', window );">Maximum decrease in income tax expense due to release in reserves</a></td>
<td class="nump">$ 4,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential', window );">Foreign tax rate differential</a></td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">6.00%<span></span>
</td>
<td class="nump">7.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense', window );">Income tax penalties and interest expense</a></td>
<td class="nump">$ 2,145<span></span>
</td>
<td class="nump">$ 1,032<span></span>
</td>
<td class="nump">$ 229<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxesPaidNet', window );">Income tax paid net</a></td>
<td class="nump">59,849<span></span>
</td>
<td class="nump">56,618<span></span>
</td>
<td class="nump">$ 57,016<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">1,306<span></span>
</td>
<td class="nump">339<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Deferred tax assets, valuation allowance</a></td>
<td class="nump">2,515<span></span>
</td>
<td class="nump">943<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsForeignTaxStructureChange', window );">Foreign tax structure deferred tax asset</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 437,500<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome', window );">GILTI tax basis differences</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 350,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Jurisdiction [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">1,306<span></span>
</td>
<td class="nump">1,720<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign', window );">Deferred Tax Assets, Tax Credit Carryforwards, Foreign</a></td>
<td class="nump">2,567<span></span>
</td>
<td class="nump">943<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Jurisdiction [Member] | Operating Loss Carryforward</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Deferred tax assets, valuation allowance</a></td>
<td class="nump">599<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Jurisdiction [Member] | Tax Credit Carryforward</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Deferred tax assets, valuation allowance</a></td>
<td class="nump">$ 1,916<span></span>
</td>
<td class="nump">943<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Jurisdiction [Member] | Revenue Commissioners, Ireland [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">12.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Jurisdiction [Member] | State Administration of Taxation, China [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">25.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Jurisdiction [Member] | KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Jurisdiction [Member] | JAPAN</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">34.60%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Domestic Tax Jurisdiction [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState', window );">Deferred Tax Assets, Tax Credit Carryforwards, State</a></td>
<td class="nump">$ 7,619<span></span>
</td>
<td class="nump">$ 8,740<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredTaxAssetsForeignTaxStructureChange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Foreign Tax Structure Change</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsForeignTaxStructureChange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Tax Credit Carryforwards, State</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Maximum decrease in income tax expense due to release in reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum decrease in income tax expense due to release in reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_UnrecognizedTaxBenefitsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecognized Tax Benefits, Gross</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_UnrecognizedTaxBenefitsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecognized Tax Benefits, Gross, Noncurrent Liability</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecognized Tax Benefits, Gross, Offset to Tax Attributes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign tax credit carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.1.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 applicable to statutory income tax expense (benefit) outside of the country of domicile.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxesPaidNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 23<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-23<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-22<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxesPaidNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TaxCreditCarryforwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TaxCreditCarryforwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis=cgnx_OperatingLossCarryforwardMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowanceByDeferredTaxAssetAxis=cgnx_OperatingLossCarryforwardMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowanceByDeferredTaxAssetAxis=cgnx_TaxCreditCarryforwardMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowanceByDeferredTaxAssetAxis=cgnx_TaxCreditCarryforwardMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_RevenueCommissionersIrelandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_RevenueCommissionersIrelandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_StateAdministrationOfTaxationChinaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityNameAxis=us-gaap_StateAdministrationOfTaxationChinaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityNameAxis=country_KP">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityNameAxis=country_KP</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityNameAxis=country_JP">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityNameAxis=country_JP</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>118
<FILENAME>R97.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096678704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Constituents of Provision for Income Taxes (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Current:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentFederalTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">$ 28,009<span></span>
</td>
<td class="nump">$ 29,084<span></span>
</td>
<td class="nump">$ 48,355<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="nump">4,524<span></span>
</td>
<td class="nump">3,544<span></span>
</td>
<td class="nump">5,689<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentForeignTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">12,795<span></span>
</td>
<td class="nump">9,207<span></span>
</td>
<td class="nump">10,243<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense (benefit), Total</a></td>
<td class="nump">45,328<span></span>
</td>
<td class="nump">41,835<span></span>
</td>
<td class="nump">64,287<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Deferred:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit', window );">Federal</a></td>
<td class="num">(22,273)<span></span>
</td>
<td class="num">(24,731)<span></span>
</td>
<td class="num">(40,772)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State</a></td>
<td class="num">(1,324)<span></span>
</td>
<td class="num">(5,877)<span></span>
</td>
<td class="num">(8,354)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">3,587<span></span>
</td>
<td class="nump">10,887<span></span>
</td>
<td class="nump">20,009<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income tax expense (benefit), Total</a></td>
<td class="num">(20,010)<span></span>
</td>
<td class="num">(19,721)<span></span>
</td>
<td class="num">(29,117)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense (benefit), continuing operations, Total</a></td>
<td class="nump">$ 25,318<span></span>
</td>
<td class="nump">$ 22,114<span></span>
</td>
<td class="nump">$ 35,170<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentFederalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentForeignTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentForeignTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredForeignIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>119
<FILENAME>R98.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609099240320">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureAbstract', window );"><strong>Income Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes', window );">State income taxes, net of federal benefit</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential', window );">Foreign tax rate differential</a></td>
<td class="num">(4.00%)<span></span>
</td>
<td class="num">(6.00%)<span></span>
</td>
<td class="num">(7.00%)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits', window );">Tax credits</a></td>
<td class="num">(3.00%)<span></span>
</td>
<td class="num">(3.00%)<span></span>
</td>
<td class="num">(1.00%)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent', window );">Taxation on multinational operations</a></td>
<td class="num">(0.05)<span></span>
</td>
<td class="num">(0.03)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent', window );">Tax reserves</a></td>
<td class="nump">0.01<span></span>
</td>
<td class="nump">0.03<span></span>
</td>
<td class="nump">0.01<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent', window );">Limitation on deduction for executive compensation</a></td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Discrete tax expense related to employee stock-based compensation</a></td>
<td class="num">(2.00%)<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements', window );">Discrete tax expense related to tax return filings</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(2.00%)<span></span>
</td>
<td class="num">(2.00%)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal', window );">Discrete tax expense related to rate revaluation on state tax assets</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(2.00%)<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent', window );">Discrete tax benefit related to GILTI adjustments</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(2.00%)<span></span>
</td>
<td class="nump">3.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Discrete tax benefit for release of valuation allowance</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent', window );">Effective Income Tax Rate Reconciliation, Audit Settlement, Percent</a></td>
<td class="num">(1.00%)<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings', window );">Effective Income Tax Rate Reconciliation, Repatriation of Foreign Earnings, Amount</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments', window );">Other</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations', window );">Income tax expense</a></td>
<td class="nump">19.00%<span></span>
</td>
<td class="nump">16.00%<span></span>
</td>
<td class="nump">14.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Audit Settlement, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Executive Compensation, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Tax Reserves, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Taxation on Multinational Operations, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of domestic federal statutory tax rate applicable to pretax income (loss).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.1.Q1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 changes in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(6)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 applicable to statutory income tax expense (benefit) outside of the country of domicile.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of reported income tax expense from difference to expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operations, attributable to global intangible low-taxed income (GILTI).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -SubTopic 740<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479176/718-740-35-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 applicable to state and local income tax expense (benefit), net of federal tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12A<br> -Subparagraph (a)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12A<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 income tax settlements. Including, but not limited to, domestic tax settlement, foreign tax settlement, state and local tax settlement, and other tax settlements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of 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 settlement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of the 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 repatriation of foreign earnings.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Subparagraph (b)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>120
<FILENAME>R99.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096433872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward', window );"><strong>Unrecognized Tax Benefits [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance of reserve for income taxes</a></td>
<td class="nump">$ 25,714<span></span>
</td>
<td class="nump">$ 13,647<span></span>
</td>
<td class="nump">$ 13,812<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions', window );">Reductions as a result of tax positions taken in prior periods</a></td>
<td class="num">(39)<span></span>
</td>
<td class="num">(242)<span></span>
</td>
<td class="num">(119)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions', window );">Additions as a result of tax positions taken in prior periods</a></td>
<td class="nump">208<span></span>
</td>
<td class="nump">12,556<span></span>
</td>
<td class="nump">2,850<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Additions as a result of tax positions taken in the current period</a></td>
<td class="nump">1,935<span></span>
</td>
<td class="nump">1,877<span></span>
</td>
<td class="nump">505<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities', window );">Reductions relating to settlements with taxing authorities</a></td>
<td class="num">(2,751)<span></span>
</td>
<td class="num">(1,230)<span></span>
</td>
<td class="num">(2,329)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations', window );">Reductions as a result of the expiration of the applicable statutes of limitations</a></td>
<td class="num">(1,331)<span></span>
</td>
<td class="num">(894)<span></span>
</td>
<td class="num">(1,072)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance of reserve for income taxes</a></td>
<td class="nump">$ 23,736<span></span>
</td>
<td class="nump">$ 25,714<span></span>
</td>
<td class="nump">$ 13,647<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10B<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482525/740-10-45-10B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from settlements with taxing authorities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 217<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-217<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>121
<FILENAME>R100.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094717136">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - Constituents of Deferred Tax Assets (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGrossAbstract', window );"><strong>Deferred tax assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure', window );">Intangible asset in connection with change in tax structure</a></td>
<td class="nump">$ 369,474<span></span>
</td>
<td class="nump">$ 375,360<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Stock-based compensation expense</a></td>
<td class="nump">22,428<span></span>
</td>
<td class="nump">20,916<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic', window );">Tax credit carryforwards</a></td>
<td class="nump">10,186<span></span>
</td>
<td class="nump">7,848<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsInventory', window );">Inventory and revenue related</a></td>
<td class="nump">8,355<span></span>
</td>
<td class="nump">10,897<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther', window );">Bonuses, commissions, and other compensation</a></td>
<td class="nump">6,949<span></span>
</td>
<td class="nump">6,243<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_NoncurrentDeferredTaxAssetsDeprecation', window );">Depreciation</a></td>
<td class="nump">2,877<span></span>
</td>
<td class="nump">1,840<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">1,306<span></span>
</td>
<td class="nump">339<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses', window );">Capitalization of R&amp;D expenses</a></td>
<td class="nump">35,948<span></span>
</td>
<td class="nump">28,521<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsOtherNoncurrent', window );">Other</a></td>
<td class="nump">4,624<span></span>
</td>
<td class="nump">5,514<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross', window );">Total deferred tax assets</a></td>
<td class="nump">462,147<span></span>
</td>
<td class="nump">457,478<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(2,515)<span></span>
</td>
<td class="num">(943)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsLiabilitiesNet', window );">Deferred Tax Assets, Net, Noncurrent</a></td>
<td class="nump">459,632<span></span>
</td>
<td class="nump">456,535<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesAbstract', window );"><strong>Deferred tax liabilities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">GILTI tax basis differences in connection with change in tax structure</a></td>
<td class="num">(254,213)<span></span>
</td>
<td class="num">(274,327)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets', window );">Non deductible federal and state liabilities</a></td>
<td class="num">(29,008)<span></span>
</td>
<td class="num">(28,685)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings', window );">Deferred Tax Liabilities, Undistributed Foreign Earnings</a></td>
<td class="nump">1,400<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome', window );">Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (350,000)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxLiabilities', window );">Deferred Tax Liabilities, Net</a></td>
<td class="num">(284,621)<span></span>
</td>
<td class="num">(303,012)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">$ 175,011<span></span>
</td>
<td class="nump">$ 153,523<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred income tax assets (liabilities), net</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredIncomeTaxAssetsLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Capitalization Of Research And Development Expenses</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Intangible Asset, Change in Tax Structure</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredTaxAssetsOtherNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred tax assets other non current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsOtherNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, With Jurisdictional Netting, Gross</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Liabilities, Amortization Of Intangible Assets</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_NoncurrentDeferredTaxAssetsDeprecation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Noncurrent deferred tax assets deprecation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_NoncurrentDeferredTaxAssetsDeprecation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsGrossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGrossAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences from compensation and benefits, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from undistributed earnings of subsidiary and other recognized entity not within country of domicile. Includes, but is not limited to, other basis differences.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>122
<FILENAME>R101.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097395232">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Weighted Average Shares - Calculation of Weighted Average Shares (Detail) - shares<br> shares in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic weighted-average common shares outstanding</a></td>
<td class="nump">171,438<span></span>
</td>
<td class="nump">172,249<span></span>
</td>
<td class="nump">173,407<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment', window );">Effect of dilutive stock options</a></td>
<td class="nump">1,173<span></span>
</td>
<td class="nump">1,150<span></span>
</td>
<td class="nump">1,462<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted weighted-average common and common-equivalent shares outstanding</a></td>
<td class="nump">172,611<span></span>
</td>
<td class="nump">173,399<span></span>
</td>
<td class="nump">174,869<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>123
<FILENAME>R102.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609106243520">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Weighted Average Shares - Additional Information (Detail) - shares<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember', window );">Stock Compensation Plan [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Stock options to purchase anti-dilutive common stock</a></td>
<td class="nump">8,496,599<span></span>
</td>
<td class="nump">6,854,092<span></span>
</td>
<td class="nump">4,715,104<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_RestrictedStockMember', window );">Restricted Stock [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Stock options to purchase anti-dilutive common stock</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">365<span></span>
</td>
<td class="nump">26,079<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_PerformanceSharesMember', window );">Performance Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount', window );">Stock options to purchase anti-dilutive common stock</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_RestrictedStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_PerformanceSharesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>124
<FILENAME>R103.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609094401728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment and Geographic Information - Additional Information (Detail)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($) </div>
<div>Segment</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>Segment</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NumberOfReportableSegments', window );">Number of reportable segments | Segment</a></td>
<td class="nump">1<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization', window );">Cost, Depreciation and Amortization | $</a></td>
<td class="nump">$ 12,524<span></span>
</td>
<td class="nump">$ 7,065<span></span>
</td>
<td class="nump">$ 6,270<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Total Revenue | Revenue from a single customer, percentage | Customer 2 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Maximum percentage of revenue accountability</a></td>
<td class="nump">10.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Total Revenue | Revenue from a single customer, percentage | Customer 1 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Maximum percentage of revenue accountability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember', window );">Accounts Receivable [Member] | Revenue from a single customer, percentage | Customer 2 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Maximum percentage of revenue accountability</a></td>
<td class="nump">10.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478785/954-310-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for allocation of cost of tangible and intangible assets over their useful lives directly used in production of good and rendering of service.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NumberOfReportableSegments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 47<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-47<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 54<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-54<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-18<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NumberOfReportableSegments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cgnx_Customer2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cgnx_Customer2Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cgnx_Customer1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cgnx_Customer1Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_AccountsReceivableMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>125
<FILENAME>R104.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097765792">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Revenues from External Customers and Long-Lived Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 914,515<span></span>
</td>
<td class="nump">$ 837,547<span></span>
</td>
<td class="nump">$ 1,006,090<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">103,472<span></span>
</td>
<td class="nump">112,937<span></span>
</td>
<td class="nump">86,357<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=country_US', window );">United States [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Revenues from External Customers and Long-Lived Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">306,766<span></span>
</td>
<td class="nump">288,324<span></span>
</td>
<td class="nump">343,835<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">56,948<span></span>
</td>
<td class="nump">62,946<span></span>
</td>
<td class="nump">66,928<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=srt_EuropeMember', window );">Europe [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Revenues from External Customers and Long-Lived Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">217,880<span></span>
</td>
<td class="nump">220,665<span></span>
</td>
<td class="nump">234,643<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">15,655<span></span>
</td>
<td class="nump">17,005<span></span>
</td>
<td class="nump">14,725<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=cgnx_GreaterChinaMember', window );">Greater China [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Revenues from External Customers and Long-Lived Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">164,147<span></span>
</td>
<td class="nump">164,115<span></span>
</td>
<td class="nump">227,447<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">14,844<span></span>
</td>
<td class="nump">17,028<span></span>
</td>
<td class="nump">1,334<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_StatementGeographicalAxis=cgnx_OtherGeographicAreaMember', window );">Other [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Revenues from External Customers and Long-Lived Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">225,722<span></span>
</td>
<td class="nump">164,443<span></span>
</td>
<td class="nump">200,165<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NoncurrentAssets', window );">Long-lived assets</a></td>
<td class="nump">$ 16,025<span></span>
</td>
<td class="nump">$ 15,958<span></span>
</td>
<td class="nump">$ 3,370<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Long-lived assets other than financial instruments, long-term customer relationships of a financial institution, mortgage and other servicing rights, deferred policy acquisition costs, and deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=country_US">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=country_US</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_EuropeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_EuropeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=cgnx_GreaterChinaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=cgnx_GreaterChinaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=cgnx_OtherGeographicAreaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=cgnx_OtherGeographicAreaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>126
<FILENAME>R105.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097515920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment and Geographic Information - Disaggregation of Segment Expenses (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 914,515<span></span>
</td>
<td class="nump">$ 837,547<span></span>
</td>
<td class="nump">$ 1,006,090<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostOfGoodsAndServicesSold', window );">Cost of revenue</a></td>
<td class="nump">288,721<span></span>
</td>
<td class="nump">236,306<span></span>
</td>
<td class="nump">284,185<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GrossProfit', window );">Gross margin</a></td>
<td class="nump">625,794<span></span>
</td>
<td class="nump">601,241<span></span>
</td>
<td class="nump">721,905<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Allocated Share-based Compensation Expense</a></td>
<td class="nump">52,443<span></span>
</td>
<td class="nump">54,768<span></span>
</td>
<td class="nump">54,505<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchAndDevelopmentExpense', window );">Research, development, and engineering expenses</a></td>
<td class="nump">139,815<span></span>
</td>
<td class="nump">139,400<span></span>
</td>
<td class="nump">141,133<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general, and administrative expenses</a></td>
<td class="nump">370,914<span></span>
</td>
<td class="nump">339,139<span></span>
</td>
<td class="nump">312,107<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_LossGainFromCatastrophes', window );">Loss (recovery) from fire</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(8,000)<span></span>
</td>
<td class="nump">20,779<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring Charges</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,657<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="nump">115,065<span></span>
</td>
<td class="nump">130,702<span></span>
</td>
<td class="nump">246,229<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax', window );">Foreign currency gain (loss)</a></td>
<td class="nump">1,531<span></span>
</td>
<td class="num">(10,039)<span></span>
</td>
<td class="num">(1,837)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentIncomeNonoperating', window );">Investment income</a></td>
<td class="nump">13,971<span></span>
</td>
<td class="nump">14,093<span></span>
</td>
<td class="nump">6,715<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other income (expense)</a></td>
<td class="nump">922<span></span>
</td>
<td class="nump">592<span></span>
</td>
<td class="num">(412)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest', window );">Income before income tax expense</a></td>
<td class="nump">131,489<span></span>
</td>
<td class="nump">135,348<span></span>
</td>
<td class="nump">250,695<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxExpenseBenefit', window );">Income tax expense on continuing operations</a></td>
<td class="nump">25,318<span></span>
</td>
<td class="nump">22,114<span></span>
</td>
<td class="nump">35,170<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetIncomeLoss', window );">Net income</a></td>
<td class="nump">106,171<span></span>
</td>
<td class="nump">113,234<span></span>
</td>
<td class="nump">215,525<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=cgnx_ResearchDevelopmentAndEngineeringExpensesMember', window );">Research, Development and Engineering Expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LaborAndRelatedExpense', window );">Labor and Related Expense</a></td>
<td class="nump">79,544<span></span>
</td>
<td class="nump">78,762<span></span>
</td>
<td class="nump">76,448<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions', window );">Incentive Compensation Expense, Bonus And Sales Commissions</a></td>
<td class="nump">4,711<span></span>
</td>
<td class="nump">1,446<span></span>
</td>
<td class="nump">3,447<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Allocated Share-based Compensation Expense</a></td>
<td class="nump">14,628<span></span>
</td>
<td class="nump">16,480<span></span>
</td>
<td class="nump">17,693<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation, Depletion and Amortization</a></td>
<td class="nump">3,229<span></span>
</td>
<td class="nump">3,056<span></span>
</td>
<td class="nump">2,649<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherExpenses', window );">Other Expenses</a></td>
<td class="nump">37,703<span></span>
</td>
<td class="nump">39,656<span></span>
</td>
<td class="nump">40,896<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementBusinessSegmentsAxis=cgnx_SegmentGeneralAndEngineeringExpenseMember', window );">Segment, General, And Engineering Expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingInformationLineItems', window );"><strong>Segment Reporting Information [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LaborAndRelatedExpense', window );">Labor and Related Expense</a></td>
<td class="nump">179,898<span></span>
</td>
<td class="nump">166,612<span></span>
</td>
<td class="nump">150,696<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions', window );">Incentive Compensation Expense, Bonus And Sales Commissions</a></td>
<td class="nump">45,565<span></span>
</td>
<td class="nump">35,513<span></span>
</td>
<td class="nump">40,716<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Allocated Share-based Compensation Expense</a></td>
<td class="nump">35,849<span></span>
</td>
<td class="nump">36,309<span></span>
</td>
<td class="nump">34,796<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DepreciationDepletionAndAmortization', window );">Depreciation, Depletion and Amortization</a></td>
<td class="nump">16,936<span></span>
</td>
<td class="nump">11,759<span></span>
</td>
<td class="nump">10,702<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherExpenses', window );">Other Expenses</a></td>
<td class="nump">$ 92,666<span></span>
</td>
<td class="nump">$ 88,946<span></span>
</td>
<td class="nump">$ 75,197<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Incentive Compensation Expense, Bonus And Sales Commissions</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_LossGainFromCatastrophes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Loss (Gain) From Catastrophes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_LossGainFromCatastrophes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllocatedShareBasedCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 14.F)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479830/718-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllocatedShareBasedCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CostOfGoodsAndServicesSold">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CostOfGoodsAndServicesSold</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DepreciationDepletionAndAmortization">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DepreciationDepletionAndAmortization</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before tax, of realized and unrealized gain (loss) from foreign currency transaction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482014/830-20-35-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481956/830-20-45-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481926/830-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481839/830-10-45-17<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyTransactionGainLossBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GrossProfit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 9: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 14: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 23: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GrossProfit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(11))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 9: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 235<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-05(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477314/942-235-S99-1<br><br>Reference 11: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(10))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 12: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-12<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 231<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482663/740-10-55-231<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479360/740-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482685/740-10-50-10<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Subparagraph (a)<br> -SubTopic 20<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482659/740-20-45-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h))<br> -SubTopic 10<br> -Topic 235<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentIncomeNonoperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of income from investments (for example, dividends) not considered a component of the entity's core operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentIncomeNonoperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LaborAndRelatedExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LaborAndRelatedExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-9<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147476176/805-60-65-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 323<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (g)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478666/740-323-65-2<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(20))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(g)(1)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 323<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481687/323-10-50-3<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 28<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482907/825-10-50-28<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482765/220-10-50-6<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 1<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480175/815-40-65-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-8<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-11<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483443/250-10-50-4<br><br>Reference 17: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479168/946-830-55-10<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479105/946-220-45-7<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-04(18))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147477250/944-220-S99-1<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-1<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(1)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479134/946-220-S99-3<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 23: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(ii))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1A<br> -Subparagraph (SX 210.13-01(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1A<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(i))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(A))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iii)(B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 30: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(4)(iv))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 470<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1B<br> -Subparagraph (SX 210.13-02(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480097/470-10-S99-1B<br><br>Reference 32: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 60B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482689/260-10-45-60B<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 205<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483499/205-20-50-7<br><br>Reference 34: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 35: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1A<br><br>Reference 36: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1B<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482790/220-10-45-1B<br><br>Reference 37: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 942<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-04(22))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478524/942-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The net result for the period of deducting operating expenses from operating revenues.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 31<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-31<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingIncomeLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 48<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-48<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 985<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481283/985-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 730<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482916/730-10-50-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 912<br> -SubTopic 730<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479532/912-730-25-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ResearchAndDevelopmentExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4.b.1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-2<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482047/420-10-45-3<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479823/420-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 41<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-41<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 270<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482964/270-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (ee)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 32<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-32<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 924<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 11.L)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479941/924-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-5<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 30<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-30<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-42<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 40<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-40<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 22<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482810/280-10-50-22<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479806/606-10-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SegmentReportingInformationLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SegmentReportingInformationLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SellingGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate total 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=cgnx_ResearchDevelopmentAndEngineeringExpensesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=cgnx_ResearchDevelopmentAndEngineeringExpensesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementBusinessSegmentsAxis=cgnx_SegmentGeneralAndEngineeringExpenseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementBusinessSegmentsAxis=cgnx_SegmentGeneralAndEngineeringExpenseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>127
<FILENAME>R106.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609096256624">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Acquisitions - Moritex Narrative (Details)<br> &#165; in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="3">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Oct. 18, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Oct. 18, 2023 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2024 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Oct. 18, 2023 </div>
<div>JPY (&#165;)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments related to business acquisitions</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 1,444<span></span>
</td>
<td class="nump">$ 257,056<span></span>
</td>
<td class="nump">$ 5,050<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember', window );">Moritex Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_BusinessCombinationEnterpriseValue', window );">Enterprise value</a></td>
<td class="nump">$ 270,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 40,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price</a></td>
<td class="nump">296,138<span></span>
</td>
<td class="nump">&#165; 44,376,245<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesGross', window );">Cash paid in purchase price</a></td>
<td class="nump">295,144<span></span>
</td>
<td class="nump">&#165; 44,227,414<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 994<span></span>
</td>
<td class="nump">&#165; 148,831<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash acquired</a></td>
<td class="nump">38,088<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Payments related to business acquisitions</a></td>
<td class="nump">257,056<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts', window );">Business Acquisition, Transaction Costs</a></td>
<td class="nump">$ 5,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillPurchaseAccountingAdjustments', window );">Goodwill, Measurement Period Adjustment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6,478<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_BusinessCombinationEnterpriseValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business Combination, Enterprise Value</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_BusinessCombinationEnterpriseValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of direct costs of the business combination including legal, accounting, and other costs incurred to consummate the business acquisition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationConsiderationTransferred1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 8<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479637/805-30-30-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 7<br> -SubTopic 30<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479637/805-30-30-7<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationConsiderationTransferred1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions, 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillPurchaseAccountingAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from measurement period adjustment of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 16<br> -SubTopic 10<br> -Topic 805<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479405/805-10-25-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillPurchaseAccountingAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479581/805-30-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482740/230-10-45-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>128
<FILENAME>R107.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097516912">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Business Acquisitions - Moritex Purchase Price Allocation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Oct. 18, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 384,937<span></span>
</td>
<td class="nump">$ 393,181<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 242,630<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember', window );">Moritex Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash and cash equivalents</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 38,088<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Accounts receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,543<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventories</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">21,882<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property, plant and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,805<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">151,525<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets', window );">Deferred income tax assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,162<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets', window );">Other assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">3,363<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(6,639)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities', window );">Accrued expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(14,718)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities', window );">Deferred income tax liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(22,665)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes', window );">Reserve for income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,864)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther', window );">Other liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,294)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">296,138<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember', window );">Moritex Corporation | Customer relationships</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">64,800<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember', window );">Moritex Corporation | Completed technologies</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">32,300<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember', window );">Moritex Corporation | Trademarks</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 850<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Reserve for Income Taxes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions, 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.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of identifiable intangible assets recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of inventory recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of other liabilities due after one year or the normal operating cycle, if longer, assumed at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of other assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of property, plant, and equipment recognized as of the acquisition date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 10<br> -Section 55<br> -Paragraph 37<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479303/805-10-55-37<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 805<br> -SubTopic 20<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147479907/805-20-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Goodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 49<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482785/280-10-55-49<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482548/350-20-55-24<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 100<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482078/820-10-55-100<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481372/852-10-55-10<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(15))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480566/210-10-S99-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482598/350-20-45-1<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 8: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (h)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482573/350-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(10)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147478546/942-210-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_Goodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>129
<FILENAME>R108.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097089232">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Loss from Fire (Details) - Fire - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnusualOrInfrequentItemLineItems', window );"><strong>Unusual or Infrequent Item, or Both [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossFromCatastrophes', window );">Loss from Catastrophes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,779<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_GrossLossFromCatastrophes', window );">Gross Loss from Catastrophes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">48,339<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InsuranceRecoveries', window );">Insurance Recoveries</a></td>
<td class="nump">$ 8,000<span></span>
</td>
<td class="nump">$ 27,560<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_InsuranceRecoveriesBusinessInterruption', window );">Insurance Recoveries, Business Interruption</a></td>
<td class="nump">2,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses', window );">Insurance Recoveries, Lost Inventory And Other Losses</a></td>
<td class="nump">$ 5,500<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_GrossLossFromCatastrophes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Gross Loss from Catastrophes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_GrossLossFromCatastrophes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_InsuranceRecoveriesBusinessInterruption">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Insurance Recoveries, Business Interruption</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_InsuranceRecoveriesBusinessInterruption</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Insurance Recoveries, Lost Inventory And Other Losses</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InsuranceRecoveries">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount recovered from insurance. These recoveries reduce costs and losses that are reported as a separate line item under operating expenses.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InsuranceRecoveries</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LossFromCatastrophes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The charge against earnings in the period for the uninsured portion of a loss from a fire, explosion, or natural disaster (hurricane, earthquake).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(9))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossFromCatastrophes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnusualOrInfrequentItemLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnusualOrInfrequentItemLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnusualOrInfrequentItemAxis=us-gaap_FireMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnusualOrInfrequentItemAxis=us-gaap_FireMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>130
<FILENAME>R109.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609098386928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Events - (Details) - $ / shares<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Feb. 12, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events</a></td>
<td class="text">Subsequent Events<div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 12, 2025, the Company's Board of Directors declared a cash dividend of $0.080 per share. The dividend is payable March 13, 2025 to all shareholders of record as of the close of business on February 27, 2025.</span></div><span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsPayableAmountPerShare', window );">Dividends Payable, Amount Per Share</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.080<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DividendsPayableAmountPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The per share amount of a dividend declared, but not paid, as of the financial reporting date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147482913/230-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DividendsPayableAmountPerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147481674/830-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org/855/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>131
<FILENAME>R110.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.25.0.1</span><table class="report" border="0" cellspacing="2" id="idm45609097188688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule II -Valuation and Qualifying Accounts (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2024</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at Beginning of Period</a></td>
<td class="nump">$ 583<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at End of Period</a></td>
<td class="nump">827<span></span>
</td>
<td class="nump">$ 583<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_UncollectibleReceivablesMember', window );">Reserve for Uncollectible Accounts Receivable and Sales Return [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at Beginning of Period</a></td>
<td class="nump">583<span></span>
</td>
<td class="nump">730<span></span>
</td>
<td class="nump">$ 776<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Charged&#160;to Costs and Expenses</a></td>
<td class="nump">459<span></span>
</td>
<td class="nump">500<span></span>
</td>
<td class="nump">191<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Deductions</a></td>
<td class="num">(222)<span></span>
</td>
<td class="num">(645)<span></span>
</td>
<td class="num">(237)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesAdjustments', window );">Other</a></td>
<td class="nump">7<span></span>
</td>
<td class="num">(2)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at End of Period</a></td>
<td class="nump">827<span></span>
</td>
<td class="nump">583<span></span>
</td>
<td class="nump">730<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_SalesReturnsAndAllowancesMember', window );">Sales Returns and Allowances [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at Beginning of Period</a></td>
<td class="nump">2,018<span></span>
</td>
<td class="nump">1,518<span></span>
</td>
<td class="nump">1,518<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Charged&#160;to Costs and Expenses</a></td>
<td class="nump">500<span></span>
</td>
<td class="nump">500<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts', window );">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Deductions</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesAdjustments', window );">Other</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at End of Period</a></td>
<td class="nump">2,518<span></span>
</td>
<td class="nump">2,018<span></span>
</td>
<td class="nump">1,518<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember', window );">Deferred Tax Valuation Allowance [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at Beginning of Period</a></td>
<td class="nump">943<span></span>
</td>
<td class="nump">7,661<span></span>
</td>
<td class="nump">8,188<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Charged&#160;to Costs and Expenses</a></td>
<td class="nump">1,572<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">2,234<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts', window );">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">3,889<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Deductions</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(6,718)<span></span>
</td>
<td class="num">(6,650)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesAdjustments', window );">Other</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at End of Period</a></td>
<td class="nump">$ 2,515<span></span>
</td>
<td class="nump">$ 943<span></span>
</td>
<td class="nump">$ 7,661<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MovementInValuationAllowancesAndReservesRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MovementInValuationAllowancesAndReservesRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in valuation and qualifying accounts and reserves from adjustment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column C)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in valuation and qualifying accounts and reserves from charge to accounts other than cost and expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column C)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesDeductions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column D))<br> -Publisher FASB<br> -URI https://asc.fasb.org/1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesDeductions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_UncollectibleReceivablesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_UncollectibleReceivablesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_SalesReturnsAndAllowancesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_SalesReturnsAndAllowancesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>132
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( .\S35H'04UB@0   +$    0    9&]C4')O<',O87!P+GAM
M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG
M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGD<Z,STA)8*O4'J@)I9GF
M3?X.CD:?<@X>K7A.YNJQ<&4GPZ4A!0W_<FW>J=0U[R;UEA_6\#MI7E!+ P04
M    " #O,TU:KF4"H^T    K @  $0   &1O8U!R;W!S+V-O<F4N>&ULS9+!
M2L0P$(9?17)OIVE1,'1S43PI""XHWD(RNQMLFI",M/OVIG&WB^@#>,S,GV^^
M@>EU$-I'?(X^8"2+Z6IVPYB$#AMV( H"(.D#.I7JG!AS<^>C4Y2?<0]!Z0^U
M1VB;Y@8<DC**%"S *JQ$)GNCA8ZHR,<3WN@5'S[C4&!& P[H<*0$O.; Y#(Q
M'.>AAPM@@1%&E[X+:%9BJ?Z)+1U@I^2<[)J:IJF>NI++.W!X>WI\*>M6=DRD
M1HWY5[*"C@$W[#SYM;N[WSXPV3;M==6T%>^VG(N."W[[OKC^\+L(.V_LSOYC
MX[.@[.'77<@O4$L#!!0    ( .\S35J97)PC$ 8  )PG   3    >&PO=&AE
M;64O=&AE;64Q+GAM;.U:6W/:.!1^[Z_0>&?V;0O&-H&VM!-S:7;;M)F$[4X?
MA1%8C6QY9)&$?[]'-A#+E@WMDDVZFSP$+.G[SD5'Y^@X>?/N+F+HAHB4\GA@
MV2_;UKNW+][@5S(D$4$P&:>O\, *I4Q>M5II ,,X?<D3$L/<@HL(2W@4R]9<
MX%L:+R/6ZK3;W5:$:6RA&$=D8'U>+&A T%116F]?(+3E'S/X%<M4C66C 1-7
M02:YB+3R^6S%_-K>/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-;88<G;CL3<CH<9T)\S_;VD:4E
M,L_O^0KK3CQG'U:6L%W/S^2>C'(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;S<HY=8%0&7&-\TJC4LQ=9XE<#QK9P\
M'1,2S90+!D&&ER0F$JDY?DU($_XKI=K^G-- \)0O)/I*D8]ILR.G=";-Z#,:
MP4:O&W6':-(\>OX%^9PU"AR1&QT"9QNS1B&$:;OP'J\DCIJMPA$K0CYB&38:
M<K46@;9QJ81@6A+&T7A.TK01_%FL-9,^8,CLS9%USM:1#A&27C="/F+.BY 1
MOQZ&.$J:[:)Q6 3]GE[#2<'H@LMF_;A^AM4S;"R.]T?4%TKD#R:G/^DR- >C
MFED)O816:I^JAS0^J!XR"@7QN1X^Y7IX"C>6QKQ0KH)[ ?_1VC?"J_B"P#E_
M+GW/I>^Y]#VATK<W(WUGP=.+6]Y&;EO$^ZXQVM<T+BAC5W+-R,=4KY,IV#F?
MP.S]:#Z>\>WZV22$KYI9+2,6D$N!LT$DN/R+RO JQ GH9%LE"<M4TV4WBA*>
M0AMNZ5/U2I77Y:^Y*+@\6^3IKZ%T/BS/^3Q?Y[3-"S-#MW)+ZK:4OK4F.$KT
ML<QP3A[+##MG/)(=MG>@'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<K2<15.+]%,[82EQB\X^;'
M<4Y3N!)VM@\",KF[.:EZ93%GIO+?+0P)+%N(61+B35WMU>>;G*YZ(G;ZEW?!
M8/+]<,E'#^4[YU_T74.N?O;=X_INDSM(3)QYQ1$!=$4"(Y4<!A87,N10[I*0
M!A,!S93)1/ "@F2F'("8^@N]\@RY*17.K3XY?T4L@X9.7M(E$A2*L P%(1=R
MX^_ODVIWC-?Z+(%MA%0R9-47RD.)P3TS<D/85"7SKMHF"X7;XE3-NQJ^)F!+
MPWING2TG_]M>U#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[S--6FU2PH0;!P  22X  !@   !X;"]W;W)K<VAE971S+W-H965T,2YX;6RU
MFFMSFS@4AO^*QMO9:6?B&(1O[2:><7#<9MLFWCB];6<_R"#;3 !YA<CEW^\!
M;#!9(4-'[H?:V)S7\$02[POG[)'Q^VA-J4!/@1]&YZVU$)MWG4[DK&E HE.V
MH2%\LV0\( (V^:H3;3@E;EH4^!UL&/U.0+RP-3I+/YOQT1F+A>^%=,91% <!
MX<\7U&>/YRVSM?O@UENM1?)!9W2V(2LZI^++9L9AJY.KN%Y P\AC(>)T>=X:
MF^\FUB I2/?XZM'':.\]2DYEP=A]LG'EGK>,Y(BH3QV12!!X>: V]?U$"8[C
MWZUH*__-I'#__4Y]FIX\G,R"1-1F_C?/%>OSUK"%7+HDL2]NV>,'NCVA7J+G
M,#]*_T>/V;X]JX6<.!(LV!;#$01>F+V2IRV(O8*N45& MP7X18'9K2BPM@76
MRX)>14%W6]!-R62GDG*8$$%&9YP](I[L#6K)FQ1F6@VG[X7)WWTN.'SK09T8
MV>R!<C2#/S%JHR_S"7K]ZLU91X!R\GW'V:I<9"JX0L7$Z#,+Q3I"EZ%+W;)
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
M%81QT/M[SM71, >T_3KY"U!+ P04    " #O,TU:@R0 UE,&  #R&@  &
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
M6J3%X9*'$9<Y .[/A= O)_D#MI^Y1O\#4$L#!!0    ( .\S35K1E:C_7P0
M -8/   8    >&PO=V]R:W-H965T<R]S:&5E=#0N>&ULK5==;Z,X%/TK%ANM
M6BDIV$!(NDFD-F0TD;8?:CJS#ZM]<,$)[ #.VD[2[J]?VZ0T 8>I5GD!#/<>
M?(ZOK^\=[2C[P1-"!'C-LX*/K42(];5M\R@A.>97=$T*^65)68Z%'+*5S=>,
MX%@[Y9F-'*=OYS@MK,E(OWMDDQ'=B"PMR",#?)/GF+W=DHSNQA:TWE\\I:M$
MJ!?V9+3&*[(@XMOZD<F17:'$:4X*GM(",+(<6S?P.H2N<M 6WU.RXP?/0%%Y
MH?2'&LSCL>6H&9&,1$)!8'G;DBG),H4DY_'/'M2J_JD<#Y_?T;]H\I+,"^9D
M2K,_TE@D8VM@@9@L\2833W3WE>P)^0HOHAG75[#;VSH6B#9<T'SO+&>0IT5Y
MQZ][(0X<8/^$ ]H[H+J#=\+!W3NXGW7P]@Z>5J:DHG4(L<"3$:,[P)2U1%,/
M6DSM+>FGA5KWA6#R:RK]Q&3Z<+]X^'T>WCS/0K!XEK>[V?WS CQ\ =.'N\>G
MV=?9_6+^?0;F]W(\ SWP;1&"B\XEZ("T ,\)W7!<Q'QD"SD;A6E'^S_?EG]&
M)_X,$;BCA4@XF!4QB8\!;$FCXH+>N=RB5L201%? A5V '.09)C3]O+MK< \_
M[XY:V+C5RK@:SSV!MQ!8$+G#!*!+,*6YW-:)VF]; N9%1',"_KQYX8+)G?.7
M2?T2W3.CJW1RS=<X(F-+ G/"ML2:_/H+[#N_F90[)UAX)K C5;U*5:\-?7(O
M4VFJY3-I5OKZVE=ES.T$.GT8P)&]/53#8 9=Y'K'9F'3#$'?1WYE=L3 KQCX
MK7%QL\5IAE\RTI-9O\=Q1B2A+>%"Q0J_-M'RSQD*YP0+SP1V)&2_$K+_TU#8
M%/*PS-)_20Q6\I $%QGE_+(+"J*WG<"OZM:!7>3Y7=#QNNY@V 4RX8'.A=\=
M>NZERH(JWY1IH_RF,D!7GHI\3?2QEKV95J6<7?\@/-R!,ZR%6M,(.KX3U"*M
M:=634>LC<Z0%E4!!JT!/),HPY^DRC; ^I*442IA*L@NEV250FDD9!)4'%F,Z
M8ZT)TR[&<R%HS'908]VT@$._OKT,1H,3C <5X\%/0R)*<+$BDF0F\V\,)"O<
MNN-,# >&I86U19LVC2#R^K5<$S:M>K _#!PST6%%=-B:1&3-)"NB8K]@T1N0
MYTC!LW*9<?SWIBV=#,^93LX)%IX)[$A2Z'R44DYK]+2*>I!>C+62TUQG%R*_
MOC,,=A#ZCE.+&A.<YPY.'#WPH%J$_V.#+#\934;B\)/$FW9&X@:X%N+H@SAJ
M)?X@$L) =%2&E76$X<PP\D3-B:' \^JUA<$.N<-&6C#"0=<_1?2CZH2MY=?D
MF0J<&8D:6;F-&B<8!*Y3)]4T@VX@<WJ=E<%NZ,%&MK,/&IZ<L)5N'+F<]:80
M9;]0O:V:TQO=DM7>WZJF53=2'S!EQWN'V2HM.,C(4D(Z5X&<%"N;R'(@Z%JW
M52]4R"9-/R:R\29,&<CO2TK%^T#]H&KE)_\!4$L#!!0    ( .\S35J@5RXH
MQ@(  .D&   8    >&PO=V]R:W-H965T<R]S:&5E=#4N>&ULK57?;]HP$/Y7
M3EDUM=)H( E=VT$D(%1%&C_4T.YAVH-)+B2J8S/;0+>_?G82,MI"U8>^Q#[[
MOL]WY]SGSI:+1YDB*GC**9-=*U5J=6W;,DHQ)_*<KY#IG82+G"AMBJ4M5P))
M7(!R:CO-YH6=DXQ9?J=8FPF_P]>*9@QG N0ZSXGXTT?*MUVK9>T6[K)EJLR"
M[7=69(DAJOO53&C+KEGB+$<F,\Y 8-*U>JWKP#/^A<-#AENY-P>3R8+S1V.,
MXJ[5- $AQ4@9!J*'#0Z04D.DP_A=<5KUD0:X/]^QWQ2YZUP61.* TQ]9K-*N
M=6E!C E94W7'M[=8Y=,V?!&GLOC"MO)M6A"MI>)Y!=81Y!DK1_)4U6$/T+HX
M G J@/,2X!T!N!7 ?2_ JP!%J>TRE:(. 5'$[PB^!6&\-9N9%,4LT#K]C)EK
M#Y70NYG&*7\PG833[Z.@-Q\&$,[U,!Y.YB%,;V P'<_NAK?#23AZ&,)HHNTA
MG,Z(0*925%E$Z!DTX#X,X/3D#$X@8S!/^5H2%LN.K71TY@P[JB+IEY$X1R)I
M.3#FFEG"D,48/R>P=5IU;LXNM[[S)F. T3FXK2_@-!WO0$"#]\/= _#@_7#G
MC6S<^J;<@L\]PA<JHE WG *>P(#GNLM3TWX;A!&+>([PL[>02NA.^G6H^B6[
M=YC=J,NU7)$(NY8FEB@V:/F?/[4NFM\.5>XCR8(/(GM65:^NJO<6NS\G3X!)
MHE7(E'7-M'32["_&L-22":>42WD&1I\V)*-D0;&AI;8A"47]NV]0*G,C!__V
M\MQV<:X1WXW^P[UVQ][LU_&UD^=>7CUW"EX[-=I7GEM[E8G;>R*0HU@68BHA
MXFNFRIZI5VN][A4R]6*]KW6\E-W_-.4C,"9BF3$)%!--V3S_JF,2I;"6AN*K
M0FH67&GA*J:I?HM0& >]GW"N=H8YH'[=_']02P,$%     @ [S--6@U."#;"
M!P  F"$  !@   !X;"]W;W)K<VAE971S+W-H965T-BYX;6RU6FUOVS80_BN$
M&^P%<&J^Z#5-#*1)MQ78VJ!IM\^,S,1"9=&5Z*3=K]]1<BQ9/-$NT %%(]G'
MTW/'XST/*9\_Z>ISO53*D*^KHJPO)DMCUF>S69TMU4K6+_5:E?#-O:Y6TL!M
M]3"KUY62BV;0JIAQ2J/92N;E9'[>?'93S<_UQA1YJ6XJ4F]6*UE]>ZT*_70Q
M89/G#S[D#TMC/YC-S]?R0=TJ\VE]4\'=;.=ED:]46>>Z))6ZOYA<LK.KH!G0
M6/R=JZ>Z=TUL*'=:?[8W;Q<7$VH1J4)EQKJ0\.=17:FBL)X QY>MT\GNF79@
M__K9^V]-\!#,G:S5E2[^R1=F>3%))F2A[N6F,!_TTQ]J&U!H_66ZJ)O_R=/6
MEDY(MJF-7FT' X)57K9_Y==M(GH#6# R@&\'\&,'B.T T03:(FO"NI9&SL\K
M_40J:PW>[$63FV8T1).7=AIO307?YC#.S*_>O[M]_^?;Z\N/;Z[)Z\L_+]]=
MO2&W?[QY\_&6G))/M]?DEY-?R0G)2_)QJ3>U+!?U^<S D^WX6;9]RNOV*7SD
M*=<J>TD$FQ).>8 ,OSI^N-@?/H-X=T'S7="\\2?&@MY4E2H-D76M3'V&Q=,Z
M"' '=FV=U6N9J8L)+)Y:58]J,O_I!8OH*RRZ'^1L+U:QBU7XO,^O9+TD,&LD
MLQ?JRR9_E 4$C\YBZRIL7-D&\#AG2413F++'?CRN&4Q,%(8[LSVDP0YIX$>Z
MG96\?%2U65F,4R)7NC+YOPKPZ]H0?4].(CJ->=C$=,($G\9I:LO3EE;SH2V2
M*;28>JV:'E%\ S<%]"M99HI YR-9I1:Y(86&^:\;G]3Q@*6GQ1_UX@[3-(P&
MV7&M&$]%RO'LA+OLA-[L7&:9WD!*(+!,P1S>%>IP6 F/VSR%B3B0(RS>T(TD
M$"),!P$C9BQ@48 ''.T"CKP!?RKO\J* B:_4HRHW"@,8.4\6M%>&+3S7B =T
M9#;B';C8"^XMU&AI=)4K=!W%;D;"..3Q !EB%G&>C*RC9(<M\6*[J=1:Y@NB
MO@+7VTJP$Z[-4D&%[#4^#'GB0(J$B(<ECE@E-$UQW.D.=^K%_5$;61P!,74?
MSH2(ALE%S.(D36,<)*,=85(OS'>Z/,V.;%4B"*=4B'8-\A :5^IVFO^G5VVC
MV%L; 4W29) FQ(X' 1=T)$\]8<$.E"%HS<I 0.M"EF;:H+7\L[;YFI)2&10W
M<_"D21 ,%S5BQFB8!",UR#IIP+QL/'\/H*7)RP=2*)"'GCK<.MJO,,&':P4Q
MBT/&1A8YZWB=^8G]=ZT73] A46C"G7S(C1BN$<PN%2QA(^ Z*F=^+G];&ED^
MY$!2VP2.S[=+ERF-DJ'D0,P8T&HXTL=91ZO,SZO7ZE[!8E[ HLKT2A$CO^(]
MG;DT!Z3.(F>^7;N 4O@W@K3C0^8GQ/=-"_?4HTMT(74X![&*:9*,@.OXD/D)
ML6W>'G (UZ4I<!T=XG,-.65QPL9FNJ-%EARE^HM<@K+(#7 W*OV9EUZ_5_O_
M*&_[07><RORDNI.-:_G-:D8T8)<J14(#I[!=,\Z"<$3F\8Y0N9]0 6*U49U>
M0;=C+DO%+(Z&Q8.9<1&/0>RXC/NY[!GBH1[!75;B890,R0LQ8U%*1Z0)[VUK
M_=RUZV5;R=SN^YI#!.@<"[76=8XO3^Z2%,@5X0!WS00+^0B7\8[+N)_+AJ3;
M6Z(H6I>VDB0<4@9BE49\K!8Z:N-^:MN7J8>0(K05I;"ZAE@1NY ER1C:CMZX
MG][Z:E5_9Y9=(@.A'8DA=,0L2>.Q8N[HCOOI[FABYL@&C\7,V0=B=D&4C"+M
MN(_[N>]#V[<;N7X0+$)OD8@<K)A9-+8SY!T'<O_>L%\.\MBFYN[VG/)U35@B
MQ(BJX!U[<3][M9+G4)VZO,1HPH<0$?8:V[&*CKN$G[O:9G  H'!9*8A#X>QI
M$+N0"1J-*$?1T9?PT]>57JWR=IO:4H(N;1M090:(R2_OM%&$L5]1[%[/N'PA
MF [Z 8[VH^]84?A9\7)CEKIJ-N;U4E8V8MA MY=XS"[+@7RG=%CUA^WV$?>.
M;/UT>%,]]SZ@[NPS:+>*/,H""-TB7^BBD!4H.E@:311X$.TCXOZJ?4G9,(0#
M5OL!=!PI J_4OK6PEKI8J*K^Z44"[?A5L_4WWU#%+;R,^[V*^T=YVX^]8USA
M9]S!Y$W)B<UH;PY/25>19P0JYKDL#QT,E7IG6=>V<S<'>QM3PUY[ >L936WH
MG-4[9>PSV4]"1]["3]ZVX^BRGP'*>REH:H*]VDN$H'1*CT\&GH(SPF(Z#40[
M#E3 -$S3XURBV4,.F -G#6%&8B2#G:@0?E%QN5CD]D4GT(L]S3T%\)E<YT W
M*%!D>TU3&HGA<1]J*&(^=B N.FDA_-+B@S(2/H)]G*Q*F J<"EVA$*2IH$-1
MB=B%C(>C:>T4A3BX']ZL-H4T:G<FKE?0!Y;VS31H.'O.VIQ5V:-6D$1H$*Z4
M.(UY' ^/6C"[(!0BPH,(.M41'*,ZZM$FB[Z[<L4%[##BD Y5"&I(0;",5$C0
MR9# +T,<L=2LQ'X8/_L"8.[+2?0$"3'$3Y!FO=?F]C<+?\GJ(2]KV!W=PTCZ
M,@875?LS@/;&Z'7S)OU.&]A2-Y=+)0&X-8#O[S4HJ>V-?3F_^S'&_#]02P,$
M%     @ [S--6MBB(;"C P  @PP  !@   !X;"]W;W)K<VAE971S+W-H965T
M-RYX;6RMEVUOXC@0Q[^*E5N=6JG;/!$>>H!$:5>[TFX7+=V]%Z=[89*!6'5B
MSG9@]S[]C9,T)1 "K8X7$#LS__QF,O:8X5;()Q4#:/(SX:D:6;'6ZQO;5F$,
M"5778@TIWED*F5"-0[FRU5H"C7*GA-N>XW3MA++4&@_SN9D<#T6F.4MA)HG*
MDH3*7[? Q79DN=;SQ#>VBK69L,?#-5W!'/3W]4SBR*Y4(I9 JIA(B83ER)JX
M-U/7-PZYQ0\&6[5S34PH"R&>S.!3-+(<0P0<0FTD*/YL8 J<&R7D^*<4M:IG
M&L?=ZV?U#WGP&,R"*I@*_B>+=#RR^A:)8$DSKK^)[4<H PJ,7BBXRK_)MK#M
M#BP29DJ+I'1&@H2EQ2_]629BQ\'M'''P2@?O7 >_=,@S9Q=D>5AW5-/Q4(HM
MD<8:U<Q%GIO<&Z-AJ7F-<RWQ+D,_/9Y^?9A__?SI;O)X?T=N)Y\G#]-[,O]X
M?_\X)Q<S*B'5,6@64GY)WI/O\SMR\>Z2O",L)8^QR!1-(S6T-9(8/3LLGWI;
M/-4[\M0["*^)[UX1S_$Z#>[3\]W]NKN-\5=)\*HD>+F>?T1OKJD&K$U-Q))\
M8"E-0T8YF0G%\EK[:[)06F+%_=T4:J'=:=8VR_!&K6D((PO7F0*Y 6O\^V]N
MU_FC*?#_2:R6!K]*@]^F/IYFTKQO?+<;4-KD0UT1F@BIV;\0D5 HW11_(1KD
MHF;7V(R[3L\+AO9F-[!#*]?W>H-!959#[E3(G5<B(S''O0E?(1#<Y4@H(6*:
M<*$:Z[20[^Y@.7O@;18UYJ!B#EJ9)V$H,LPM[H(AL U=<&B!AD;LX "J[_7V
MP ]M@K[?C-ZMT+NMZ \B?1^^K4JZ!S1^)W!\?P_ZT,P+G-[@2,I[%7?OC=RO
M2WOOH(CWJZ7-HH;>K]#[K>@S;&N Y!'!7A ^71$5XZZL"%,JP\D+W(B+F<LF
MX/[)\FZSJ $/*N#!FX#Q#*$TM@N6KDY1#TY2MUG4J%WGI1$Z[5N)2!+<ZW-H
MLJ:2;"C/<&4B:B0XIU*1-<@"N['C%?+]7:9KQ_'VR$^:U?%W^KA[-GZ5<YKI
M6,A\79Y(>:E>6Y].^=F/X!S3>A0OC=AM;7#-49Q7ZJ7R+I;;<SI^IR&")E,W
M& R.1_#20]T33;0I@E?4?BE_5AA-ILUAV#LG1',\_T+EBJ6*<%BBKW/=PQU+
M%B?>8J#%.C\T+H3&(VA^&>._!)#& .\OA=#/ W,.K?YWC/\#4$L#!!0    (
M .\S35H>F.-JM0@  #8G   8    >&PO=V]R:W-H965T<R]S:&5E=#@N>&UL
MK5IK;]NX$OTKA'=QT0)U+3[TRDT,I%:*+= F0=/>_:S(M*VM+'DE.8_]]3N4
M%,DFATIRD2^QY!R.>3B<F<.13N^+\E>UD;(F#]LLK\XFF[K>G<QF5;*1V[CZ
M6.QD#O]9%>4VKN&V7,^J72GC93-HF\V8XWBS;9SFD_EI\]UU.3\M]G66YO*Z
M)-5^NXW+QT\R*^[/)G3R],7W=+VIU1>S^>DN7LL;6?_<79=P-^NM+-.MS*NT
MR$DI5V>3<WH2"4<-:!#_2^5]=7!-%)7;HOBE;KXLSR:.FI',9%(K$S%\W,F%
MS#)E">;Q=V=TTO^F&GAX_63]<T,>R-S&E5P4V9_ILMZ<38()6<I5O,_J[\7]
M'[(CY"I[29%5S5]RWV&="4GV55ULN\$P@VV:MY_Q0[<0!P.H9QG N@%,'R L
M W@W@+]T@.@&B&9E6BK-.D1Q'<]/R^*>E H-UM1%LYC-:*"?YLKO-W4)_TUA
M7#U?7%W>7'W]$IW_N(C(S0_X^'9Q^>.&7'TFB_.;/\CGKU=_WI I^7D3D7>_
MOR>_DS0G/S;%OHKS974ZJV$.RM(LZ7[O4_M[S/)[E)%O15YO*G*1+^7RV, ,
M)M\S8$\,/K%1BY%,/A)./Q#F,(%,:/'RX1P9'KU\.!MAPWM_\,8>M_DCKC9D
M!=%8D559; D$>!G7:;YN(R2M4UF=8,O>FA6X694]3JI=G,BS":2'2I9W<C+_
MSV_4<_Z++=E;&HO>R-C1<HI^.<68]?DE9,XT3XJMQ-:L'>LV8U6"O)M3QZ,^
M/9W=':X& J.<<7$,BTP8HZ[+W!YVQ,#M&;BC&^)\^1=D <BT=47J E)M4N1)
MFDF2]]34]^HN47MG5Q9W*406N7U\^>9QWW+SO*6QZ(V,'2V]UR^]-[IY;NHB
M^355565)8)VAU%9Q4ZSD@[I&MU1KT3O8!"X3@FL["D$)WPNT#86A7,>RG_R>
ME#]**I*P4DG:$BE6:K_ +JD?/Y!=%N?U!P)YG<B_]^E.[3F,HF],BU%F!(V)
MHC[S'8TB@O*X\'&*04\Q&*7XM:@J\FX-HN<] 9++M-H559S]?VP#8X:!YJ>%
M"6$LU(B:&!KB+,.>93C*\GQ;E'7Z3^_(-*_C?)W>0FJ(JTK6:'$.S6E0075"
M)DIX5'>=">+,%S@GZ@QRQ!E/V$4^57GL \F4%YL:F("PJ6KPW$;BBL,QIJ)-
M=O$\)$(@PN,^LS Z$%ATE-'%0R*!B=IHQ6U59+*6X*L[V&Y%^4B235RN+;2H
MN:\.P[]C9J*X[[LZ.03E!#9OL8$;&^7V.4Y+<A=G>]AS?9TBC9R'F"HA;SXQ
MA<I#WET6P)W1]RA;9FY-QH3.UD2QP @V!.58J ZZC([J%"/<(*LDQ5Y5Y:*$
MM"*WZ7Y;*>J*<5>P49X<\82GTS1!U!>&4TV4" ^JR#'303+1<<WT7<99^@_X
MKDNA32 ",4BALDTTXP2%F3%U>B:$AJZNIS!48 O'04[14<DP7VP@2ZH(5*=#
M6;9[M%51\8,E$%UC(E.0=HZOTT)P-/1]8WMB]GS.;9X;] H=%RSG2;<EH<++
M]"Z&6H#R,87%E$,--]QDXACGPM/IF# N7%MN&70*'1<J/_/;-,O /:6$%++'
MF9CZ8>J%NMK"4,PUH@G1(L%!9![3&+0('1<C7X8$B#(PA<&4,M>@@, 8<T.J
MDT!P(@BYS1N#V*#C:N.ZE+LX73Y)WZZ>U1M9DF0/401IWZXZ*"([7&KD=A/%
MA&<$CXD"EX>6V&&#\&#CPJ./G5W\: L<9DH$&G"7:400V)1R7^@)#L6!2+;(
M7S9(#C8N.8!+N9>#LU NB+H(J5Z($-24N]S1O8)9<UQ+\+!!7[!Q??%$Y+D,
MS<R"/PV9KR<T#$8]L[!B."$L,<0&"<'&)43T5'"ZC-;$4-OC@S!:2CBEI'@
M,;/23SUF>@N!A90QG1ZB&X+ YJQ!-[!QW7"EL@$Z>ZS<"UVB(RC!N#%W$P7Y
MT@FH9?:#+F#CNN#RI0T4E*%9T:D(#V?5<41PU R[",$QP86M&K%!(3#O5>W%
M5LN]H$/$1I7':UM$;VHM>BMKQVLZ"!4V+E2N]R6<XE1-?%X<,T2*!*X3F#4$
M =) '.;4CCPF;CB<6RTG'C8H%S:N7+[%];YL=D23J)3\?Q%%I&/" JZW?A8(
M#DXOPC,B'FFON#P,N(7?(&G8,Y+FT&^O;PPQ1(C H<#H]6$XQAW?UWEB]D+/
MLZ@!/B@;_DQ+!3(;B)JVA5S*+*XAN=4%N=U7@%2M"758A](#)]MG#ND<4RQ"
M%S8+#,9<W]R\&-!U7,O6Y8, XN,""$WF[_95(R7>HUD/I8NIGR#4->D"P7$&
M)SJ=+6).6$]*?%!)G+TJJ:_2/,Z3ESPS&E5?KWYH]);6HK>R=KRF!X_AQK7:
M4="TI;*J]K"L30L$U.A6=434 P*RSY<@W]IKE3SPK61JKC TX@;I#3'CL0!F
M*O L H@/\HT_U_;9=0E19XCR0728YT,ATRDA.#_T=>H1AF.03*DM.@9AQ\>%
MW77KQ;9GIY*!Y;DU1[HR+@A0(]@1'&@]H\N#XMR0V1PU:#@^WN7IDUN7S]!X
M1QDB?1\*HH+II1D%,M?3F\\1!F3"X;;G 'P057Q<5%VL5C)IG+8J2IFNU4.W
MI&W=@2*7I+UN^I+-6C1'*76A:O8=2!6+.N&8 #/[+0B,>J%>LC%CG'N6)W1\
M4%Y\7'DU'N[[E*_CA_63/-?33R((3G4 ]7X29D[X@4V3#-J+CVNOA8T3B6MR
M*]=IGJO]#.Y_E#%ZJ.1(M\AAGM[66R X&M##'=HQQ7 >M>55,<@O,2Z_1JE*
MU46SD^Q,N\>3<HS"@>"PQ8A0>]0,U]G!"T5;6:Z;%[,JTG3(VC=S^F_[E[_.
MFU>>M.\_T9.H?85K,-.^4?8M+L'+%<GD"DPZ'WV85-F^I-7>U,6N>6WIMJCK
M8MM<;F0,I58!X/^K H1J=Z-^H']5;OXO4$L#!!0    ( .\S35I)) 78N D
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
MP.X&^M.SAH*$JGLWDYH3.CY13]@8"M(P)(X*V WE^@$.@AT?^]*6/U [?^@
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
MV[L((0*W;GK%RP(:AD!O>[6'HMW0,W2(Q)F(EMNV68(?0K4YQ@_ISHC3YH;
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
M2P,>&6^C<K4PG.D2BVI-0S[.3 X[CYV9&7M&R$;<'COF-/M&$N@M)(1,&^L
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
MG"N)%* )>#_3"$WWA3;8_,QS]6]02P,$%     @ [S--6FM"I,QT @  8 4
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
M<FMS:&5E=',O<VAE970Q-RYX;6S-6&EOXS80_2N$FUZ :DNR?*5)@&2W)[K
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
MIA=U&8$9Q]6X<'H31L12.VK:(/8TX=%X ]I?:>T."Q_@^)]A_B]02P,$%
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
M$5\[MKX%S-]&\]U8O7Q0[3L"<6VIEJK@=HE)LVUB!@&T;7?TF^8".,.J%V(
MY)SFN6VHPP7L#P9\F$Y"'[BO>\_ML)UYU=^AJ:,O6K3#.)%R2+FSR*KJ-,6G
M.MJJ5'DI5H3B"S>U9N=YN!6:VZ5T:M-CT8JT,Y4J0GPV6;GA01%78Q/N!2:S
M/+8R:-J6&^X@DM 2>AS96EJ8^%\1\G_E_DV,V))M<FPN+AZST(AHL2M!SY%W
MX]G-VV.>$(['I?I-1!^P%TE8=6O>?;ZZACXD[9K6I;\W\ND60/,YQ5&I Z/.
M_94$B+3= 0V.;+5FWLV@D&R DW>!<S^*H9MXBC?AOW2/7TP>#<3^U9;_YI[_
M#T*3"^^$';D/Z<9/]E_J_4T8.%[&:>-5-^M*;PL:+UK;#D-7CR<AGE@B_RN.
M>#)%WW\A7N*"@5F\-4T.8-^NX;W?>84MR2["6]/%,HH/LNWN]CE[&E]Q]^3Q
M+?Q>V@4[4M$<K.G>_K@7"W6S\*8.;[J9\7@AAL\23W*R3(#SN<$PW2Y8P?:1
M?_(/4$L#!!0    ( .\S35K&.9O*8P8  .H0   9    >&PO=V]R:W-H965T
M<R]S:&5E=#(T+GAM;+58:V_;-A3]*X17;"V@QGKZT24!G.Q58,6*9 \,PS[0
M$FT1HT2-I.*ZOW[GDI+CM&G=%=N'R'Q>GGONB\SY3IN_;"V$8V\:U=J+2>U<
M]V(ZM64M&F[/="=:S&RT:;A#UVRGMC."5WY3HZ9I',^F#9?MY/+<C[TVE^>Z
M=TJVXK5AMF\:;O970NG=Q229C ,W<EL[&IA>GG=\*VZ%^Z5[;=";'J14LA&M
ME;IE1FPN)JODQ55.Z_V"7Z78V:,V(TW66O]%G9?5Q20F0$*)TI$$CI\[<2V4
M(D& \?<@<W(XDC8>MT?IWWG=H<N:6W&MU6^R<O7%9#%AE=CP7KD;O?M!#/H4
M)*_4ROHOVX6U^7S"RMXZW0R;@:"1;?CE;P8>CC8LX@]L2(<-J<<=#O(HO^&.
M7YX;O6.&5D,:-;RJ?C? R9:,<NL,9B7VN<L;<2?:7K ;4>IM*XFI\ZF#8)J>
MEH.0JR D_8"0)&6O=.MJR[YM*U$]%# %H@.L=(1UE7Y4XC>B/&-9$K$T3O./
MR,L.:F9>7G9"S8W1#;L&5@-W -6N9M>>9&'8'ZNU]>-_/L9 D)\_+I]"YX7M
M>"DN)H@-*\R=F%Q^^44RB[_^"/K\@#[_F/1/-=*_%L)^KD&)5HA,V6Z9XVLE
MAO"4;X5EE;1\NS5BRYVH$()!@&Q#+B !ZSW;"KTUO*MER3C2@H^1BF'.07@Y
MD/N59:7N0?N>Z0VK="-+B;.>2EJF>\O;RCY[P7X7W 0?8O  T:QAEM$+Z)/1
M)V4K2)0EM^P)RXHX2HJ"6ED<Y8EO+>.HF&?LV]X@>;$TF4>+1<S2-(YFLX*E
M61[-\HQ]#[0.!US7LN4LF>51DL_#+\2DZ3S*T?\):ABVLA)+%FF491E+4OP6
M*4N*+,K3.4Y<)GE4^+,7V3PJ<AI+(N3%*%[&_PG+X[#;=Y]-VZW#>FXJUAE=
M]:6S#'U&SBI+063.ET64)4MJ9<1&3 KE"Q"<L577*7!.>)[;3I1R X./YF56
MJYZF+$N2990L9RR)04X,/HMYM,Q.DW2M+0 YS;[KU48JQ?A]G![F-H>Y<IR#
MSX&K4O6D/7B9O#:BX[)BX@T*EQ5!2>VM6/;&B!9[K!7.3D8GQ3G +RO/_Q57
MO"T%NZ64&C;SAEP7<T#P)(FC>5P =NSGGB19E,Z&OB7G?M\"M(ZL$,&*1!W5
M(;4_\WX19-,^M(R3;X/%J]Z0K_CM1B@^G%YZ(E!T!!2I/G!@]@[@%*RG'N"J
M]$%H*0<(>4>.&-VSO/*L1![N8?!'R==2(5N R,-V<]B.IL]W1&H3)K%<$39(
M&?A6>^@SY-[18RS;(6/4WGR0 =5ICR-[2,-:W$:$=;(90H(K$$/'W7'5B\#<
MM6XZWNX9W3P<_LA6C%.4>?OQ+8TY)LF(CP!'=+$2)$K'E(;F]NQ>Z> ?Y&-6
M6F^<OAW4&N-P1"_)PW:U:.\#UQ]#*?9M\$A>W7E$$$-"R*Z=D13](,;#$(84
M8/P30VST_6/(ZLA.1[@/KC*B"V891%8@WA)!1]H$949CDGD&S>%+A!5Y#!Z,
M_COF?*CH>)RY+S9GI_)@6?-V*[PDBLI[4[YGJO<2X"I$T1B[C\=%ZO-:S%ZV
M$,9)#%0Z=5*!L/G-2">>Z\T&P4&>Z?4K]1V*$&&9Y<4SABLB+H MLDY0@QFX
M[D&EI^FS$^ R5BRR?P<M+Y:GH*5I>@K:_ 2PG/(UBMP)XQ'83W0V?Q&7;O_Y
M5LR1@Q=S3-%Y7!T[W."L<KQ^A(3?@0]=/:!HO *E251DBP>WHB-Q!Y4@$$$+
M&P11H#:.EHOY,VQTO6G%^XJRI\LHC4^[QBQ>G'8.-(JT^,\T7BX_1V-<! CK
M"7VR17Q*'_*I%#4S*U!T4,P[2F'(?,H7[4I"@6BHS"''UY CAKS3:D?1@5M3
MB4 0(4S&^]-1/:5QY,;6\O#^@S)E"*AR+*<])IVT&XDNM/07+I_ UDIN>4BV
M/N[&A NAJ%$UOR/?1CJ46UP= VJ/#66;CX0J8?UZ=%K!]KBBA0QH!%4L"J+_
M]7C<)L3#XZ.CLG-TIQ!OG/!7QQI7PQTE?'S &Y62R!< 8IPJL9%<G3WVG)D>
MO3\1 5O_RAYN_.$I>A@]/.17X?UZOSS\%^ 5-UNJY4ILL#4^FQ<39L++.G2<
M[OQK=JT=PLTW:\$K86@!YC=:N[%#!QS^O7'Y#U!+ P04    " #O,TU:):(W
M%X,%   \#@  &0   'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6RE5TUOVS@0
M_2N$6[07K2W)=NRV28"D2;$]% B2=O>PV ,MC2TB%*F2E!WOK]]'4K9EK!-T
MVTLBRIPW;]Y\4#S?:/-H*R+'GFJI[,6@<JYY/QK9HJ*:VZ%N2.&7I38U=UB:
MU<@VAG@9C&HYRM/T;%1SH0:7Y^'=G;D\UZV30M&=8;:M:VZVUR3UYF*0#78O
M[L6J<O[%Z/*\X2MZ(/>MN3-8C?8HI:A)6:$5,[2\&%QE[Z\G?G_8\(>@C>T]
M,Q_)0NM'O_A<7@Q23X@D%<XC</Q;TT>2T@.!QO<.<[!WZ0W[SSOT3R%VQ++@
MECYJ^:<H774QF ]824O>2G>O-[]3%\_4XQ5:VO"7;>+>'!Z+UCI==\98UT+%
M__RITZ%G,$^?,<@[@SSPCHX"RQON^.6YT1MF_&Z@^8<0:K &.:%\4AZ<P:\"
M=N[RH>*&*BU+,O8MN_W>"K<]'SD@^]]'18=R'5'R9U"RG'W1RE66W:J2RF.
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
M^S< Y/;_AB 3A@\0M*B#CR2AC9F?M.C!G2]\V?T?1)#304] D2@F#$G'TW
M0VX[$.E1(,M=);\+4'0$46@Z!FSL88=KIDBYENTZB-!S.>^(!!T75\M]2Z$(
MB AZ*(8.BY!3=NM%^)-OG6RW1^*S'XL+QX@B'D64VP%(83_W( 4]^+3GIN$X
M[O7<7[5;Z&&@<,<90P?O[]Q)>>_07="[B9J.?"L^%U$@2'JO:'^X;;V+%J_=
MH</*Z&:+G8$NN_-V\F<+W^\^D![VT.GX,;":P 4%(>U[$:OP\&!9%.[DJE7'
M@7BKM./-A=V&DNY'NU#+EN]M1K&R_ST?,&+]@9<,S 1;,Z:/C3QC41!]SX\'
M;7A'^S3:JXBL,=UN+#?88?_92(.>>;R]-^J.61]%YM2:KJ\VVXRM;NWGJNOB
MB DED49R8%X=G>E)VCC0IH?WZ8/O5+#2LP"X'!YC]1-GAM' 5IR.4\LGB4VB
M$]@_?Q[(O:@IL;O1JY*1?6A=3Y3*<NR! PM^3V0K'FK1RQ!79_?C[Y$%19,=
M-DC=X<S)&Q'/M3LZ/IW8YK];YTB"_/B094ZGK9WN3/+E?<KB=O@P(, &E_>\
M_5[<5W30K>TY;VLGK*"CH'Z/[&EA-4?WC2,.@Z/DT=09TN<C7@_*$G#K=-J?
M$L?A^2D=@8J]Q$\.T^@$SS\_S0+BH)FV=VSSVC7Y$Z!$<?9.6$X:KZ.5MNT^
MZE#0!PCB6U3SP\<PCL2^17[H(K>U^HG>KE@^A&A^P!Q'XRZXV^BF@@^JRR<?
MP;S5]L6GH=TCFLXS4/59FMK_W.D1@2 E*H(%%VL/!0QOZNT!N%2Y E]7#$L!
M[=*F(DB]>.H+,+5T%HE/JBCPT&M/JETY9Z#YN>TB=TI$B3=%TT+E8M,E:)LU
M2YEG4!KQ?H62PUX@W&+H-?95[X<'&V56_/,*VO0W96U_@]#=[7[!<6-_N' 8
M;G_^\5X:6%5AV[#$5!^[EI%]>=E^J?66?\8PUW6M-WRY5A(DEP;@^5+KNOU"
M KK?M5S_#U!+ P04    " #O,TU:X*P4U%<#  "-!P  &0   'AL+W=O<FMS
M:&5E=',O<VAE970R-RYX;6R=55%OXS8,_BN$M]MV0!8[=M+KNB1 T[O#^G!
MD:S;P[ 'Q:9CK;+D2732_/NCY,3U@+0X[,46*?+C1TJDY@=CGUR%2/!<*^T6
M4474W,2QRRNLA1N;!C7OE,;6@EBTN]@U%D41G&H5ITER%=="ZF@Y#[H'NYR;
MEI34^&#!M74M['&%RAP6T20Z*]9R5Y%7Q,MY(W:X07IL'BQ+<8]2R!JUDT:#
MQ7(1W4YN5E-O'PS^D'AP@S7X3+;&/'GAOEA$B2>$"G/R"()_>[Q#I3P0T_CW
MA!GU(;WC<'U&_QQRYURVPN&=47_*@JI%=!U!@:5H%:W-X3<\Y3/S>+E1+GSA
MT-EF'#%O'9GZY,QR+77W%\^G.@P<KI-7'-*30QIX=X$"RX^"Q')NS0&LMV8T
MOPBI!F\F)[4_E U9WI7L1\M/=:/,$1$V8B_USL&#$GH>$T-[@S@_P:PZF/05
MF$D*7XRFRL$G76#Q7X"8.?7$TC.Q5?HFXD?,QY!-1I FZ?0-O*Q/- MXV2MX
M:R1ID:\3P0HUEI(<_'6[=63Y8OQ]*>,.;WH9SS?+C6M$CHN(N\&AW6.T_.&[
MR57RZQMLISW;Z5OHWWXL_P,&'OF(+%"%<&?J1NCCCWQLERQ'(/P-9] "<CY>
M*[=MZ*6FVU0*'L>;,>#)V<&A,E")/8(@$L&/.QO2"5_9XPL$0ML &9@DR3LP
MI:<B+31LXOL4N)X_DWCVW28=M-_.UK7;?[C;/;2W%UJW0D%AE!(6E*PE"4_?
M 3H26R6Y;0K8'H/QO2:TFLW7N$?=,C0?J<P1?HKNUYOH_1A^?Z' Z1"/1P>S
M/@$HI74$5T'VJ7"ASW499.[&/<:PH@[VS G2V;N1QQS!![\2NNAJ)$HFQ\7!
M$=#!\*>RB-U^:5H+1Q36^< >4^K6M.X4/%SX@Z1J6,$1CU/78!B(ZO@:(S(D
M%!?H^VPTRV:C)$E ZM".(Z_+?DD'NJQCP_KT>CK0IQY]I_$9>)3E3\ 'J@WY
MXDCM4P[\A JU]W0"RF4^PF+PK46!'CT4G2>SSWL88WRI_^+!B*S1[L)#X#A"
MJZF;EKVV?VMNNQ'[8MX]5%^$W4GFH[!DUV3\81:![89_)Y!IPL#=&N+Q'985
MOY=HO0'OE\;06? !^A=X^1502P,$%     @ [S--6CDW@E4&#P  PBP  !D
M  !X;"]W;W)K<VAE971S+W-H965T,C@N>&ULQ5II;]Q&$OTK#47)2@ C\9S#
ML0W(<I)UUMD-K!Q8+/9##]FCZ9C'A&QJI/SZ?57=Y) 21Y;C! M;$H?#KJZ[
M7E7S^:ZJWS<;I8RX+?*R>7&T,6;[[/R\23>JD,U9M54EOEE7=2$-/M;7Y\VV
M5C+C145^'OK^[+R0NCQZ^9SO_5"_?%ZU)M>E^J$635L4LKY[I?)J]^(H..IN
MO-/7&T,WSE\^W\IK=:7,3]L?:GPZ[ZEDNE!EHZM2U&K]XN@B>/8JIN?Y@9^U
MVC6#:T&2K*KJ/7UXD[TX\HDAE:O4$ 6)/S?J4N4Y$0(;OSF:1_V6M'!XW5'_
MAF6'+"O9J,LJ_T5G9O/B:'$D,K66;6[>5;N_*R=/0O32*F_XM]C99Z/H2*1M
M8ZK"+08'A2[M7WGK]#!8L/ /+ C=@I#YMALQEZ^ED2^?U]5.U/0TJ-$%B\JK
MP9PNR2A7IL:W&NO,RS=E6A5*_"AO5?/\W( BW3]/W>I7=G5X8'40BN^KTFP:
M\769J6Q,X!RL]/R$'3^OPD<IOE;IF8@"3X1^&#]"+^KEBYA>]$'YQ&O=I'G5
MM+42_[E8-::&1_QW2F9+,9ZF2%'RK-G*5+TX0A@TJKY11R^_^"R8^5\]PF_<
M\QL_1OV#]GCZ:O$:EXW1J=#V[DHAAI4P_.5.-N(X2KPPB3S?]_$,:]P3Q\',
M\Z/EX&;D"5EFXCA>>$D\&WP1G@E$!OR^/+S%<N:%T>S^%L'2B_RI/7#I!?%R
MO(F3"E2%ND4V:I1(*Z2%QJA,5&MA-DJLJQSY19?7X@3KS*9J&Q!L3I^)?RM9
M6_<4<"Y5K%3=.QAOS;N(R[:N56F>B6]4IFJ9BV,1+L#'DB[ T"+&!500)8FX
M,M(H$7L)*$102BP2;[98]MH(0F^^3,32"_VY"'POC",1)UX4+D0<>(LH$;/8
M"Q=S,+16V#;;[WH2AEXXCTYQ$7OS*,!%['OS>7CJ=CT)0"?&[<1;S.?X2RSA
M<[<W^%GPI@O\"7V6X(3^!CX>AN+G(1&%2$& Y1 .C 4+NH#J Y(2;A',?7&!
MI L]ISK7DC.H4_5/9U=G8NWX;<!4:ZKZ#B:IMU5-+)*A[$7%"RZK8BO+NR\^
M6X3!_*NF<Y:!/3U1U4*MUXIS=$_ 8Q_"?VO=YLG&G/ 8:3Z"\3 0GP]^6<WO
MV5:-)TH43"BD([=2I5IK(T(1X*<S1D\PTQ"._$N3C<E\,_Q _Y284GB -HTX
M(;/33\#WG=)+4:#"Z)(_8C7J<<W76)#8!:S9\"LFYE)2 SXB_+S5A38])>BM
MM=5P30J_56G+"H=@I"7[7,!"4+:LE1DKL5:YI*"#856QS:L[I:#(*GW_)57&
M;$R'J'2<C:AUNB(>9 O11:.,R15JO6D&BT@/DVS0PK53,1RB1-@WHJP,3(2"
MK$MM5'X'9G4)11"_>YJ3#$V(QY93IJVA*@0 ;= M#?'O0\O9Z+6ZD7G;*[\Q
MG8_)!@(/"9Z$I],J&I#\]LW;']\(F?T*4& UU>LIM&YP4,F@HF ?\M<]1Y)"
M2I:IVM.)K>_]"T%;LYB3D10L$1+!C'[%^$5.]ZYSNA\1[NE&EM>*PEQ<UU6#
M "ZJEOC%]FU).>6ZU+^34'LV$5#J-LWA#,C@NC2(E<9P2<">$NY/(;?#W4$V
M>)#I7\F<Y<$^+@I8^F'<TG)\?3]W!,AZ0>0M@&?>=2'"STJBA/#CW =VMU6C
M[9=&OE=4]\2VUM@$0:FK##RAMIV*BRS3?YQ&Z"T2_Z-I4*9-;1%SE$3B)T-Y
MV)E(P?"F8<3MM-D05?I*MM!HK4GA\"N4&DCSB$JP)]Q"UZ,"(;?;7*=RE2N7
M914K/>]3$:G)\ZFF_7&3A62P63S_9(.%<?BI!D.]3Y+9GV&Q@(KZ)]DL -[R
M_QJ;+9;QIU@L(J@Q1\[X5(M%GQYA_N+/L=8R^M0(FR?!7Q5A$<''/VXO@H(
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
M*F@"GJ^4LM,-;7#XUGGS/U!+ P04    " #O,TU:CC-;\A (  !"$P  &0
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
M\66F@(JE WB_-L:W-V2@^VQV\S]02P,$%     @ [S--6ITPTL=Z @  4P4
M !D   !X;"]W;W)K<VAE971S+W-H965T,S(N>&ULC51M3]LP$/XKIR"A34)-
MFI8701N)PM! (!!HVX=I']SDDECX);.=OOS[G9TV=!)4?+'O['L>/W?V>;+4
MYM76B Y64B@[C6KGFO,XMGF-DMF!;E#13JF-9(Y<4\6V,<B* )(B3I/D)):,
MJRB;A+4GDTUTZP17^&3 ME(RLYZAT,MI-(RV"\^\JIU?B+-)PRI\0?>C>3+D
MQ3U+P24JR[4"@^4TNAR>S\8^/@3\Y+BT.S;X3.9:OWKGMIA&B1>$ G/G&1A-
M"[Q"(3P1R?B[X8SZ(SUPU]ZRWX3<*9<YLWBEQ2]>N'H:G4508,E:X9[U\CMN
M\CGV?+D6-HRP[&+'201Y:YV6&S ID%QU,UMMZK #./L(D&X :=#='1147C/'
MLHG12S ^FMB\$5(-:!+'E;^4%V=HEQ/.9??:6BB-EG###4YB1YQ^)\XW^%F'
M3S_ #U-XT,K5%KZI HO_"6(2TRM*MXIFZ5[&:\P',!H>09JDXSU\HS[#4> ;
M?<#WZ&HT<,_9G ON.%JXYC87VK8&X??EW#I#3^//>ZEWQ./WB7V[G-N&Y3B-
MJ!\LF@5&V>'!\"2YV"-[W,L>[V/_Q,5\ O_E&7.]0+/^^D8%CPKN6H5P&DJ<
M'@$5"*ZT;)A:'QZ<I</3"PN-X;Y)(:?+]?6A-Z?:D@RJF@%<-6@XJAP+8%!Z
M5N: .\()ILA2<*L*K=!R=D1-0C76:ZXJ"K:\4KSDN0]C4K<TZ9*.KQ2N"+=
MY311V\%[-8QW'KI$4X5VMB22:+HWWZ_V/\9EURAOX=UW\\!,Q94%@25!D\'I
M<02F:^'.<;H);3/7CIHPF#7]>FA\ .V76KNMXP_H_]'L'U!+ P04    " #O
M,TU:N<NA,7,"  !Z!0  &0   'AL+W=O<FMS:&5E=',O<VAE970S,RYX;6R5
M5,ENVS 0_96!6K27P%KL+$UM 7$6-(>@0=+E4/1 26.+",512,I._KY#RE9=
M(#'2B\3AS+QYC]+C=$WFP=:(#IX:I>TLJIUK3^/8EC4VPHZH1<V9!9E&. [-
M,K:M05&%ID;%69(<Q8V0.LJG8>_6Y%/JG)(:;PW8KFF$>9ZCHO4L2J/MQIU<
MULYOQ/FT%4N\1_>]O34<Q0-*)1O45I(&@XM9=):>SB>^/A3\D+BV.VOP2@JB
M!Q]<5[,H\8108>D\@N#7"L]1*0_$-!XWF-$PTC?NKK?H5T$[:RF$Q7-2/V7E
MZEET$D&%"]$I=T?K+[C1<^CQ2E(V/&'=UV:?(B@[ZZC9-#.#1NK^+9XVY[#3
M<)*\TI!M&K+ NQ\46%X()_*IH3487\UH?A&DAFXF)[7_*/?.<%9RG\OON\+B
M8X?:P>6*GW8:.X;UR;C<0,Q[B.P5B#2#&]*NMG"I*ZS^!8B9ST JVY*:9WL1
M+[ <P3@]@"S))GOPQH/(<< ;OU4D_#HKK#/\2_Q^26^/-GD9S=ODU+:BQ%G$
M/K!H5ACE']ZE1\GG/5PG ]?)/O2W?9#_A("O&JZP,!W;#M(LG.OA ;@:X9R:
M5NCGCQ;F)$P%M( +:=@R9"S_W:42!BL04 I;0R57LD(=JMXGH^0D@1;9X347
MC> ;PPT5TD(KGD6A$&Z$*6M(Q_U8< 1"J;ZI)E4A#V(\GDD\7X3 ,RL56?1!
MT5D6:#FQHR([[N%&+QUYO..'!LTRN-Y"29UVO36&W>%B.>O]]+>\OY68_%)J
M"PH7W)J,C@\C,+W3^\!1&]Q5D&.OAF7-ER,:7\#Y!9';!G[ <-WF?P!02P,$
M%     @ [S--6ESQU36% P  40@  !D   !X;"]W;W)K<VAE971S+W-H965T
M,S0N>&ULK5;;;N,V$/V5@;98)( 32?1-3FP#LIWM&L@FV3A.411]H*6Q):PD
M>DDZ3OZ^0])6G39Q4* O$DG-.6<.;Z/^5L@?*D/4\%P6E1IXF=;K"]]7288E
M5^=BC15]60I9<DU=N?+56B)/+:@L?!8$';_D>>4-^W;L3@[[8J.+O,(["6I3
MEER^C+ 0VX$7>ON!^WR5:3/@#_MKOL(9ZOGZ3E+/KUG2O,1*Y:("B<N!%X<7
MHY:)MP&/.6[501N,DX40/TQGF@Z\P"2$!2;:,'!Z/>$8B\(041H_=YQ>+6F
MA^T]^Q?KG;PLN,*Q*'[+4YT-O,B#%)=\4^A[L?V*.S]MPY>(0MDG;%ULI^-!
MLE%:E#LP95#FE7OSY]T\' "BX!T VP&8S=L)V2PG7/-A7XHM2!--;*9AK5HT
M)9=79E%F6M+7G'!Z.*-53C<%PG0*9_#(BPUWLU6E\'W#BWSYDE<KB)-$;"JM
M^KXF40/UDYW R FP=P1"!M]$I3,%5U6*Z6L"G[*M4V;[E$?L*.,$DW-HA@U@
M 6L=X6O64]"T?,WWIN!J#/MI:$#(SH)>X^.9@#_BA=*2=M6?;TV*DVR]+6E.
MVH5:\P0''ATEA?()O>'G3V$GN#QBJ%4;:AUC_S_6] .!\=>KR?SZR@A\_A2Q
M,+R$Q_AZ'C],;V\@OIG ]WE\/?WR^_3F5XC'X]OYS<,,XC3-31X*)J@2F:]M
M4B->\"I!X!K&&9<K3$&+NCDA(XD#W>H,Y6'XR;0"G8F-(E_J%.*"+AC[C:XJ
M&$LD-;@62J$"TJG7[1X3S)_XHL +NX/@%VA'37JVVCUZ6C_LDEHGC+%3. E/
MJ=VEGGE'K&M )KS;# PT"%Z#.JWV'F0@#F8$",8,K-NA9]@+_Z'5[.YA^U$'
M-3+W;HM88S->H#&A-[)2M0/6",+HC71JKC>86:--F)V;T';^*T'@"-@!P;^A
MQTD<;H)+E+1D\,"?#W9LO::UT5YKEVV7?2#F#+;KY6IT.N$[@2>=1C>,3E^-
M&:&=M:@11I'E8TV30[,113T'Z[2#US G8XS.UICDRSR!K<PUGHGE4EG+5$RH
M5%1TN9/A*GD!?$XR7JT0)-<(KJW>N@;\@VN^1#H?II@IL/O:W?CU:%TO8U<F
M_@YWQ?8;':^<#E6!2X(&Y]VV!](5,-?18FV+QD)H*D&VF5'-1VD"Z/M2"+WO
M&('Z+V+X%U!+ P04    " #O,TU:K^5%#UT"  "!!@  &0   'AL+W=O<FMS
M:&5E=',O<VAE970S-2YX;6RM56%OFS 0_2L6JZ9-VF(PD$X906K"INY#IZA=
MM\\N7()5L)EMDO;?SS:$)1VMHJE?@L^^]^[NF3R2G9#WJ@30Z*&NN)I[I=;-
M#&.5EU!3-1$-<'.R%K*FVH1R@U4C@18.5%>8^/X4UY1Q+TW<WDJFB6AUQ3BL
M)%)M75/YN(!*[.9>X.TWKMFFU'8#ITE#-W #^K9921/A@:5@-7#%!$<2UG/O
M(IAED<UW"3\9[-3!&ME)[H2XM\&W8N[YMB&H(->6@9K'%I9059;(M/&[Y_2&
MDA9XN-ZS?W6SFUGNJ(*EJ'ZQ0I=S[Y.'"EC3MM+78G<)_3RQY<M%I=POVG6Y
M<>RAO%5:U#W8=% SWCWI0Z_# 2"8/@,@/8 \!43/ ,(>$)X*B'J DQIWHS@=
M,JIIFDBQ0])F&S:[<&(ZM!F?<7OM-UJ:4V9P.EW11[15: 72O4(\!Y0QE5="
MM1+01W1[DZ%W9^_1&6(<_2A%JR@O5(*UJ6T9<-[7671UR#-U H*N!->E0E]X
M <4Q 39-#YV3?><+\B)C!OD$A<$'1'P2C32T/!T>CL"ST^'DA6G"X1Y"QQ?^
MSSV,R=W11>-TUBQFJJ$YS#WC!@KD%KST[9M@ZG\>D^HUR;)7(CN2,1IDC%YB
M3[\;HV0\%_6H9ATV=ECKA]LT\*?!>9#@[:$:(VE!2,+H."W[-XT$<4SB(:V;
M !_\.6N0&V=R"N6BY;I[VX?=P4<OG'T\V5\8?^WL\"]-9\Y75&X85ZB"M:'T
M)^>F*=D97A=HT3@+N!/:&(I;EN8; =(FF/.U$'H?V +#5R?] U!+ P04
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
MW0S5>;(W(T<S^V(W*FZIG/6#;,5FSH3MT)R[Q"UJO3=QY7,L"R3AU(AK;RK
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
M[H 8 -O8F"V2+G%5JF,<UTDE+KX'>R.G81C[#2EV&P!KO.;*?BXN,%,+_G!
M<1#F"I*;K)II_\ML1(&'#53USTP#.+U^51R0UQGM@%4Q<I>2;',#;7TY4)42
M/!!-C':--8!)#6&@ QBA?S2M(K;5NCK>&.L]["#>HT&0O8FEQY-Y"[_'4"F<
ML57&U?'.%M<YH+WC[J54 CH)X!>.D=EOCA?D"E_M'$KY?[^<7;UX-KNXN,!=
MYXZ]\-WERPOSW1/>;7SVZ7/S_=71C8M=#JZ.=R>XZ^K%Q[/7Y*9!X0(0'[PL
M[2N'FDQ3;^EA=@\Y-I,DZ2(J'68(%8M2#D$A!APA*;7#A&4XIMQ'"W_L*W0U
M/CIY?_=+>W)J"[;MR3KXVCM^;UR/&;KKN.CBKGKJO8R 88_@5FO47 _V:L,A
M&9!(,#:VF,WU*4J8A&\($K(!V'/*LG*\3E&V0=YW9;C?">$4S<LESW.YC506
M$J.I\&%*D:81\E2E(=A::F&D\+&*B^9A79>)0!]$!I?D_1G(<O2# NM$5</<
M2E2# 6=;@^GC:3'2F$1F(I7!T*,6>?4L*12+6R#=&^V.V]ZH(?3*?F'L18G:
M?H30Y< M"5VLZHSO7PKRH!MHI51F*7O FTDJ<&C&,EPE[MV@ 6#23_-WFCJF
M]H\J4X:-7?,"D5/E[12X=";,G7J)-5^3BJ"-#,0VYK8!!+D)%*=%$>KPQYMY
M84VN*<EMJVTXF&!0.U8/OCCV;%4MI_B$U(_CT\,X6YE;G4Q(88RPT*$W)6;Z
M[8R0^7E"-8T2EE@RX!M#JD$]L_?R\7F*(>VCFP^SUX@<V[OZ "GH-7%]&Q=K
M*#WMHA:4-:S>W?:@<RS2KL)+&<]^-YE9+0EZ07'$1"B^$HPXB\8^#Q@UD\S?
MQJ3'XB/&G:B- WKPXF6[6AP0PD<Z9O&%Q3]*5A*7HV8CU'TFAASNI>$$A?"B
MHS'AR_ :\F&G<7\AOYTCGF5SH#;H.<!T/UYF*#D*$=E)1 V=R*9T,H#'*QC>
M-1B9J. U30LA"F4OY-#W9;IK_%Q/ Y9BFY1U(_N1+."[I2_4THGS:D<7VRX@
MI**,@&(L4=69Y*3*N-A[0Q-/"Y.)1&).'@5@"VG6HX^R=B&<LY4P,X6#$9OH
MAQSL-?4NYIZ M,)!5I[T$(TQV B>W **#@7JZBH3*)YJ<5#KQGZ&$O3P3UCH
M0Y?P>&?5PKX>!ZB/DSOR-81W%L+  9:=2[-4]C& 2L\>PLA4R4<R<+2<[?"6
MLI6$H@[*ZPSQI,"D2).1O[OCI-QH!E?3>[J98^VEN9,\>%1-C]U6KHXW3?F
M&263.OD#WCOH.<)$E2Q4N10<F9^\<5?B(TATYI69(%C:CY'Z2BV!L)DLWX$.
M)$07=+;LZ9",$O*^X2%6'W0K5;@TA/_D0BL-J5(,+>YA>E(56*M&9_<'RJ>V
M8%&9"OML:[[@82F]@Z2\.'$Y-PG%Z!61V#F9JR"+36"5)O=@'Z,,DPM3[_=,
M)N \D4P:IH"&O:H[:6Y'UU1V&KT,#NGA2BDN+OA1!A5EB^MZN>2<?%V:2/G&
MV[52["+9\W F35]QRQS01R2[3P'7#O6-I(EHDK5%?HQD@JK61O?<:N,@PO"6
MEQ9O5J&.TM03)9"%-L]*>&PL:CW Y+:NR#5;-5ST@VPDN>?'A4;S8<!!0U;K
M]![Q4=E7G"9TP1'G-O)D+ )[Y,]7YS-^EK41TPCWP7MY2N:;^#,?LM+QE48N
MN=3(+/>VTXCQ*'=2ND76PNP,@PXEPA1@]<#R],[Z>)U[X)9D2,%G#@R$YKT8
M%U+6,WH)J5=#:?#MH9NTT\[Z"<>?Z@FL#'K X@*$<R<MD@_-9PKJ0L,6QYL!
MKXOTIF.%_O<Y9R!RNI!I"VM!XP0T6._?HEJNEPFT::YPL9RE2]QYJI5'>$/R
MMB?[#04;QV .G+?0=;FQGNQ\ N<A&XZKO<IQ,NRH^T\,@?RE!#.MM-7"/]6[
M,Q1,> L:WZ?RE]N?/MR>TI1HW1L0*%M>DRJ5._]2%>&F  DK:J,!DG=X#,C
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
M7Z)^UJQ#Y%HO"I-Z6=!SU-YES_+ YY[76Q24"(@<)<TCQ;HQJ3'[&91=^(Z
M4]TT6=Y#S^G+F3IN.*@L1_3Y-U-'-#[Y54<S4O%$8\HP;PK05QT1P81I58#4
MNN);^@KMF-,P!:.-#"+1A5(E/6#)'9WQC#/*Y2WTIR/]B9:+P6.G$EOL.(V
MTDJPO*"MPR)2K!C 8]P,&Q:Y(@^N#]!R>K[,5/LS%*U;@3:_<N)57K)Y/.,P
MV"PQN:6'144/8A/2>^YWGX940DC\<V"T!@X,U6KO:$#1BEIDR4WHU%P5^,)"
MU#BNTQ^-SL5?AW9VQ#Z.G]D!0_S<J?WF*$LX<)JWX[-L4FE#4A,'=LV1?AFZ
MY-ML.K$_JH%Y.)FZ(?[)+SSPWYQ=/ GG*US)34KBU7=13D\Y=N6A/TOH]TVD
M.CP4EAT\NNOG'4N]JXLS8"2Z<)P]<\6&2%VN8I+;H1U[^9;4"9BNV5A.KYM*
MWO#P&(%^B >$8Q'Y0,@X#_S@/($.[Y E#Y'!K;J08"=YZ$G <@S1E;%/WR8D
M2U ,NN&[[Y9L[HZ@T#@_WXHA!R.&L1=NVX5R,>PISLA+2$ ZZLL=6DA?OMR*
M/PIM,5(%PA$I]2(EB75C"D@T%FQA&/6&H@@2>V.PA0QZ(LF9H";C1\G_<)A:
M0KFT<C,O[^2P>>[G#KK=$N0K_\S!?J;YY3;K)R!<!ANV9OG\L,^%7^22^TG1
M]&@A&I5&6[N@.35IB3RF6R+>N,Z]^G[CFY6_H79P=)Y_.,$&H^%;Y+O88O;;
MZZN3Q_!F?/S5]UO@.W^EFVJQ(\,27KTX?_[TA)TR^@$.)@Z)'0"[>D-_KL',
M\@T^ +\O:Z!R^8 38-=* N_5?P-02P,$%     @ [S--6N+FDWXH P  %@<
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
M.:S60A-!%8B]V=8UF//,:RJEJ8I!<TI%R@\,XXFB3$OOB316^Y9)09G4^*?
M?Z<L8)PJK=%9.A8']N_VE>J4_&BKZ>*(E4)"2-*$<"DI%Q&$1H%'4YE@2\>4
M@_@!E*L.Y6H0Y;>A5"" KN^SO$ .FD(EFMY"'%^"]J#HX]#^_ RE#M6UY2K_
M'?R&(,;$RZI'[R3]!G+LF5T-VM5W5.;S\Q#?^QEP7=K:@9(E^:ZV3=,^O\WR
MFOR<%5NSP\KY 2+ X3&5&M-#P&^LA9A@9T#P 7)5Q+H(CYF<M&#>!P&C$210
M-Y&#S&%,I[W)$X_Q'G8.K>9)0H7@1$8)&0-:XWC28?L0TTI'A).QY&JR@_A)
M;,.PZ&U1*=AC"_@S4 =N48A2Y ?PEJ*"Z8D?09(!Y?\E"(C_* 083RA3F(>[
MC9^A6WF:3OQHH+%3/A,T%D]\-DX@%H&@CJ&"]P+- RH&(\T28#(>$Q7%Z.XD
M!G>?9J\80I! J#D3DQ=I+*9:]T"*UD634[0&H_U-JF3B&0ZR!HQ12>HY#)$Q
M9A%L7J'CA :+.!^BLKBCLGB0RD(T?ZI@QX4/\M_AW80:W8LQ(.@KJ&Y8]5=
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
M:5+Y94F_!M3.@<X7B@JPWK@ VY_-^#]02P,$%     @ [S--6GA:E]N_ P
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
M))N"83A3R:K'$%!2G":)+K'%16D=!/S1'_<!<-P <-P+P/?+)>FTKL\X[5T
MZA7Q\^J[K[:6&W@]:\E_R0O&S4HK2D=1=;<[CAB(+*,IIDF#.AX<J*Q&!7?!
M[5HF:]@BE3RGL.!SX:$*"L(2C472\-*Z!E 8E<G4'=T.,',>4 RD!!BK')GF
M<8GQK%PX:.RQ:T!!6A)N6Z@W0I.)?PK>_PN6+ZJ([5NIQD2M"HIHVH6=/O)V
M/-N0^I['A>/[ OD@HG>T5Y&PZMJ\_7FU#;U/VC:M3?\@W$\:W$]Z<=]=;#UX
M05<'>/J&_.L<-WN%_FXIQ>62K@/L<@OSLFT-X[FNLM0#46=WS$NUP,V W@[E
M21OERZ8_F%W;^&45?J.2RD#:W_>7^9[_"U(?=#-T!U =-ND1_DG=Y("30335
M4G4[:$.4;-D51KKV:6>@X>&!+C>[3S1NK=R),?\!P\.;TFCP&)[2#$)F\=;4
M.R3[NC S;%U5<M0K=R$S5<Y7MY9FM[GSG597G3UY=6%\*_2*'<EP2:S^LPDU
M75U=PJJ%51MW\5DH2]<H][JF>RMJ)J#O2Z7L;L$*FIOP[#]02P,$%     @
M[S--6HAJE[>-!   M P  !D   !X;"]W;W)K<VAE971S+W-H965T-#@N>&UL
MK5=M;]LV$/XK!VW8$H"-*>H]LPTX2;<5:+$@Z58,PS[0$BT1E425I.-DOWY'
MR5:=SK6QH%\LOMUSS[V1Y^E&Z8^F$L+"8U.W9N95UG:7DXG)*]%P<Z$ZT>+.
M2NF&6YSJ<F(Z+7C1"S7UA%$:3QHN6V\^[==N]7RJUK:6K;C58-9-P_73E:C5
M9N;YWF[A3I:5=0N3^;3CI;@7]O?N5N-L,J(4LA&MD:H%+58S;^%?7L7N?'_@
M#RDV9F\,SI*E4A_=Y$TQ\Z@C)&J16X? \?,@KD5=.R"D\6F+Z8TJG>#^>(?^
M<V\[VK+D1ERK^H,L;#7S4@\*L>+KVMZIS:]B:T_D\')5F_X7-L/9,/$@7QNK
MFJTP,FAD.WSYX]8/>P(I_8H VPJPGO>@J&=YPRV?3[7:@':G$<T->E-[:20G
M6Q>4>ZMQ5Z*<G=^)!]&N!=R)7)6M[#UU]IXO:V'.IQ.+&MRY2;Y%NQK0V%?0
M? ;O5&LK Z_;0A3/ 29(;>3'=ORNV%'$&Y%?0. 38)2%1_""T=Z@QPM.V+O2
MJH%KY*HQ+]#GMH+KWMM"PU^+I>G7_S[D@0$_/(SO:NC2=#P7,P^+Q C](+SY
M#]_Y,?WI"/MP9!\>0Y_?2,/+4HN2]X%2*]C:<XCH4:C#1-]7Z!E58Z7*M@3K
MTF!;KO(?8:#XK%X46)*#*V4[W V.T?()2J%*S;M*YL#QFNAKI@#<LPB>;WW\
MHX%<K='[3\Z(0C4REZCK3+IC:FUX6YCS2_A3<#VD$F BB&:)T=DE@_L)W ^#
M!2+*G!OX'H*($C^*W"B@)/3[449)E 3P>JWQ,@/F)R1-*3!&21Q'P(*0Q&$
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
M%!UHC5JT1MUW [JPYVOR&(F[06DO[%6&WV-W7W&M3B'6R?\T8C\6!/T;@]0
M_A.X-_\;NB,++>5AV$(;Q^8>X<5[9.W-)GC3CB?1_9;H!0B'D<$W<=.@"]^T
MQ3?MQO>YJ_IUW5E.(=K)\>4YV)34&B1;A,]F5H_L6(^FPYF^EK&Z\\Z- T_6
M9E$UB%=*%#QG==304%I!Y-!/=(;5E;YOKQMBK:CGJ<&+Z_);H>QE0.(&JS42
M&+XS3I)ZM'$1T%4@,8%+#+.E0^^Y#;U35T:'NL%BM2"GD?+D"Y^Z<)""GSA1
MZH$_H@0.X8X>E+3IP((:O61%?8SE]%;CYA%A'IT0QDX:C2%,G-"C(7)&X\1&
MI1/9RV9,*TE:3V+O=#48'CWR2I0+^Y15A,"ZTO5[KUUM7\O3^I%X(*^?VA^9
M)*L4%#BGH]2$J!'+^OE:?VBQLD_&F=#T +73);WX41H"VI\+H?<?1D#['\+D
M7U!+ P04    " #O,TU:\/,*(,@'  "#%@  &0   'AL+W=O<FMS:&5E=',O
M<VAE970U,"YX;6RU6&MSX[85_2L8)=G*,ZQ%@D]Y;<_XT;2>2=(=VYM.I],/
M, 5)Z)*$"H K.[\^YX(4)6=E;7:=C"T2)(&+^SCWW$N>KK7Y8)=2.O985XT]
M&RV=6YU,)K9<REK88[V2#9[,M:F%PZ593.S*2#'SB^IJPL,PF]1"-:/S4W_O
MG3D_U:VK5"/?&6;;NA;FZ5)6>GTVBD:;&[=JL71T8W)^NA(+>2?=^]4[@ZO)
M(&6F:ME8I1MFY/QL=!&=7.8TWT_X6<FUW1DSLN1!ZP]T<3,[&X6DD*QDZ4B"
MP.FCO))518*@QO][F:-A2UJX.]Y(_][;#EL>A)57NOJ7FKGEV:@8L9F<B[9R
MMWK]#]G;DY*\4E?6']FZGQN.6-E:I^M^,32H5=.=Q6/OA]^S@/<+N->[V\AK
M>2V<.#\U>LT,S88T&GA3_6HHIQH*RITS>*JPSIW?-*6N);L7C]*R\;UXJ*0]
M.ITXB*8)D[(7<]F)X2^(B3C[43=N:=G?FIF</1<P@4Z#8GRCV"4_*/%:EL<L
MC@+&0YX<D!</AL9>7OQ90]FULF6E;6LD^\_%@W4&T/CO/IL[B<E^B90N)W8E
M2GDV0CY8:3[*T?F;;Z(L?'M WV30-SDD_?Q*-]8IU\K&6:;G[)W1'Y5/!60B
MVPW;/LT/RMZO>2_2P4'R$3EO)2NA@[).SD@!MY38ND(6JV;!QJK!'=U:T<SL
MT0G[MQ2FBSU#Y&3](,T0/3K$=.#LJC4&%IVP[^5,&E&Q;QDO@C"<TF :A$6"
M05($<9JR.R><9$F00D(<I$G"TB KI@S9B%QK6,2#?)JR:<##G$5AP).8)6D0
M\X(E45#$*<N2@!<Y%)I+;#O;[CKF/.!Y?(1!$N1QA$$2!GG.C_I=QQ'D)+B=
M!D6>XTPJX7JS-_0I_*8%3CST%HSI'(68'$V#G)-0F!1%6 [CH%A4T(#C%ED9
MIT&4A^P 5-(!*NE!J-Q*!*I4E1*>Z/I8O6\41<[;8P?+Z;)UVCRQ*VU6VI"Q
ME!.W-'#:K[S2]4HT3W]!,L_GTM/F=LXS\&U1N0^$A[6^ *?OU?OX[IC->W7M
MH&XYJ$L(-9^J^^:;@D?Y6\O4)T .2&LYV+(1$+"UL S_':SM[T;QGE01[@L4
MYQ'[;N?006ZKMK0!:U"/X9"-N ?9R+ERC+,(OPT*!X$S!>,HL12!FW";X0?@
M48Q*0%^!1,:$=_I%_G[O](;5*&"J\9=8C7)O_!@+TFZ!]RQ_ZX7U=&&A1XS?
M#ZI6;I $O[5=L26.DH^R;+W#81AYJ9L7>2.(@XUTSYUH9"4(LPBLK%>5?I(2
MCM3EA[]2X9T]ET-2-IH]D[;Q%>D@6IC.K'2NDK6GTNTB\L->-6CAO'<Q -&
M[RQKM$.(4.\5Y57U!&55 T>0OEN9>Q7:8YZ/G'2M@:N0 +3!9BG'W^>6^Z ;
M^5%4[>!\ZS88$Q8&[PH<\Z/]+MH1^?>;'^YOF)C]#SU'YZG!3[R#P8M.AA2)
M^!!>MQH)2BG1E'(K)^FP]T\DK?%F[LVD:(J4B#(Z).R[ _28#?28?5$EW90#
MC^<+[ZM]['50Z/X2>K_L3?%4XS=S #*R'SRPR=$2R8.B"<9P1CVT1,YN"?I8
M4*8893VOS38Z[I!9'U9:"\I\ &R<DIZ_O%&_I2N:]]N[,5M#A1W*^Z2.OT![
M@\^VBIP@>$XT"X66L;L%9:EE:/J&>ZW<DI5+3"%R\RO1:X$@J/%"_<NF09+[
M2IBC.&8ANQ(KD$FE?AGJP>T;4:_>7F^P8:EH3I.">H84U'GW$C=LL(1BFZ =
M0&&> E%;,F2E,.8)V%T+,[-4QZ,B8WE00/8-LKKQS$T>1)+)IMTF7]>:4.&?
MYNQ2-ZTEML;FM;)4!W%!R[3'^#.=,F@^Q9':E&L)T)1]W>/48C!T+$DX,+NG
M_XZ)T6RA627CT9.$&8OC:9]"29!Q:HI2),J]AN>VL-G!2Y*AXTARM$8Y_%VP
MG_>DZ)A#"+']-(FI6TG2:9#%W(^R($4K]0P ._ [Z8G#<X) M_@,YU\$B#%/
MT:]%7H$QSQ-T8*A@%[4V;@,):JC"L*#.JD O"(UON]SS/-0V1J(<49@^H6\T
M=$D8;FL9;5&0 R._71S&Z-U =#_!\;M>A!'?L@@ #:.(1BDZ/^3# 5K*!UK*
M#]+2'=ZO9VWE:?-]0[W0HE&_]+1TV=&K9;?(4T(% 74?2QW<XV66ZJ+@ [0P
M0!<3M6Y[?FQWE=GA>D!;/I85*BH@J1J'(%OGT0Z0BXK0$'R67RY%Y1&'?<Q.
MZ':;GQ<8S;L_#@J\:MYN^@P_5Y D]#">;J'N2EO5/73B@VS(QI51V 3YI/2,
ML!!- :S93'V]#"1M&GZQ#&I7R^X5J)?$TC#=M<?S##D816"W;?&Y ZGT2+3P
MJ.G8'YD;\^G1(9=@3_"A,L^Z;+%:5:JDU_V^597>Z=70S_F4">F-Z.M#QBE@
M&;CGM0'C"7]MP/"VF*;9'Q&QR//U:V(6!3P._YR8%=/D-1&+Z44U1SUY;<3B
MUV=86/PQT9K&K\VP/(W^K R+Z>/#U\>+VB<>!WF<[2U)DYT/@[4T"__YTZ(F
M@^N[;X3#W>$+ZT7W87$[O?L\^Z,P"P6=*SG'TO XQ]N]Z3YY=A=.K_QGQ@?M
MG*[]<"D%7E]I I[/M7:;"]I@^.Y\_BM02P,$%     @ [S--6DF4X["W @
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
M^47)&?^:S$LD68(\ MBB"KG@[;[V^QC/>BOM!N:GR=.702$%^66G @[,&ZH
M_,YHDH>H#Y[S-(_ZPRT5=U"-6Z,-U>61;' G)_,.X!:PE0F&5$YH(JH%&JCR
MQ0)AO .42-ED7="J8"$+$N@>1R7T-7 [3IB/= 1>.<DJ3N8IX\%4'%XI%%XU
M3?;R8:(/EI%_)0*&D ND*X]2RJ:%QU-12 3##- ;Z$;$<'C\?"B$\93-T<GB
M 8?T$_$ !3$93IQ0L#XL8EC8[1N0W)R4U@1@/LP/K#\9AT59_[U':!OB5;W5
MIC,;Y,XBC+R '#*>ADA3\J((01K:89L7"!+D@_\X3FRLT,-=8!@.=9J& K!3
M\9W2/9[%9/I$GAW<";U2/Y*5T?LA@YWLAOZ^=>'IY,YB$GPB/T9#!!<RU^(;
M+G-M'<XN%'5O_.,N<-"'*U<K.W0/YAO5PW),D, :&!EK%;H ?BQ96.2AP6$$
M)^8[%74,R[CX]6[PW XU#O8VQ$20V.#IP3JA/7ONVK \>OS@[KN)3[Q P%[[
MX1UTZ#V\(J^'Q]/[Z<,3]"?D8:L= *RQ-#DK<#6PP[-N^./-+CZE5L;CHAV;
M6[R$E0T3,+XVQD]_P@:'M_75OU!+ P04    " #O,TU:2]RA(E$#  #?!@
M&0   'AL+W=O<FMS:&5E=',O<VAE970U,RYX;6R%56UOXS8,_BN$=Q@2P*M?
MX[I=$B!)=UN!'1:TW?9AV ?%9F+A9,DGR4V[7S]*3G/ID,N^)*)(/GP>4:*G
M>Z4_FP;1PDLKI)D%C;7=;129JL&6F2O5H23/5NF663+U+C*=1E;[I%9$:1P7
M4<NX#.93O[?6\ZGJK> 2UQI,W[9,ORY1J/TL2(*WC0>^:ZS;B.;3CNWP$>WO
MW5J3%1U1:MZB-%Q)T+B=!8OD=IF[>!_P!\>].5F#4[)1ZK,S[NM9$#M"*+"R
M#H'1WS.N4 @'1#2^'#"#8TF7>+I^0__HM9.6#3.X4N)/7MMF%I0!U+AEO; /
M:O\+'O1,'%ZEA/&_L!]BK_, JMY8U1Z2B4'+Y?#/7@[G<))0QM](2 \)J><]
M%/(L[YAE\ZE6>] NFM#<PDOUV42.2]>41ZO)RRG/SI>]H1UC8%%]Z;GA[J@,
M_ "C)[81:,;3R%(5%QM5!\3E@)A^ S%)X9.2MC'PDZRQ?@\0$;TCQ_2-XS*]
MB'B'U15D20AIG.87\+*CYLSC9?^G>:7:#9=LT/S78F.LIEOR]SG- V)^'M&]
MG%O3L0IG 3T-@_H9@_GWWR5%_.,%OOF1;WX)??Y(+['N!8+:P@-6:B?Y/UC#
M?8W2\BVGY<(8M(<>:K*9K.%7SC9<4$/1.'_?_K<7@["+I<\+>VH0NEY7#;T&
MZ#2O$/;, !-"5<RZ\@:VBJR]@1&78!O5&Z)DQK>P8J;Q]"JW0.+[S 3I,/ !
MLC*,RY)45*IW.QHK)#?=0TB2<))G<"^?*59IIRE-PK),8:UI0&G[&D(GF+0>
MV\%V-#DL)#=A&4_@9Z7J/1<"D@D!I1-8^9>%FFJ(H?\-[PP4.87'[EYT IT2
MBU4CE5 [5S%+PXR\3YK5-!EI:D(YB>$.MZC=H7-9$218]D('X/N1ATF1PF^V
MH4*'K2S,BNRKQ(Z]>GVC(BRRF[%SZ)ZP\(6FKJ&:HR0/KY-R?+:,.&GQ*$W#
MHIB,Z8;X-E$']$FLBYB$99&/#WS>YX;I#7G6[YOZ =*;(DRR$LY=XNADZ-!)
M[OQH->"%#?/GN'N<WHMA:'T-'T;_)Z9WG)Z@P"VEQE?7DP#T,$X'PZK.C["-
MLM0VOVSH"X3:!9!_JY1],UR!XS=M_B]02P,$%     @ [S--6DM&A%1!!
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
MP\I>@J"<@=TOI#2'B0L0KM7L%U!+ P04    " #O,TU:8ZK<:'H"  "/!P
M&0   'AL+W=O<FMS:&5E=',O<VAE970U-RYX;6RUE6UOTS 0Q[_**4@(I-&D
M:=>6TD9:-] F4:E:!;R8>.$FE\2:'X+MK-NWQW;24*0U",3>U#[[[N_?^9KS
M8B_5O2X1#3QR)O0R*(VIYF&HTQ(YT0-9H; [N52<&&NJ(M250I+Y(,[".(HF
M(2=4!,G"KVU4LI"U853@1H&N.2?J:85,[I?!,#@LW-*B-&XA3!85*7"+YDNU
M4=8*.Y6,<A2:2@$*\V5P,9RO9L[?.WREN-='<W"9[*2\=\9-M@PB!X0,4^,4
MB!T>\!(9<T(6XT>K&71'NL#C^4']D\_=YK(C&B\E^T8S4RZ#60 9YJ1FYE;N
MK['-Y]SII9)I_PO[UC<*(*VUD;P-M@2<BF8DC^T]' 4,)R<"XC8@]MS-09[R
MBAB2+)3<@W+>5LU-?*H^VL)1X8JR-<KN4AMGDFU3#) Y;&DA:$Y3(@Q<I*FL
MA:&B@(UD-*6HX2]<W\$M/J"HT8ZIM+Z^ F^NT!#*]-M%:"RZ PC3%G/58,8G
M,(<QK*4PI8:/(L/L=X'0YMPE'A\27\6]BE>8#F T/(,XBL<]>J/N(D=>;WQ"
M;TT%Y36'NS7R':KOS^78J^ ^O[FN2(K+P'Y?&M4#!LGK5\-)]*&';]SQC;WZ
MZ%2^5).B4%@07PM;Q$.)[CY;5[@QR/6SU.,7H#[OJ,][;[5E/(.*/-E68,"@
MXOHYRGZ=4009>=(]1)..:-)?9_+XQSKW*OSCC4T[OND+U7GZ M2SCGKVG^K<
MK_/^=)W#HR;)417^*=#@FU?3+[O5[K6Y:)KL+_?FJ5H355"A@6%N0Z/!U/[Y
M5-/^&\/(RK?<G32V@?MI:5],5,[![N=2FH/A#NC>X.0G4$L#!!0    ( .\S
M35J(0TN"<P(  *@&   9    >&PO=V]R:W-H965T<R]S:&5E=#4X+GAM;*U5
M76^;,!3]*Q:;IE;:PF?3+B-(2=BT/52*&G5[F/;@P 6L&IO93M+]^]F&,-J1
MJ ]] ?OZGL,]U_8A/G#Q("L A1YKRN3<J91J9JXKLPIJ+">\ :97"BYJK/14
ME*YL!.#<@FKJ!IXW=6M,F)/$-K862<QWBA(&:X'DKJZQ^+,$R@]SQW>.@3M2
M5LH$W"1N< D;4/?-6NB9V[/DI 8F"6=(0#%W%OXLC4R^3?A.X" '8V24;#E_
M,)-O^=SQ3$% (5.& >O7'E9 J2'29?SN.)W^DP8X'!_9OUCM6LL62UAQ^H/D
MJIH[-P[*H< [JN[XX2MT>JX,7\:IM$]TZ'(]!V4[J7C=@74%-6'M&S]V?1@
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
M)<O*QR70.?!"0/V^8$R^+(JQ8CU&'O\'4$L#!!0    ( .\S35K=6F&_,0,
M # *   9    >&PO=V]R:W-H965T<R]S:&5E=#8R+GAM;*U6;6_3,!#^*U:8
M$$BPO#8MHZW4-;SL ]*T,?B ^. FUR::8Q?;;8%?S]E)0YMF82"^-+%]SY-[
M[JZ^&^^$O%<Y@";?2\;5Q,FU7E^XKDIS**DZ%VO@>+(4LJ0:EW+EJK4$FEE0
MR=S \V*WI 5WIF.[=RVG8['1K.!P+8G:E"65/RZ!B=W$\9W]QDVQRK79<*?C
M-5W!+>B[];7$E=NP9$4)7!6"$PG+B3/S+Y*1L;<&GPK8J8-W8I0LA+@WBZML
MXGC&(6"0:L- \;&%.3!FB-"-;S6GTWS2  _?]^QOK7;4LJ *YH)]+C*=3YR1
M0S)8T@W3-V+W'FH] \.7"J;L+]G5MIY#THW2HJS!Z$%9\.I)O]=Q. #X\0.
MH 8$;4#T ""L >%C 5$-B&QD*BDV#@G5=#J68D>DL48V\V*#:=$HO^ F[;=:
MXFF!.#V=4Y6_(.:7O/FV*;:4 =>*4)Z1*[X%I4N[?DEF65:83%&&!U6YF;P]
M2T#3@CU'B[O;A#P[>T[.2,')QUQL%+*HL:O13?,Q-ZU=NJQ<"AYPR0_(!\%U
MKL@;GD%V3."BOD9DL!=Y&?0R)I">D]!_00(OB#H<FC\>'G; D\?#@QXU89.R
MT/*%/2FS"3K)VI?90FF)?Z6O75&O6*-N5G.]7*@U36'BX/VA0&[!F3Y]XL?>
MZZZ(_4^RY#^1'44S:J(9];%7T5Q01GD*6+@IVV#-$2QPO#$X'O#[_6E73"ON
M@>4V-^QVZ@]B+QB.W>UAM#K,AF'L1\=F2:^G_QB'01.'06\<KK@&9-7D!E+
MBEJP3L$527R@)/*CEH[YJ5'HQZ]:8GO=^4>Q<2,V[A7[3@JEL&M15OS$;*^P
M/79>5/&)D%%+ZJF%[_LMI?%I]L.PL3D2,&P$#'L%S!CV:UNR6*DDE8"7,V$H
MJDO%\,1'KZ7BCQ9)G\61@E&C8/0W*3"^0Z?WHY/HO?3CEO\=-H$7#UH:.JQ"
M?]"2X1[TTA+DRLXDBJ1BPW75<9K=9NR9V6[?VK_$<:B:7G[35+/4!RI76'"$
MP1(IO?,ANB2K^:1::+&V'7LA-/9_^YKC2 ?2&.#Y4@B]7Y@/-$/B]!=02P,$
M%     @ [S--6KBMY,2!!P  C#D  !D   !X;"]W;W)K<VAE971S+W-H965T
M-C,N>&ULM9MM;]LV$(#_"N$50PO$M?@JN4L,-,G:!6B!HFF[#\4^*#83"]5+
M*M%..^S'C[)=4Q0IQG(H!$@LYWB\.U%WCWC2Z4-1?JN6G OP(TOSZFRT%.+^
MU612S9<\BZN7Q3W/Y7]NBS*+A3PL[R;5?<GCQ690EDY0$+!)%B?Y:':Z^>Y#
M.3LM5B)-<OZA!-4JR^+RYSE/BX>S$1S]^N)C<K<4]1>3V>E]?,>ON?A\_Z&4
M1Y.]ED62\;Q*BAR4_/9L]!J^NF"L'K"1^)+PAZKQ&=2NW!3%M_K@:G$V"FJ+
M>,KGHE81RS]K?L'3M-8D[?B^4SK:SUD/;'[^I?W-QGGIS$U<\8LB_3M9B.79
M*!J!!;^-5ZGX6#S\Q7<.T5K?O$BKS6_PL),-1F"^JD21[09+"[(DW_Z-?^P"
MT1@ 2<< M!N #AV =P/PQM&M91NW+F,1ST[+X@&4M;345G_8Q&8S6GJ3Y/5I
MO!:E_&\BQXG915PM3T#]&_SY?96LXY3GH@)QO@!7^9I7(ML<C\'KK"A%\B]?
M@(NB$D 4X$V<E.!+G*XX>'[)19RD+Z3<Y^M+\/S9"_ ,)#GXM"Q6E=15G4Z$
M-+:><C+?&7:^-0QU&';)YR\!AB< !8A8AE\</ASKPR<R1/LXH7V<T$8?[M1W
M(\ UGZ_*1"2\.@&OU]+A^";E8WDMC2L9-_#UG1P$K@3/JG]L#F]G(/89ZNOU
M574?S_G92%Z0%2_7?#3[_3?(@C]L[GM2I@4#[X.!7=IG^EJPN;H=3S?CZTRR
MGI& AC0ZG:R;3IAB.,(TFN[%-//(WCSB-.]M6505^)S+M)9NK'PKTYEU"6[U
ML*:9$+=L-&5H%-D-I'L#:3\#W\EC;K60&K./*89ART:+% PHI78SV=Y,YC13
M7> GX%,AXM1F(#-#& 01)2T+33$<8H:0W<)P;V'HM/"3C&"U*G^"\R1-*_#U
M/<]N>&F]^)R*^EY\GI1I/D=[GZ/!,U'D,QB>E&G!F.Z#,7WZ$IV:2Y0RW%ZA
MSHF.= ,&J@P'QZQD\)_,#?G=6/ RDP55%6374G=/U??T^M*F!Z;!)W#PY;Z;
MPE= /&G3 Z) !#I+^P'%=Z= 6_"8AD%KP5O%6"-SZP8J.(!N.CB\_.X4-2U
M;2--D:BC:$#%![ G('377VB6_S%!M&VE10HU2$*W4V$"='/"0=D-FL6?8$C:
MB& 5HZC+1L4(T T)W8GK>BD7ZC9S71V:N9QS];Y0/6G3(Z/8!(;#9RZOV.)+
MFQX0!2[0B0*'9*[(3 @T@.VE/ 1Q0(4<T,T</?*;21Y&$AX".Y#"#N3&CAZ9
M<*=)O\EH0Y1[NF/=4;" G+7WL(2YTZ$M,A*U\Z5[IF,]:6PW/%+EY6D0X_-X
M_DV>%)5$G-G3K;+W!L,0.PQ(403"PV^X.$&E=T \:=,#HJ %N:'EL+5M@@C$
MV+Q,G5,=ZXKB&N3FFL<6]U%W/>XY>Y]L3]KT""FJ0FSXU>\5IGQITP.B8 JY
M=WH>9X>= GWIRY_VTK>(L3#LX&"DX :YX>9P*D FY+2IP"FB&ZBP!?7$%D>I
M-[EE3(TM/9L4#&"'H5@Q"78SR4&)#ILT A$-VU7<)D9#UG&VL0(-[ :- S+8
M$;<_[DG[7K&^M.DA4@2#A^^88*]$XTN;'I!&T^3)71-SLR/$T_:2-H4PPV''
MBE9X@7TU3;#)&.W\Y131#530@+TU3;"E']+>6++)1*S#2%6WL8>6"3:;(2$V
M,I>E8T(I[#!0U5'LKJ,717E?E+'@X+S(%X^D(Z^;#[ZTZ8ZK^HR';YM@KWT3
M7]KT@"@>P!Y:)]BL\9@$4\C:JW6(;0RBD(&XD:%K51]U(^&>J^]9]J5-CXP"
M%3)\^X1XQ1)?VO2 *"PA3VV?$+,O@J((XW8%L<C!:(I11Q$A"A2(KP8*,5F
M!.V'+"Q"-.@RLO&,A;<>"K%T1S!E[1QB$Z,1ZR ;HL"!>.BB$!,'4$1AV+[I
ML<C!"$]9QZ,61)$#<9.#(X4=<2?AGJSW)3O$O3]1S$*&;Z00KRSC2YL>$,4R
MY*F-%&)N(%!&0B.%F6(019!VP#I1<$%\]4B(A3#:5KK:*/H#6(H8J+?&![4T
M/D+<-M(FA=&TXU$VJ@HX]=#2H&9+@]*0M$^W10PB$G7=55!55*F[J%X7:U[R
MY"X_X*["K:KOE>A+F^ZX*M5T^"X%]=JE\*5-#XC" NJA2T'-2C^=MO<0W!,=
MZTCC$4TW-70MZ:-N*=QS]3[%0_0FJ"(5.GQO@GKE$U_:]( H/J%/[4VX%?1V
MU]+""+IV *FB"NJK@^%6U-N=@YL=5/$']=;L<&OJ[8RM==+QN#A3M,(\M$3<
M.OHZPDR>F88=-,,4S3 WS3BRZA%W.>[)>GL\Q,8$4PS%AN^7,*]LY4N;'A#%
M5NRI_1)F[FS P'B!PR[5\1 I4Z3#?#5,V.,-$Z>(;J B&.:M8<)L#1,CCC:A
MKC VWC'Q\9+)5D?S12$3&!\1VMHW:;PJ5[^G^#XN[^1I RF_E:."EZ$<7FY?
M_=L>B.)^\_;<32%$D6T^+GF\X&4M(/]_6Q3BUT']0M[^!<S9_U!+ P04
M" #O,TU:;L+<1, %  !+(0  &0   'AL+W=O<FMS:&5E=',O<VAE970V-"YX
M;6RUFEUOVS84AO\*X15#"R2U2.JS<PSD8^T*M$#1--U%L0O%9F(ADNB2M-/N
MUX^2%5$2CP1I=6YLR3Y\]9YCB@])>?'(Q8/<,*;0CRS-Y=ELH]3VS7PN5QN6
MQ?(UW[)<?W/'118K?2KNYW(K6+PN&V7IG#B./\_B))\M%^5GG\1RP7<J37+V
M22"YR[)8_+Q@*7\\F^'9TP>?D_N-*CZ8+Q?;^)Y=,W6S_23TV;Q662<9RV7"
M<R38W=GL'+^Y=)VB01GQ-6&/LG&,BE1N.7\H3MZOSV9.X8BE;*4*B5B_[=DE
M2]-"2?OX7HG.ZFL6#9O'3^IOR^1U,K>Q9)<\_3M9J\W9+)RA-;N+=ZGZS!__
M8E5"7J&WXJDL7]%C%>O,T&HG%<^JQMI!EN2']_A'58A& ^SV-"!5 S*V :T:
MT#+1@[,RK:M8Q<N%X(](%-%:K3@H:U.VUMDD>?$S7BNAOTUT.[6\C.7F!!6O
MZ,_ONV0?IRQ7$L7Y&KW/]TRJK#P_1>\$EQ+=Y+JOI,F_;(T^Z'-VB'P;)P)]
MC=,=0[ICH?-]G*3Q;<I.]=GIM99L:;V\8DH'O-*B-]=7Z.6+5^@%2G+T9<-W
M4LO)Q5SIS I_\U65Q<4A"]*3Q15;O484GR#B$!=H?CF^.6TWG^MZUD4E=5%)
MJ4=[]6X5NF:KG4A4PN1)IR*RJ,BW#[H1>J]8)O^!$CY<P86O4-S<;^0V7K&S
MF;Y[)1-[-EO^_AOVG3^@](\DUBH&K8M!A]27IG.<H ],]R&UB7.$"<IXKC;@
MCWT0]$K!8AS:+PGQ""&+^;Z9E1WFAYX7U%$MNVYMUQVT:_7PT:X/NG[#SBG%
M4=0Q#41AS\>P::\V[8VN\3OM7S%1&_[8:]BSK$34"[M5MJ,(I=1Q8<=^[=B?
M6N;QQGV[A@3CL&,<B JCJ,=W4/L.1E8:,A98EZ0X#!NU.C@#PAP<]G6"L+86
M3BLIY#"TB^)1''0, E'8\3P/-AC5!J-!@U^T/[D3/]%%DJ82??O(LELFP-%O
M4&CJZ'<DL5;.V#& =9X=!M4ECE2/8ZFU"]*8<>!C Z%2;'9(EV"W.[8"8<0)
M2$^WQ0;G>!"0O\"$2KAU)[D-0Y5O( I[M,>V 2\>3][Q@VLEVBJB&W9'"##*
M[1G!L($OGDS?"<XAMG;'7BC(=WI\&_[BL0 &C=D,=5V?^EUK$&JQ[_>8,ZC%
M$UD+>@1PZ5+K#@/1V]=3#53Q,%7/M2MU>A&O'K1',U8.(F)8<O*8>"2U=@$,
MNG'X_) 8G!Y,+LB1U-H%,5,%/#Q7^#^0B*R^B7&Y'FQW82 L<'P"]V%B.$\&
ML?D+D*B$VY,RMSOB0E'8:3"P[=O@F(S'\?BQE@"H)9'3]0Q%>7VE;BRO)_-X
M@G,(MI9QB-L]*TMB@$S& ADT9B,54VH!# J+FF%M<P:]9")Z08\ /9M+[LHB
M!&(GZ@$9,90EPY2]YGLF6'*?HPN>KX?Q,"PU>0/E2&KMQ W!B?_\&TJ#DX3)
M!3F26KL@9L) QB[#QX^R]JK;NNN'0MI.#=G)Q%7Y>,/V*MPR/!32-FS(2\:3
M=\*H:E,ULG$ H#?R0]@Q->2ED\D[WC@%L$IHQS@4%/94FAKRTK'D!8W9[+0K
M"@0-5-0 EDX$+&@08*1=.2"HMW*-+>5AD%YRL>5"_\(C0# L-77<.Y9:.W$#
M:>H^.PCHX#Q@<D&.I-8NB)D2T/$[WV.?+MC+;!P0Q]I- N*H$P1]G=? G$[>
M^A[K'%I]$]*=?D%AU.M9*%##7#J>N1/&5YNI81#B[A88$$:([[L]6PO4\)=.
MYN\$\\!&.'$"W#4/A(6AT[->H ;%="R*07,V38D7A7YWP0#&!6[?KHUKN.M.
MY"[X5,RQGM*=NB3J/JR!PB)[[VO>>-)=_,W@8RSNDURBE-WI=L[K0 N(PY/[
MPXGBV_+A]RU7BF?EX8;%:R:* /W]'>?JZ:1XGE[_?V+Y'U!+ P04    " #O
M,TU:06D7O=8"  !4"   &0   'AL+W=O<FMS:&5E=',O<VAE970V-2YX;6RM
M5EU/VS 4_2M6AJ8B4?+9C+$V$FV (8T)P=@>ICVXR6T3X<3%=ENV7[]K)\W:
M$"HF\9+$]CG']]SK^G:XYN)!9@"*/!6LE",K4VIQ:MLRR:"@\I@OH,25&1<%
M53@4<ULN!-#4D IF>XX3V@7-2RL:FKD;$0WY4K&\A!M!Y+(HJ/@]!L;7(\NU
M-A.W^3Q3>L*.A@LZASM0]XL;@2.[44GS DJ9\Y((F(VL,_<T#C7> +[GL)9;
MWT0[F7+^H =7Z<AR=$# (%%:@>)K!1-@3 MA&(^UIM5LJ8G;WQOU"^,=O4RI
MA EG/_)492/KQ"(IS.B2J5N^_@RUGX'62SB3YDG6-=:Q2+*4BA<U&2,H\K)Z
MTZ<Z#UL$-WR!X-4$KTT(7B#X-<%_+2&H"8')3&7%Y"&FBD9#P==$:#2JZ0^3
M3,-&^WFIRWZG!*[FR%/1A,KLB.@G.7]<YBO*H%3RB- R)5?E"J0J] 3IDUN@
M+/\#*;G$PT1Z7[B4AP0KMXWJQ:!HSG"A3^[O8M([."0'!.'?,KZ4J"F'ML*H
M]=YV4D<XKB+T7HC0]<@U+U4FR7F90KHK8*/=QK.W\3SV]BK&D!P3WSTBGN,%
M'0%-7D_W.^CQZ^G>'C=^4T'?Z/E[*FC*U2XB^7DVE4K@+^M75]8KU:!;5=\V
MIW)!$QA9>)U($"NPHO?OW-#YU)6QMQ2+WTAL)YM!D\U@GWIT*?!<XWU6G_4Y
MGO7.,UNI#(R*OEI7T<G07FVGY#G"==U=3-R!\?T&LV-@T!@8_(\!AB/H=%#)
MA%M[]]VPY:$#XSGAH.6B ^6[@VX;86,CW&OC*W:\W2J07N7EL,M,^"R1_78]
M.B#NQT'0\M*%.O%:7NRM^[8 ,3=]2Y*$+TM574/-;-,:STQ':,V/L656'>Z?
M3-5OKZF8:],,9BCI''_ D$35PZJ!X@MSJT^YPAYA/C-L^R T -=GG*O-0&_0
M_)&(_@)02P,$%     @ [S--6@'.HX &!@  $BD  !D   !X;"]W;W)K<VAE
M971S+W-H965T-C8N>&ULO9IM;YM(%(7_RLA;K5HICID7,'0=2TW2JI5:J6K:
MKE;5?AC;XQB5%Y<9.\V_WP$3!C/DKH,@7Q)C,_>>,V#.PYC979K]E!LA%/H=
M1XF\&&V4VKZ>3.1R(V(NS].M2/0GZS2+N=*;V>U$;C/!5\6@.)H0Q_$F,0^3
MT7Q6O/<YF\_2G8K"1'S.D-S%,<_N+T64WEV,\.CAC2_A[4;E;TSFLRV_%3="
M?=M^SO36I*JR"F.1R#!-4";6%Z,W^/45<_,!Q1[?0W$G:Z]1;F61IC_SC0^K
MBY&3*Q*16*J\!-?_]N)*1%%>2>OX518=53WS@?77#]7?%>:UF067XBJ-_@Y7
M:G,Q\D=H)=9\%ZDOZ=U[41HJ!"[32!9_T5VYKS-"RYU4:5P.U@KB,#G\Y[_+
MB:@-P.R1 :0<0$X=0,L!M#!Z4%;8NN:*SV=9>H>R?&]=+7]1S$TQ6KL)D_PP
MWJA,?QKJ<6I^Q>7F#.5_T=M?NW#/(Y$HB7BR0A^2O9 J+K;'Z.UZ+8HI1Y^X
MVF6AND>ZH9 H7:,W>QY&?!&)L3ZOQC>ZQM'@E]="Z1U>Z2K?;J[1RQ>OT L4
M)NCK)MU)W4G.)DI;R05-EJ7LRX-L\HCL:[$\1Q2?(>(0UC+\ZO3A]'CX1$]@
M-8NDFD52U*./UELH=".6^;R$0IXU9D3F,_+CHQZ$/B@1RW_;#!\ZL/8.^;?Y
MM=SRI;@8Z:^K%-E>C.9__H$]YZ\V^ST5.YH,6DT&A:K//PHID=KP!&'TC^!9
MF]E#!;>HD%]I]G,W"%QO-MG778!].KI@E0L&NL!C4JAO/3D/0[V:_.F48=*0
M#S;H*-^MY+N@?#*FC\MW+?D84W?:U ]VZ*C?J_1[H'XZ9H_K]RS]/@ZHTY /
M-N@H?UK)GX+RV=A]7/[4DN\Q-VB>_&"#CO+]2KX/RG_'PPQ]Y]%.G*&OJ>)1
MFPW?LL$<QW=9PX=O?=7IE'K$G&Q'"H-*80 JY \76*0OL*BXP,KJ^JMS7%^/
MXT-.Y=M\K42&UGEZW>='!2V$'I8/V8ND?&N=>][GGMO,!I992GV_8164W/&0
M8<<DN0-.R5>-<7*7W:/+,(HD^O%)Q N1M68-7.FI8=-7M6/?-8+!@X=OV:*O
M">FIVO&$&!C!8+R?%,!EB?H)39@_;9S0<*.N1@Q(8)@DP PNQ]8=!'AJ.1B"
M(;"!" Q3!!C#V,8(@JGG-BT,P1'8@ 2&20),8MR"$L1S+ M#H 0V+(%AF #3
M&-LTT20)N'Q7^88E, P3)Z4QMJF"N1YMIC'<JJL5PQ48!HOGCFUL0XIU<$'%
M76?$< R&0>8JS;9IIN^DT66J;X7AV.X),$KC0^ *,;A"G.'OF7OEF+ZJ'4^(
MX1@"8L%)L5V6J)_/KCMES3LWN%-7)[75$!A P-PF-GEXA)+FA0INT=6"00\"
MHP<8W*0%/0AQFNP!M^AJP; '@=D##&YBLX?G.R1H6AB"/8AA#P*S!QC<Q&8/
MCWC8.I&&8 ]BV(/ ['%2>!.;02AS MQ<$X![=?5B0(3 (/+<Z4ULIFFF-ZRX
MZXP8GB$PS[R14JCQ)5_^%*M:F($I#I=\<F@-@2_$X L)AD_Q7K&FKVK':]\&
M:RB\"G/2ZK=CKQ_39GK ?;KZ,#1"81H!,YRV8$B <=/!$!1"#850F$+ "*<V
MA30O+7#YKO)KOZ+ ! +&-[4)!!-K"1GNT-6! 1 * PB8WM0&$!SX39"%.W1U
M8/B#POQQ4GC3EC402BT.@5MUM6(XA,(<\MS935N0QEXQAT5WG10#-!0&FIMT
M+S(1WB8GW'S#I9Z:4GU5.S9NN(7Z@\<V[95C^JIV/"&&8RB\#'-2;-L_ @6!
ME1I#X <S^,%@_(!_MK:YHRD?+M]5OJ$.!E,'F-G,I@Y+_A#(P0QR,!@YP,QF
M_X\<</FN\@UR,!@YP,!F-G)8\@=Y8*/VQ ;,&R>E-;.YP_X2PXVZ&C'8P6#L
M>.ZL+N6XT*'ME5XFM0?6\J<%/_'L-DPDBL1:EW?.I[I;=G@ [["ATFWQ#-LB
M52J-BY<;P5<BRW?0GZ_35#ULY(_%58]!SO\#4$L#!!0    ( .\S35K&NW%6
M_@(  %$,   9    >&PO=V]R:W-H965T<R]S:&5E=#8W+GAM;*U776^;,!3]
M*Q:KIE9:PS<A78*T!E6+M&I5NZX/TQY<N$FL J:VD[3_?C901!+*THB7X(][
MCN\YL<UEO*'LB2\!!'I)DXQ/M*40^86N\V@)*>8#FD,F9^:4I5C(+EOH/&>
MXP*4)KIE&)Z>8I)IP;@8NV'!F*Y$0C*X88BOTA2SUTM(Z&:BF=K;P"U9+(4:
MT(-QCA=P!^(^OV&RI]<L,4DAXX1FB,%\HGTS+\*1BB\"?A/8\$8;*26/E#ZI
MSBR>:(9*"!*(A&+ \K&&*22)(I)I/%><6KVD C;;;^Q7A7:IY1%SF-+D@<1B
M.=%\#<4PQZM$W-+-=ZCTN(HOH@DO?M&FC/4,#44K+FA:@64&*<G*)WZI?&@
M3.<=@%4!K$,!=@6P#P4X%< IG"FE%#Z$6.!@S.@&,14MV52C,+- 2_DD4W_[
MG6!REDB<"&;9&C)!&0&.SE&S=QJ"P"0YD\/W=R$Z/3E#)XADZ->2KCC.8C[6
MA4Q T>A1M=AEN9CUSF(A1 -DFU^095A."WQZ.-QN@8?=\)^1&"#3;X/KTK7:
M.JNVSBKX[/]8]XK^_)!3:"8@Y7_;7"EYG'8>=; O>(XCF&CRY')@:]""SY],
MS_C:YE&?9&%/9%O^V;5_=A=[<(LW<B<+8 0GK9NIA+L%7%U?Z\#W1N9PK*^;
M?NQ'C6S+,+>CPLY4CA3JU$*=3J$/\N8[)]EYSF@$O%5J2> U1+BNX^PH;0D:
M.CMVA)VI'"G4K86ZG4*O2$;D512C!:7M]X.[)\%S#<_;$=H29=OVKM+.7(Y4
MZM5*O4ZEC8NR3::WMR=-=^A:NUNW)<RS+-_=$=J9RI%"A[708:?0:ZE1P N:
M4I93AM6[NDUP)\E';[@^R<*>R+;,\VOS_)[>$'Z?_O5)%O9$MN7?J/9O=.@I
MDP7B\XHPB-O<ZV3YJ'M]DH6CO1-NF;YOU0>\M$5OU&^JV+[&;$$RCA*82YPQ
M&$H"5A:P94?0O"CI'JF0!6+17,J:'Y@*D/-S2L5;1U6)]5=$\ ]02P,$%
M  @ [S--6DS)T8%R!   W!D  !D   !X;"]W;W)K<VAE971S+W-H965T-C@N
M>&ULM5E=;]LV%/TKA%8,+9!&(O6=V0::9$$#)(#1M-M#L0?&HFVADJB2E)W^
M^Y&RHB\K7)Q)+[9DWWM\[N&1?$S/]I3]X%M"!'A*DXS/C:T0^85I\M66I)B?
MTYQD\ITU92D6\I1M3)XS@J.R*4U,9%F>F>(X,Q:S\K4E6\QH(9(X(TL&>)&F
MF/VZ) G=SPUH/+_P)=YLA7K!7,QRO"$/1'S+ETR>F35*%*<DXS'- "/KN?$)
M7EPA3S64%7_%9,];QT"-\DCI#W5R&\T-2S$B"5D)!8'ETXY<D2112)+'SPK4
MJ#]3-;:/G]%ORN'E,(^8DRN:_!U'8CLW @-$9(V+1'RA^\^D&LA5>"N:\/(1
M[*M:RP"K@@N:5LV201IGAV?\5 G1:H#."PVH:D"O;;"K!KL<],"L'.L:"[R8
M,;H'3%5+-'50:E-VRVGB3"WC@V#RW5CVB<6224<P\>L,+!.<B3. LPC\^;.(
M<[E6 GP$_U'P_IH('"<?9.6WAVOP_MT'\ [$&?BZI067I7QF"DE3?9BYJBA=
M'BBA%RA=D]4YL.$90!9R!MJO7M]N=]M-*4ZM$*H50B6>_3J%>O-_OY/EX%:0
ME/\S-.H!VQG&5M?H!<_QBLP->1%RPG;$6/S^&_2L/X8&'PFL(X-=RV#KT%LR
MY+4,Y%F&,[!AE ^N]0'5+5'5/66W0,AUK7!F[MJC#919'D*H+NN0=FK2CI;T
M'>'\0MXJ5D5:)%B02%[A4IM5C-4]9(CN <]K\?@(D6]Y3H_O4)UEV;X]3-BM
M";O_1^6,R =!!4Z&N+M'G,+ <=P>\^,J:+F!$PX3]VKBGEYIQ?3[/4D?"1N\
M$+3MIUX((X%U)O7K2?T)[P?^F#*,!-:1(:AE"":Y'P1']@M\"'L>'2@*+'?8
MH6%-.-02OBSB)(JSC=:E6HA3EV<DL,ZTT&J^V*T)?5J!CZ3$6&A=*5H9!T[B
MU0JV[4,["/R@Y]:A,@="?]BOL D>4/N%WCCV-LT9W1'%EFOMJP<\>=6FR!NP
M"1S0GM+ VCASLA0CH76E:&(,U.>8-QOX.*8XGA-Z?0,/E#EA^$+X@DV8@?HT
M<T?D#ZPM3:(3'*Q%/'G91D+KSM]D(NA-Z>!1(]-8:%TIFM $M6'D[0[VCZR)
MH.>@OH./RV#HM7)%EW83<J ^Y5S1-"\$8> S9M$>,P(^2>(/="W*$ZV3M<@G
M+]](:%T=FNP$PRF=/&JL&@NMNQO0Y"JD#2MO=G(%V[:HZ_MA/_H.E;G0=8:=
MC)H,A/09Z!YGQ1JO1,%4HOA*N&@OH,;'>MR3MS!&0NNJT-K+F70S9]S=G"GB
M%6KB%9IF0Z>"[80%UT5VW\?'9;8'@Q<R!6JB$-)'H9N"9;%T,2D)W\1/ZEB?
M*?2()R_;2&C=^9M,A=PI'3QJO!H+K2M%$Z^0?L_IS0[VCC8;/<?K_ZH;J/*E
M@WO^-5M;[^I_CWO,-G'&04+6LLTZ]V4_._R5<#@1-"]WXQ^I$#0M#[<$1X2I
M OG^FE+Q?*(V^.L_=!;_ E!+ P04    " #O,TU:UXP;!NL#  !>$@  &0
M 'AL+W=O<FMS:&5E=',O<VAE970V.2YX;6R]F%UOFT@4AO_*B*U6K90$!F,'
M9VVDQ+3:2(W62K;=B]5>3.#8'A48.C/$Z;_?&<"8K]#41;VQ 9_SSCD/GI=A
M%GO&OX@=@$3/<92(I;&3,KTR31'L(";B@J60J%\VC,=$JE.^-47*@81Y4AR9
MMF7-S)C0Q/ 6^;4U]Q8LDQ%-8,V1R.*8\&\W$+']TL#&X<(]W>ZDOF!ZBY1L
MX0'DIW3-U9E9J80TAD10EB .FZ5QC:]\[.B$/.(SA;VH'2/=RB-C7_3);;@T
M+%T11!!(+4'4UQ.L((JTDJKC:REJ5&/JQ/KQ0?U#WKQJYI$(6+'H'QK*W=)P
M#13"AF21O&?[/Z%L:*KU A:)_!/MRUC+0$$F)(O+9%5!3)/BFSR7(&H)>/9"
M@ETFV.T$YX6$29DP>6V"4R;DJ,VBE9R#3R3Q%ISM$=?12DT?Y##S;-4^3?1]
M?Y!<_4I5GO367/V%N/QVAM81220B28C>?\UHJNZM1.?H.@RIOD$D0K=)\3?3
MM^NM#Y+02+Q3(9\>?/3VS3OT!M$$_;UCF5 B8F%*59X>Q S*4FZ*4NP72L$V
MNF.)W GT/@DA; J8JJ^J.?O0W(T]J.A#<($F^ S9ENWT%+1Z??JD)]T?3O\K
MD!<(NWWIC6XFU:V:Y'J3DV[5O]>/0G(UC?[K(U\H._W*VENN1$H"6!K*/ 3P
M)S"\WW_#,^N//FICBODCB36(.A519TC=\ZE(F2"1T/]<Q9:RL ]>(3+-1;2/
M/GGSJ6LMS*<ZE&X0MAT;-Z/\P7I.['9:=3L=[/8>PJPP6[91?AMD<181":&R
M235:0(N9'6: )$/A 4T?D&*<61V(,[=;0+I!V,:NTP(R6/*)0&85D-D@D(],
M"*1;SGNE!S1I-<_2:I[!89[UX9AU.G7=%HQNB&W/6R@&BST1Q66%XO)GO.6C
M"D>W$F+1ZRZ78[K+F&+^2&(-IF[%U!W#7=SN9.JZ2S>HSUT&ZSFQVWG5[?P7
MN<O\->[2#>ISE\&23P2"K>/2ROHE_E(.4W^VG'<<I@RJ$SGO>LQPQ:<2J2TV
M\2 193,!0"C0AK,8/9 (-)"6^9PUW:>7R. P/^HXI5J=K]OF-M* 36[VD9L]
MR.V.<2KA&:T83QG/IU(OED&5'\8RIIH_EEJ3X''MC']J\?R=!QP>=?T\JIH_
MEEH3['$)C8?7T.LA-U,/ G7(VR]S)=21%L,EU#'5?-RSG)^[UK2RA8*667OQ
MCH%O\PT,@0*6);)X3:VN5ILDU_G60.OZ#;Y:%5L=1YEBY^6.\"U-!(I@HR2M
MBTM5$R\V,XH3R=+\]?Z12<GB_' ') 2N ]3O&\;DX40/4&TI>?\#4$L#!!0
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
MI)-,&7O0G:MT8%@:""@D4CM@=5G!""C51@KC=^UI-$MJX6;[V?VRS*ZR3+&
M$:/?22H7 R,T4 HS7%!YP]9?H,[C:;^$45'^HG4]US)04@C)LEJL"#*25U?\
M6-=A0V"[KPB<6N"\5="K!;TR:$56QAICB>,^9VO$]6SEIAME;4JU2D-R_2].
M)%=WB=+)^"J7.)^3*04T% *D0!_1A9!$%0A2-,P8E^0/+BM^\:@>'0%H4B0)
M0$KR.;HD(L$4_0#,!3H>@\2$GBB'N\D8'1^=H"-$<G2[8(7 >2KZIE3$>ETS
MJ>G.*SKG%;HQ)*>H9W] CN6X+?+1V^6]EW)3U:DIEM,4RRG]>J_X?68L71-*
MD4J#=BLW5M6@3!0<T,_A5$BNGM%?;:&K5=SV5?1[>R:6.(&!H5Y, 7P%1OS^
MG>U;G]I*\)_,7A2DUQ2DU^4>J[IZ;0$KE5>J]'=D%=N6[09]<[5)WNE](+G;
MD+O[R/TV\DKE;Y!'0>!M@7=:'PCN->#>/O"@#=S; 0]#S]H"[[0^$-QOP/U]
MX&$;N+\+;CO;X)W6!X('#7BP#SQJ P_> MYI?2!XV("'G>"W"U ;^TP";\,/
M=_!=SP^<+?[.%0[DCQK^J)/_FSK$C##G3WJKN<>T@+8<T<ZW)K+\T-W*L3O+
MMIW(^Q>W(C0W=E)]BOF*^9SD E&8*:%U&B@'7IT,JHYDRW)SG3*IMNJRN5"'
M*>!Z@KH_8TP^=_1^W1S/XK]02P,$%     @ [S--6DWQ/SGK @  X0@  !D
M  !X;"]W;W)K<VAE971S+W-H965T-S8N>&ULK99;;]HP%,>_BI554RMMS?U"
M!Y%:V+0^3*O*VCZ;<"!6'3NSS>W;ST[2#$A@?=@+V,G__/T[Q[<,-UR\RAQ
MH6U!F1Q9N5+EC6W++(<"RVM> M-O%EP46.FN6-JR%(#G55!!;<]Q(KO A%GI
ML'KV(-(A7RE*&#P()%=%@<7N#BC?C"S7>GOP2):Y,@_L=%CB)4Q!/94/0O?L
MUF5."F"2<(8$+$;6K7LS'AA])7@FL)%[;60RF7'^:CKW\Y'E&""@D"GC@/7?
M&L9 J3'2&+\;3ZL=T@3NM]_<OU6YZUQF6,*8TQ<R5_G(2BPTAP5>4?7(-]^A
MR2<T?AFGLOI%FT;K6"A;2<6+)E@3%(35_WC;U&$OP U.!'A-@/?> +\)\*M$
M:[(JK0E6.!T*OD'"J+6;:52UJ:)U-H2969PJH=\2':?2VRP3*YBCKUN]+B1(
M]!F-.9.*J!4P)1%?H([D<@(*$WJEM4_3";J\N$(7B##T*^<KB=E<#FVET<P
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
M2A":24$4S,?.E7^91C:^"?C.8*4WQL16,I/RT4YN\['CV82 0V:L \7;$B;
MN37"-'YWGDZ_I!5NCM?NGYK:L989U3"1_ ?+33%VWCLDASFMN;F3J\_0U7-N
M_3+)=7,EJR[6<TA6:R/+3HP9E$RT=_K4<=@0^-$K@J 3!/L*PDX0[BN(.D&#
MVFU+:3BDU- D5G)%E(U&-SMH8#9J+)\)N^WW1N%;ACJ33&19,H/[:#2A(B<3
M*0P3"Q 9 TW>D:L\9W:#*">WHOW*['8=IV HXR<8\7"?DN.C$W)$F"#?"EEK
M]-&Q:S [NX:;=9E<MYD$KV220G9&0O^4!%X0#<@G^\O# 7FZOSS8EKN(M.<:
M]%R#QB_\+ZXITQF7NE9 ?E[-M%'X^?\:0M8N$@TO8EO"I:YH!F,'S[P&M00G
M>?O&'WD?AP >TBP]D-D6W+"'&^YR3Z:UR@H\[$2J'!3!;J8-0D:^0PQ;K_/&
MRW;!91)%P>A#["XWX>Q<\5_A',AL"T[4PXEVPOEJ"F1R*Y;X[4GU?$K6M')R
M(V6N3\F-DGKP@$8O2/D7T<C_B]1 E#?R1]M1Z<NH\TWH;6GN1N.R?YDO5"V8
MT(3#'&7>V07J5=NYVXF15=/+9M)@9VR&!?[L0-D ?#^7TJPGMCWVO\_D#U!+
M P04    " #O,TU:F]>31]0"   5"   &0   'AL+W=O<FMS:&5E=',O<VAE
M970W.2YX;6RM5FU/VS 0_BM6AB:0!GDM ]9& K(-I'5",+8/B ]N<DTL$KNS
MG9;MU^_LI%F T#&)+XU]ON?)W7/.7<<K(>]4 :#)?55R-7$*K1='KJO2 BJJ
M]L0".)[,A:RHQJW,7;600#,+JDHW\+Q]MZ*,._'8VBYD/!:U+AF'"TE47554
M_CJ!4JPFCN^L#9<L+[0QN/%X07.X GV]N)"X<SN6C%7 %1.<2)A/G&/_*!D9
M?^OPG<%*]=;$9#(3XLYLSK.)XYF H(14&P:*CR6<0ED:(@SC9\OI=*\TP/YZ
MS?[)YHZYS*B"4U'^8)DN)LZ!0S*8T[K4EV)U!FT^-L!4E,K^DE7KZSDDK946
M50O&""K&FR>];W7H ?S]9P!!"P@> Z)G &$+"%\*B%I 9)5I4K$Z)%33>"S%
MBDCCC6QF8<6T:$R?<5/V*RWQE"%.QPE(MJ1&>W+.E98UEE0KLDN.LXR9RM"2
M)* I*Q79;A<[>/Q5:+0KEG.J(2-4D3/(<L;S'@VYF4(U WF+_M=7"=G>VB%;
MA''RK1"UHCQ38U=C#B82-VWC/6GB#9Z)UP_(5'!=*/*19Y ])' Q^4Z!8*W
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
MFA;;)]W2?TFS/]=SW/X/4$L#!!0    ( .\S35JBY@,=N@(  #D)   9
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
M^$ : ]S/A=#KB0G0/:7Q;U!+ P04    " #O,TU:>@(F[9,$  #5&@  &0
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
M$R71<KW<[!U%B_>_-V4NH_<( 74\0&D4E,:@:.JC^]+Q(-:)-Y<$-  )E!:
MTB@HC4'1U(XA_1>RWW^)DJ?VPTG=NU%:O<U<LOOFACEG;VU!HXY :0R*IFHK
M;1]BMGTT$_YA]SO,W-YC&=0R J514!J#HJEZ2\N(G/I_]A!0:PF4%H#2*"B-
M0='4CM'ZSSWF$*3C)WDSUS%,\J#N$"B-@M(8%$W55KI#Q.P.:2;YXZUC<UF]
MQS=H@!$HC8+2&!1-[0/2IR+>J2=^2+O(!Z4%H#0*2F-0-+5C2&.,F(VQXR=^
M,]<T\8.&+H'2*"B-0=%4;:6%1LP6VDWX^O_;.>8R>H]KT,@F4!H%I3$HFJJ]
MM/+(J2.;"*C/!TH+0&D4E,:@:.I_?Y0^GVN.;#IZPM_#=7=/^.:<?;4%I5%0
M&H.BJ=I*J\XU6VJ:"?\P.\?,[3N606D!*(V"TA@43=5;VG?NJ1\:=$%]/E!:
M $JCH#0&15,[AO3Y7'-HV/&3O)EKV-6;<_;6%M2J Z4Q*)JJK;3J7+.EIIGD
MC[=SS&7U'M^@EAXHC8+2&!1-[0.M_^%]Z@<)75"?#Y06@-(H*(U!T=2.(7T^
MUQR/=OS$;^8:;M::<_;6%M2J Z4Q*%JM[:CU\I@ESYZJU_SD:):NDZ)^@<KF
MZ.950E?5"W2VCE_;7X/ZA4 24[^?Z";,GJ(D1S%_%$AK.!:=,ZM?^5-_*=)5
M]8J:A[0HTF7U<<'#.<_*!.+OCVE:O'\I"]B\>.GR?U!+ P04    " #O,TU:
M,Q[/V.(%  "+(0  &0   'AL+W=O<FMS:&5E=',O<VAE970Y,"YX;6RUFEN/
MVC@4Q[^*E:U6K<20V+D09ADD&+J7AZJC3KM]6.V#20Q$36+6-C#S[=>YD#LN
M09F7F23X_.WSBWU\3I+9B;(??$>( "]1&/,';2?$_E[7N;<C$>9CNB>Q_&5#
M682%/&5;G>\9P7YJ%(4Z,@Q'CW 0:_-9>NV)S6?T(,(@)D\,\$,48?:Z)"$]
M/6A0.U_X$FQW(KF@SV=[O"7/1'S;/S%YIA<J?A"1F <T!HQL'K0%O%\A)S%(
M6_P=D!.O'(/$E36E/Y*3O_P'S4A&1$+BB40"RW]'\DC",%&2X_@O%]6*/A/#
MZO%9_??4>>G,&G/R2,/O@2]V#YJK 9]L\"$47^CI3Y([9"=Z'@UY^A><\K:&
M!KP#%S3*C>4(HB#._N.7'$3%0#K:;8!R ]0P@-8% S,W,*\UL'(#*R63N9)R
M6&&!YS-&3X EK:5:<I#"3*VE^T&<W/=GP>2O@;03\V=!O1]W2TG.!X\TDM.)
MX_2&?'Q)C@FX \_9E !T ]+6X/,^;;%(;ED@7L'[%1$X"#_(MM^>5^#]NP_@
M'= !WV%&. AB\"T.!!]5+GS=T0/'L2\OOJN=SW0AG4J&IGNY \O, 73! 8C
M)QJ+'0<?8Y_X=0%=TBB0H#.2)5(JKH@W!B8< 60@JV- C]>;FQWFJ^O-D<(;
ML[C!9JIG7KK!*?0NKIF=U6V7Q)M[OL<>>=!D0.&$'8DV__47Z!B_=3$94FPU
MD%B-EU7PLE3J\R79!G$<Q%L93D(<>P3(:,F%G)SR6A?&3,Y)Y9(H>YQ/#<.=
MZ<<J'F6???$,)%;#8Q=X;"6>/QB.17.992#L%@CH6+ !0JG>%\1 8C403@'"
M48+X^$*8%_!N%$X+Q1VR4 .%4K\OBH'$:B@F!8J)$H7<@#<DD+,"4 ;(RSY@
MW50F;2JN8S6H*+OJ2V4@L1H5MZ#BJB=(&C&NC2)N.XK8EME@T]&H%6I6RE'=
MZ/.T\'GZ\\WF;MW.)A9,QHTMD0FC .M74&WWA%_3RXL39OXH3RYD8O"Y!#8"
MW]/\3;9>' F3^2@X+S_PQ ))]Y_%F@LFD\A_N^!.A]SIAA1;#216NUG0*',_
MX_:];@1..?0[G$,G9^C[!'IGKI9U.*E,4=L8NY/&1%:/JR_$H=3J%"L9-+QF
M2[R-5YZ=5]>T.1U/FGN%>@B]@0VD5@>&2F#HNJWS-F2HC0Q98[<9+-6#Z(UL
M(+4ZLC*)A\J<MW.+O8V>V:9GFV/83%C5X^E-[RTR>EBF]%"=TU_>BF]C:+6"
MG#4=-Q.9CE8=H7"E'OJM:,IT'JKS^7PMXG5(1N!RK0C;R;WMV-.FRX-F]T.I
MU<F4^3U4)_AY(@*.A)?KCGC)L:#IU4Y0[=1_:L 6J$%S_Z'4ZJ#*[!^JT__:
M%+IE.4VZEM/$;C(;M#(82JW.K*P-H+HX^/GDN@VEVX72:643 ]4(.<JWJ#A@
M67) 99(\_ZR,YHPD#[^3Z._1.*T0#C@$@K (O ]B\$HPXQ\Z4:I[M3-3, %1
M]O01FL#'KUW!\U$MU1OW6]0,J*P9D+IF4*_VFW'_I%<SQPV-,V]D7>2MUNK+
M>RBU.N^RND#JZN*F2''[;5 /YCSK[6+6H\MW8="292BU^ETH2Q:D+EEJ009O
MMXQLL2 @D'"#F <>..+PT!F2<V&[$I(==]I,M]7=]X;U%L4**HL5I"Y6:B&B
M'RRSE3TY+FQFUNKN>\-ZB]H$E;4)4M<FUZSO?@S;+R0<MY5-J4?5F^%;%#&H
M+&*0NHAY8M0CQ.=@PVA4>TG)@?(Y/6J7-8X!F^\L\E;5)0PA-!K3<M75#"&G
M+/CJWI6%"%(7(MG#TF7]86GY/'54/@NEF]SM$?B*7\"2Q&03=)8I>9?5L=Y9
M!FIYWM7,F<*FY^UFR+;<AN-ZY2UU1-@V?=O/Y0YUB$7V=K:X6GQ1L$C?HS>N
M+^']*OLNH)3)/E/XA-E6+@\0DHV4-&01H0&6O?G/3@3=I^_"UU0(&J6'.X)]
MPI(&\O<-I>)\DG10?'\Q_Q]02P,$%     @ [S--6I49PX=! P  U@D  !D
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
M WU_Q;DZ#LP"U?\4IO\"4$L#!!0    ( .\S35J#8)XYQ @  $]%   9
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
M%!.H,!#?K[.,[SX4%=3O4)G_#U!+ P04    " #O,TU:A!;W[,8#   M#@
M&0   'AL+W=O<FMS:&5E=',O<VAE970Y-RYX;6RM5UV/FS@4_2L66ZUFI':P
M#028)I$Z8:OM0Z519[I]]H2;!!7LK.U\[+]?\Q$F@(-&H[PD&,XY/O?:7*ZG
M!R%_JPV 1L<BYVKF;+3>WKNN6FZ@8.I.;(&;)RLA"Z;-4*Y=M97 THI4Y"[%
M>.(6+./.?%K=>Y3SJ=CI/./P*)':%063_SU +@XSASBG&S^R]4:7-]SY=,O6
M\ 3ZY_91FI';JJ19 5QE@B,)JYGSA=PGQ"L)%>*?# [J[!J5H;P(\;L<?$MG
M#BX=00Y+74HP\[>'!>1YJ61\_-N(.NV<)?'\^J3^M0K>!//"%"Q$_BM+]6;F
M1 Y*8<5VN?XA#G]#$U!0ZBU%KJI?=&BPV$'+G=*B:,C&09'Q^I\=FT2<$<CD
M H$V!-HG^!<(7D/PWDKP&X)?9:8.I<I#PC2;3Z4X(%FBC5IY426S8IOP,UZN
M^Y.6YFEF>'K^C2]% >B9'4&A3V@AN-*9W@'7"HD5>I1BGU5K;+88ZH!O$M L
MR]6MH?U\2M#-AUOT 64</6_$3C&>JJFKC<-R'G?9N'FHW= +;@A%WP77&X7^
MXBFD70'7A-;&1T_Q/=!1Q026=\@C'Q'%U+<86KR=[EGHR=OI="0:KUTMK]+S
M+N@M=E*:I;FW9;9F^G9F63[NU98M8>:8^J! [L&9__D'F>#/MJQ<4RRYDE@G
M8WZ;,7],??X54I LMR6L)@85L2R/^SF-,(ZG[OX\$Q94C"._BTJ&*#_R@J!%
M=;P'K?=@U/N39AILSFO:Y'RV@/8L+88@+_#[OH>@8!+%=MN3UO9D/.5"FFK+
M;<8G@^D(#>.@YWR(BBD.>\XM4N8-]^S6P]9Z.&J]>;],%:L*G69'!$?SB56
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
MEG98ZE\+((R!7M]PKIYOS /ZWQ^+?P%02P,$%     @ \#--6C2I)E*!!0
MVA@  !H   !X;"]W;W)K<VAE971S+W-H965T,3 P+GAM;+59;6_;-A#^*X17
M%"V0U*+>G28&6FOK,G1;T:3=9UJB8Z*2Z(E4G.S7[R@ILD(Q;*:Y7V)1NCO=
M\XAW?,B<[WGU36PIE>BNR$MQ,=M*N3N;ST6ZI041;_B.EO!DPZN"2!A6-W.Q
MJRC)&J<BG[N.$\X+PLK9\KRY]ZE:GO-:YJRDGRHDZJ(@U?U[FO/]Q0S/'FY\
M9C=;J6[,E^<[<D.OJ/RR^U3!:-Y'R5A!2\%XB2JZN9B]PV>)VS@T%E\9W8O!
M-5)0UIQ_4X/+[&+FJ(QH3E.I0A#XN:4KFN<J$N3Q=Q=TUK]3.0ZO'Z+_TH '
M,&LBZ(KG?[%,;B]F\0QE=$/J7'[F^U]I!RA0\5*>B^8OVG>VS@REM9"\Z)PA
M@X*5[2^YZX@8.&#_"0>W<W"?Z^!U#MYS'?S.P6^8::$T/"1$DN5YQ?>H4M80
M35TT9#;> )^5ZKM?R0J>,O"3R\LRY05%U^2."G2*5KP4DLF:EE(@OD$)W="J
MHIDR0.^$H'#[54(E8;EX#?9?KA+TZL5K] *Q$EUO>2U(F8GSN834U OF:9?&
M^S8-]XDT$IJ^01X^0:[C^@;WU?/=/8-[\FQWO'CL/@<^>U+=GE2WB><]&:]C
M30)KI&'MS,1)&\4W1U$5?R9V)*47,RAI0:M;.EN^_ F'SEL30\<,EAPIV"/V
MO)X]SQ8=IJ0DY0U;Y[3E3DVME)=EURGV3&Y1N@43JIXHBH6LZE36%361W+XL
M:%ZFNN#MT@L7?@2S['9(G\$L"KS0>6R66%.?2(S?$^-;B;F2//UVJKI<!H04
MT/H%:2BA=^K:B+Z-& Y@N:[OQAIX@Y6SP*&&W9K=1.Q!CSVP8E?])X628A*E
MI*KN8<7;D\K<:H(1&NS@6$.S&EM%L:\1DUB3F@@Y["&'WZF#6VC#O+I'T%-A
MC8513>$W)Y)F)MSA"%'L!8$&>VR$G7@1:;BMF4W$'?6X(RON][RL!14G:HX7
M3"B% 0/% 9=;6CV:^B8:HA%"J/>%1H/!R/4]C05KGA-9B'L68BL+"86@*7L2
M93PNV3C2/N-J;(1C7V]IUCPFHEST*!=6E*#=0)F5J(0V#UJV KCE#<HY]'UC
M:2_&@#Q'K^RQD>=IWS^QIC41-'8.HLNQPEZ1'9,D9_^T_1N$UN>7I-B]31Y:
MN5E".6-@P4+O62N#F1L'+M88L*<XE8*![L16"OY4M6Q$B4?I^Z&K+]<&JR#
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
M^A?MRK&>@Z*""YJ6QM*#E&3F'[^40M0,>J\9!*5!<*I!KS3H'1D$P2L&_=)
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
MZC;)]BR[O5%BV9SNW@NE1-%<+G@ZX[(&Z/</0JC-3?V![7\43/X'4$L#!!0
M   ( / S35JWY.4<) 4  -8G   :    >&PO=V]R:W-H965T<R]S:&5E=#$P
M-BYX;6RUFFN/XC84AO^*15?5KC2=W"&P@#1#R$V=%NWLMJJJ?O DGB'=)&9M
M,\S^^SH7,@2R&9!.^0"Q\?OX)'D/-HZG.\J^\C4A KUD:<YG@[40FXFB\&A-
M,LROZ8;D\IM'RC(L9)$]*7S#"(Y+498JNJH.E0PG^6 ^+>M6;#ZE6Y$F.5DQ
MQ+=9AMGW6Y+2W6R@#?85GY*GM2@JE/ET@Y_(/1%?-BLF2TI#B9.,Y#RA.6+D
M<3:XT2:A9A2"LL4?"=GQ@V-4G,H#I5^+0A#/!FH1$4E)) H$EA_/9$'2M"#)
M.+[5T$'39R$\/-[3W?+DY<D\8$X6-/TSB<5Z-K '*":/>)N*3W3GD_J$K((7
MT927[VA7MU4'*-IR0;-:+"/(DKSZQ"_UA3@0Z/H/!'HMT,\5&+7 .%=@U@+S
M7(%5"ZQS!<-:,#Q7,*H%HW,%=BVPSQ6,:\'X7(&F[N^<6CJHNN6E7QPL\'S*
MZ ZQHKWD%0>EZ4J]M$F2%_EQ+YC\-I$Z,;_=<EG#.;J)OFT3GA2FY>@7=$=9
M(L@+^@TSA@L+H_<.$3A)^0?T\T_:T/J(DAQ]7M,MQWG,K]"[5GFJ"!E<T842
MU8$X52#Z#P(Q9)>Y6'.TS&,2=^B]?KVF]P 4>56:2Z/O+\VMWDO\/1+72+.O
MD*[J!OIR[Z#W[SYT!+:X!!.N_D+OJPO8Q7+Z60Z)KI&AE2RS)Z1E/^8.L[,P
M[B68-\[,@SDS_WQ,WST+SL?H/9@0YM:W[&DTF6N4<.."S$5__RKK4"!(QO_I
MB/>V0IK=R&(LGO -CLAL( =;3M@S&<R+B-6/7;Z'A#F0L"4DS(6$>9 P'Q(6
M0,)"(%@K,<PF,<P^^GR%O\L)G.!R^I9B06(D*'K8)PL^&.:Z$J07?6F"0,(<
M2-@2$N9"PKP*9I6P8G+_/-=,TYPJSX?&/VVD6R/5&K:;!:?-+-52VXU"H.A;
M5K4:JUJ]5MW/LA:4;6@QSZ)YERE[(9>:$A+F0,*6D# 7$N9!PGQ(6  )"X%@
MK508-JDPA)_.#"$3 Q+F0,*6D# 7$N9!PGQ(6  )"X%@K<08-8DQZATCEKD@
M;,,23M S3K>D*P]&I^/A2)6O]E"WZ.WH4H=#PI:0,!<2YD'"?$A8  D+*YBF
M'UC(5*M78Z*6?>W&OG;_;'S+HC66YI46CCK-6^F'A^8=#S7#/C*OW1&A:8R&
MNFFU6SJ] 5WJ3$B8"PGS(&$^)"R A(5 L)9YQXUYQ[WF76"^1AN<Q,7BYN9-
M)X\[G&QIQ_]>%N,N)^OZR-2.6CJ]T5WJY/')(#$>'W7H=H2FF;9M:.UV'F1@
M/B0L@(2%0+"6]S3U=6E>?=M]Y8(%ZUP1OZWUAX8S;-4^_N7L[^;2<1^4M@2E
MN: T#Y3F@]("4%H(16L;_> 9E/;_K=C5[-:O;L=BT*(_AHNS )*V!*6YH#0/
ME.:#T@)06@A%:V>!_IH%>F\6=*V 7*'/#.<<5YL)%I2+[AS03U<Z[9._?_W]
M7YP!D+0E*,T%I7F@-!^4%H#20BA:.P->GVAJO<^%YAZE\2Y)TRMT1S#?,E*,
M"FA%6$)C=!/_N^6BJ.G, - GFZ TIZ8=9N?0'!W-TI:@?;J@- ^4YH/2 E!:
M"$6K,D YV)B3$?94;@3C**+;7%0/-)O:9K/93;G%ZJC^5ILLM(YZ1YNX7?6>
M-@FJ+6:OW58[WNXP>TIRCE+R*$-0KT?2EJS:1%85!-V4VX4>J! T*P_7!,>$
M%0WD]X^4BGVAZ*#9RC?_#U!+ P04    " #P,TU:,;5LPZ<%  "4*@  &@
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
MIX'2QZN&7$TD*TQ/NV=2=4@S3-0_#'+MH-9GC,GU1">H_XK"OU!+ P04
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
M/DTD0'R_9(P?#N0%RAWIV;]02P,$%     @ \#--6O-#^OB# P  WQ<   T
M  !X;"]S='EL97,N>&ULW5C1;MHP%/V5*%VG5IH:0M9 5D#:D) F;5.E]F%O
ME2$.6'*<S#$=]'&_4NUM7[%/V9?,-PX)4%_4]F&%@4KL>WS//?:]3ISV"K7D
M]&I&J7(6*1=%WYTIE;_SO&(RHRDISK*<"HTDF4R)TETY]8I<4A(7X)1RK]UJ
MA5Y*F' '/3%/1ZDJG$DV%ZKO^JW:YIC+QUA;P[>N8_B&64S[[LW)ZV_S3%V\
M<LSUZ,W14>OF]&+;?E("IZYG)3U_!.E9"^?5&$8=/HYZ)S=*WMDD+\<?:R;C
M>8RY=2UN.DSC"1W,.;)/Z,^/7T@*&F1G$CHM._'OGPAO#>RF]1':>XSV_E&T
M;3OM2"&T-;";-K#37HTDPML@:\1>M9D&O203S9X*7&/0D4E*G5O"^^Z0<#:6
M#+P2DC*^-.8V&"89SZ2C]&;64GRP%'<&]DT/]GG%DS*1R3*VB6!^Q]7P+6#5
M X&,\UI@VS6&02\G2E$I1KI3#BZ-#R"G:E\O<ZUP*LG2;Y^[C4-YT4'&F8RI
M;.XM[LHTZ'&:@!S)IC.XJBSW %0J2W4C9F2:"5)J6'E4#4T[H9Q?P4WP:[+!
MO4C6<EJ6M:B;6E#5-#2F _SK;(9[G;;S+%XG9[>9^C#7TQ%E'RJ%7DJ:L$79
M7R2U (S=Q]E)GO/E>\ZF(J5F\H\...B1E9\SRR2[T]&@5";:0*7KW%*IV&3=
M\EV2_)HNU*J<%@FNN7V FO_M.D^IH)+P==&Z]O=YE9^MN#HTO(3F\K:RK=@J
M,NCLO\;JH+3O(L-#$'D0Z>X>@LCH $1V7NRN^121_B&(;!^"R&#_10;[N6^\
MZN"[=KK>.%O75@?>8?KN%WA;XDU09SQG7#%1]68LCJEX<,36](J,.=WDU^-C
MFI Y5]<UV'>;]F<:LWD:U:,N82&J44W[$TS/#^L7*!V+B9@N:#RLNG(Z+IN.
M;NBHU0<<MI%1^;$CF(_![ A@6!Q, >9CO+ X_]-\NNA\#(9IZUJ1+NK317V,
MEPT9EE\LCMTGTA_[3*,H",(06]'AT*I@B*U;&,*?G0W3!AY8'(CTM+7&LXU7
MR.XZP'*ZJT*PF>*5B,T47VM [.L&'E%DSS86!SRP+&"U _'M<:"F[#Y! %G%
MM&$[&$>B"$.@%NTU&H;(ZH3PM><'VR5!$$5V!#"[@B# $-B-.((I  T8$@3E
M<W#K>>2MGE->\R_]P5]02P,$%     @ \#--6I>*NQS     $P(   L   !?
M<F5L<R\N<F5L<YV2N6[#, Q ?\70GC 'T"&(,V7Q%@3Y 5:B#]@2!8I%G;^O
MVJ5QD L9>3T\$MP>:4#M.*2VBZD8_1!2:5K5N %(MB6/:<Z10J[4+!XUA])
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
MH3E6,!J[=:WK.LN<3^Z+&R-7AQ^K.?S0SL=_ %!+ P04    " #P,TU:.IM
M-1@#  "90   &@   'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QSS=M+3MQ
M%(7AK:!> *Y;[XJ 429,(S;0:LQ#]$MM1X'=IP4#.*4,,D'^1U;9\O49?;+L
M.E>_QNUZ?C[LIZ?GXW3QNMONI^O5TSP??PS#M'D:=^OI\G <]^<K#X?3;CV?
MEZ?'X;C>O*P?Q\$[EX?3UQFKFZNO,R_NWH[C_TP\/#P\;\:?A\WOW;B?_S%X
M^',XO4Q/XSBO+N[6I\=QOEX-K]O/T]/P?K#+\^35Q>W]]>IT>V^K8>E 7@+Y
MY0,%"126#Q0E4%P^4)) :?E 60+EY0,5"526#U0E4%T^4)- ;?E YE1&!XC4
M80W0VI1K WAM"K8!Q#8EVP!FFZ)M +5-V3: VZ9P&T!N4[H-8+<IW@;0VZO>
M'J"W5[T]0&_?O6P#]/:JMP?H[55O#]#;J]X>H+=7O3U ;Z]Z>X#>7O7V +V]
MZNT!>@?5.P#T#JIW .@=5.\ T#MT'TL >@?5.P#T#JIW .@=5.\ T#NHW@&@
M=U"] T#OH'H'@-Y1]8X O:/J'0%Z1]4[ O2.JG<$Z!V[C]T O:/J'0%Z1]4[
M O2.JG<$Z!U5[PC0.ZK>$:!W4KT30.^D>B> WDGU3@"]D^J= 'HGU3L!]$[=
MSTJ WDGU3@"]D^J= 'HGU3L!]$ZJ=P+HG57O#- [J]X9H'=6O3- [ZQZ9X#>
M6?7. +VSZIT!>N=NLPE [ZQZ9X#>6?7. +VSZIT!>A?5NP#T+JIW >A=5.\"
MT+NHW@6@=U&]"T#OHGH7@-Y%]2X O4NW61"@=U&]"T#OHGH7@-Y5]:X O:OJ
M70%Z5]6[ O2NJG<%Z%U5[PK0NZK>%:!W5;TK0.^J>E> WK7;[ W0NZK>%:!W
M4[T;0.^F>C> WDWU;@"]F^K= 'HWU;L!]&ZJ=P/HW53O!M"[J=X-H'=3O1M
M[]:5=0!ZF^OK.@"_S76%'0<0W%Q7V7$ P\UUI1T'4-Q<5]MQ ,?-=<4=!Y#<
M7%?=<0#+S77E'0?0W%Q7WW$ S\UU!1Y'$+TO8'YK W.:W[;C])GH8]T%^$Z]
MY_.]X^?SWY<?)_O2YSO7P]<8T\U?4$L#!!0    ( / S35K'A96L>@(  "<^
M   3    6T-O;G1E;G1?5'EP97-=+GAM;,W;3V^;,!C'\;<2<:T"M@$;IJ:7
M=M>MA[T!!DZ#PC]AMTO?_1S25MK41:LR:=\+"&P_OP=;^MRX_O8\6;<Z]-W@
M-M'.^^E3DKAZ9_O*Q>-DAS"R'>>^\N%Q?DBFJMY7#S910NBD'@=O![_VQQK1
MS?6=W5:/G5]]/H37KAV'333;SD6KV]/$8]8FJJ:I:^O*A_'D:6A^2UF_),1A
MY3+'[=K)784)4?)NPG'DSP$OZ[X^V7EN&[NZKV;_I>K#K.30)<X_=];%YTN\
MT^.XW;:U;<;ZL0]+8C?-MFK<SEK?=_&IZ-7Y9!]VV)ZN\N+\I<RYP##S?AXG
M%TYLMA^/>SV2X^KU% K9V;?G/_$M,92^^/OL\;0;V_QE=MC>'^.\7\[#)<OM
M\CW^]8S?ZG^P#P7I(X7TD4'ZR"%]:$@?!M)' >FCA/0A!:41BJB20JJDF"HI
MJ$J*JI+"JJ2X*BFP2HJLBB*KHLBJ*+(JBJR*(JNBR*HHLBJ*K(HBJZ+(FE)D
M32FRIA194XJL*476E")K2I$UI<B:4F1-*;)F%%DSBJP91=:,(FM&D36CR)I1
M9,THLF8463.*K#E%UIPB:TZ1-:?(FE-DS2FRYA19<XJL.476G"*KILBJ*;)J
MBJR:(JNFR*HILFJ*K)HBJZ;(JBFR&HJLAB*KH<AJ*+(:BJR&(JNAR&HHLAJ*
MK(8B:T&1M:#(6E!D+2BR%A19"XJL!476@B)K09&UH,A:4F0M*;*6%%E+BJPE
M1=:2(FM)D;6DR%I29"TILDI!H54*BJU24'"5@J*K%!1>I:#X*@4%6"DHPDI!
M(58*C+'_]7>L[^.X_\?QRSWNJW9XS4^6_\-O?@)02P$"% ,4    " #O,TU:
M!T%-8H$   "Q    $               @ $     9&]C4')O<',O87!P+GAM
M;%!+ 0(4 Q0    ( .\S35JN90*C[0   "L"   1              "  :\
M  !D;V-0<F]P<R]C;W)E+GAM;%!+ 0(4 Q0    ( .\S35J97)PC$ 8  )PG
M   3              "  <L!  !X;"]T:&5M92]T:&5M93$N>&UL4$L! A0#
M%     @ [S--6FU2PH0;!P  22X  !@              ("!# @  'AL+W=O
M<FMS:&5E=',O<VAE970Q+GAM;%!+ 0(4 Q0    ( .\S35I)0'[A/@(  +L%
M   8              " @5T/  !X;"]W;W)K<VAE971S+W-H965T,BYX;6Q0
M2P$"% ,4    " #O,TU:@R0 UE,&  #R&@  &               @('1$0
M>&PO=V]R:W-H965T<R]S:&5E=#,N>&UL4$L! A0#%     @ [S--6M&5J/]?
M!   U@\  !@              ("!6A@  'AL+W=O<FMS:&5E=',O<VAE970T
M+GAM;%!+ 0(4 Q0    ( .\S35J@5RXHQ@(  .D&   8              "
M@>\<  !X;"]W;W)K<VAE971S+W-H965T-2YX;6Q02P$"% ,4    " #O,TU:
M#4X(-L('  "8(0  &               @('K'P  >&PO=V]R:W-H965T<R]S
M:&5E=#8N>&UL4$L! A0#%     @ [S--6MBB(;"C P  @PP  !@
M     ("!XR<  'AL+W=O<FMS:&5E=',O<VAE970W+GAM;%!+ 0(4 Q0    (
M .\S35H>F.-JM0@  #8G   8              " @;PK  !X;"]W;W)K<VAE
M971S+W-H965T."YX;6Q02P$"% ,4    " #O,TU:220%V+@)  "=3@  &
M            @(&G-   >&PO=V]R:W-H965T<R]S:&5E=#DN>&UL4$L! A0#
M%     @ [S--6O@]VAKX @  P0<  !D              ("!E3X  'AL+W=O
M<FMS:&5E=',O<VAE970Q,"YX;6Q02P$"% ,4    " #O,TU::#A-*Z8H  ",
MA0  &0              @('$00  >&PO=V]R:W-H965T<R]S:&5E=#$Q+GAM
M;%!+ 0(4 Q0    ( .\S35KTM 1@/08  /D/   9              " @:%J
M  !X;"]W;W)K<VAE971S+W-H965T,3(N>&UL4$L! A0#%     @ [S--6DTQ
MRB<I!0  3PP  !D              ("!%7$  'AL+W=O<FMS:&5E=',O<VAE
M970Q,RYX;6Q02P$"% ,4    " #O,TU:;/A.7C,)  #R&0  &0
M    @(%U=@  >&PO=V]R:W-H965T<R]S:&5E=#$T+GAM;%!+ 0(4 Q0    (
M .\S35IK0J3,= (  & %   9              " @=]_  !X;"]W;W)K<VAE
M971S+W-H965T,34N>&UL4$L! A0#%     @ [S--6G -+61H P  [0<  !D
M             ("!BH(  'AL+W=O<FMS:&5E=',O<VAE970Q-BYX;6Q02P$"
M% ,4    " #O,TU:7 F?CN,&   8$P  &0              @($IA@  >&PO
M=V]R:W-H965T<R]S:&5E=#$W+GAM;%!+ 0(4 Q0    ( .\S35I&<P9<9P,
M (P'   9              " @4.-  !X;"]W;W)K<VAE971S+W-H965T,3@N
M>&UL4$L! A0#%     @ [S--6MBG&HK$ P  /P@  !D              ("!
MX9   'AL+W=O<FMS:&5E=',O<VAE970Q.2YX;6Q02P$"% ,4    " #O,TU:
M53[ET5,#   V"   &0              @('<E   >&PO=V]R:W-H965T<R]S
M:&5E=#(P+GAM;%!+ 0(4 Q0    ( .\S35H!#2EP<P4  . ,   9
M      " @6:8  !X;"]W;W)K<VAE971S+W-H965T,C$N>&UL4$L! A0#%
M  @ [S--6C6#?FAM!   & L  !D              ("!$)X  'AL+W=O<FMS
M:&5E=',O<VAE970R,BYX;6Q02P$"% ,4    " #O,TU:H%EWCS(&  #P#P
M&0              @(&TH@  >&PO=V]R:W-H965T<R]S:&5E=#(S+GAM;%!+
M 0(4 Q0    ( .\S35K&.9O*8P8  .H0   9              " @1VI  !X
M;"]W;W)K<VAE971S+W-H965T,C0N>&UL4$L! A0#%     @ [S--6B6B-Q>#
M!0  / X  !D              ("!MZ\  'AL+W=O<FMS:&5E=',O<VAE970R
M-2YX;6Q02P$"% ,4    " #O,TU:5SJ1CD(,  #C(@  &0
M@(%QM0  >&PO=V]R:W-H965T<R]S:&5E=#(V+GAM;%!+ 0(4 Q0    ( .\S
M35K@K!345P,  (T'   9              " @>K!  !X;"]W;W)K<VAE971S
M+W-H965T,C<N>&UL4$L! A0#%     @ [S--6CDW@E4&#P  PBP  !D
M         ("!>,4  'AL+W=O<FMS:&5E=',O<VAE970R."YX;6Q02P$"% ,4
M    " #O,TU:FI,UB9(#  !""0  &0              @(&UU   >&PO=V]R
M:W-H965T<R]S:&5E=#(Y+GAM;%!+ 0(4 Q0    ( .\S35K^!N<BB @  /<4
M   9              " @7[8  !X;"]W;W)K<VAE971S+W-H965T,S N>&UL
M4$L! A0#%     @ [S--6HXS6_(0"   0A,  !D              ("!/>$
M 'AL+W=O<FMS:&5E=',O<VAE970S,2YX;6Q02P$"% ,4    " #O,TU:G3#2
MQWH"  !3!0  &0              @(&$Z0  >&PO=V]R:W-H965T<R]S:&5E
M=#,R+GAM;%!+ 0(4 Q0    ( .\S35JYRZ$Q<P(  'H%   9
M  " @37L  !X;"]W;W)K<VAE971S+W-H965T,S,N>&UL4$L! A0#%     @
M[S--6ESQU36% P  40@  !D              ("!W^X  'AL+W=O<FMS:&5E
M=',O<VAE970S-"YX;6Q02P$"% ,4    " #O,TU:K^5%#UT"  "!!@  &0
M            @(&;\@  >&PO=V]R:W-H965T<R]S:&5E=#,U+GAM;%!+ 0(4
M Q0    ( .\S35JI%JZ&"@4  "X3   9              " @2_U  !X;"]W
M;W)K<VAE971S+W-H965T,S8N>&UL4$L! A0#%     @ [S--6LPL-:V5"
MAB8  !D              ("!</H  'AL+W=O<FMS:&5E=',O<VAE970S-RYX
M;6Q02P$"% ,4    " #O,TU:?&JDVGTN  #*IP  &0              @($\
M P$ >&PO=V]R:W-H965T<R]S:&5E=#,X+GAM;%!+ 0(4 Q0    ( .\S35KB
MYI-^* ,  !8'   9              " @? Q 0!X;"]W;W)K<VAE971S+W-H
M965T,SDN>&UL4$L! A0#%     @ [S--6M;>LN0+!P   !8  !D
M     ("!3S4! 'AL+W=O<FMS:&5E=',O<VAE970T,"YX;6Q02P$"% ,4
M" #O,TU:0P<G!GL"  !=!0  &0              @(&1/ $ >&PO=V]R:W-H
M965T<R]S:&5E=#0Q+GAM;%!+ 0(4 Q0    ( .\S35KLC12B!P,  'D&   9
M              " @4,_ 0!X;"]W;W)K<VAE971S+W-H965T-#(N>&UL4$L!
M A0#%     @ [S--6N#(J!YZ @  5P4  !D              ("!@4(! 'AL
M+W=O<FMS:&5E=',O<VAE970T,RYX;6Q02P$"% ,4    " #O,TU: #H?T]T"
M  !X!@  &0              @($R10$ >&PO=V]R:W-H965T<R]S:&5E=#0T
M+GAM;%!+ 0(4 Q0    ( .\S35IX6I?;OP,  )T(   9              "
M@49( 0!X;"]W;W)K<VAE971S+W-H965T-#4N>&UL4$L! A0#%     @ [S--
M6AO(Y.V# P  ]0H  !D              ("!/$P! 'AL+W=O<FMS:&5E=',O
M<VAE970T-BYX;6Q02P$"% ,4    " #O,TU:V5-MZ8$%   5#P  &0
M        @('V3P$ >&PO=V]R:W-H965T<R]S:&5E=#0W+GAM;%!+ 0(4 Q0
M   ( .\S35J(:I>WC00  +0,   9              " @:Y5 0!X;"]W;W)K
M<VAE971S+W-H965T-#@N>&UL4$L! A0#%     @ [S--6OL[8CTC!@  3Q
M !D              ("!<EH! 'AL+W=O<FMS:&5E=',O<VAE970T.2YX;6Q0
M2P$"% ,4    " #O,TU:\/,*(,@'  "#%@  &0              @(',8 $
M>&PO=V]R:W-H965T<R]S:&5E=#4P+GAM;%!+ 0(4 Q0    ( .\S35I)E..P
MMP(   T&   9              " @<MH 0!X;"]W;W)K<VAE971S+W-H965T
M-3$N>&UL4$L! A0#%     @ [S--6J+8Q\RO!@  9P\  !D
M ("!N6L! 'AL+W=O<FMS:&5E=',O<VAE970U,BYX;6Q02P$"% ,4    " #O
M,TU:2]RA(E$#  #?!@  &0              @(&?<@$ >&PO=V]R:W-H965T
M<R]S:&5E=#4S+GAM;%!+ 0(4 Q0    ( .\S35I+1H14000  /D8   9
M          " @2=V 0!X;"]W;W)K<VAE971S+W-H965T-30N>&UL4$L! A0#
M%     @ [S--6AF$-H58 P  (1(  !D              ("!GWH! 'AL+W=O
M<FMS:&5E=',O<VAE970U-2YX;6Q02P$"% ,4    " #O,TU:$X$L+7<"  !B
M!P  &0              @($N?@$ >&PO=V]R:W-H965T<R]S:&5E=#4V+GAM
M;%!+ 0(4 Q0    ( .\S35ICJMQH>@(  (\'   9              " @=R
M 0!X;"]W;W)K<VAE971S+W-H965T-3<N>&UL4$L! A0#%     @ [S--6HA#
M2X)S @  J 8  !D              ("!C8,! 'AL+W=O<FMS:&5E=',O<VAE
M970U."YX;6Q02P$"% ,4    " #O,TU:O.K1)L(#   P#@  &0
M    @($WA@$ >&PO=V]R:W-H965T<R]S:&5E=#4Y+GAM;%!+ 0(4 Q0    (
M .\S35IN7Q-U#00  +T3   9              " @3"* 0!X;"]W;W)K<VAE
M971S+W-H965T-C N>&UL4$L! A0#%     @ [S--6C$W?Z!^!   4A8  !D
M             ("!=(X! 'AL+W=O<FMS:&5E=',O<VAE970V,2YX;6Q02P$"
M% ,4    " #O,TU:W5IAOS$#   P"@  &0              @($IDP$ >&PO
M=V]R:W-H965T<R]S:&5E=#8R+GAM;%!+ 0(4 Q0    ( .\S35JXK>3$@0<
M (PY   9              " @9&6 0!X;"]W;W)K<VAE971S+W-H965T-C,N
M>&UL4$L! A0#%     @ [S--6F["W$3 !0  2R$  !D              ("!
M29X! 'AL+W=O<FMS:&5E=',O<VAE970V-"YX;6Q02P$"% ,4    " #O,TU:
M06D7O=8"  !4"   &0              @(% I $ >&PO=V]R:W-H965T<R]S
M:&5E=#8U+GAM;%!+ 0(4 Q0    ( .\S35H!SJ. !@8  !(I   9
M      " @4VG 0!X;"]W;W)K<VAE971S+W-H965T-C8N>&UL4$L! A0#%
M  @ [S--6L:[<5;^ @  40P  !D              ("!BJT! 'AL+W=O<FMS
M:&5E=',O<VAE970V-RYX;6Q02P$"% ,4    " #O,TU:3,G1@7($  #<&0
M&0              @(&_L $ >&PO=V]R:W-H965T<R]S:&5E=#8X+GAM;%!+
M 0(4 Q0    ( .\S35K7C!L&ZP,  %X2   9              " @6BU 0!X
M;"]W;W)K<VAE971S+W-H965T-CDN>&UL4$L! A0#%     @ [S--6G+#AT\E
M!P  >C(  !D              ("!BKD! 'AL+W=O<FMS:&5E=',O<VAE970W
M,"YX;6Q02P$"% ,4    " #O,TU::69SKFP"  ";!@  &0
M@('FP $ >&PO=V]R:W-H965T<R]S:&5E=#<Q+GAM;%!+ 0(4 Q0    ( .\S
M35H8^87,80,  +4,   9              " @8G# 0!X;"]W;W)K<VAE971S
M+W-H965T-S(N>&UL4$L! A0#%     @ [S--6@UP0+J9!   +QL  !D
M         ("!(<<! 'AL+W=O<FMS:&5E=',O<VAE970W,RYX;6Q02P$"% ,4
M    " #O,TU:'E;/J: "  "_"   &0              @('QRP$ >&PO=V]R
M:W-H965T<R]S:&5E=#<T+GAM;%!+ 0(4 Q0    ( .\S35JL\ECSY (  *H)
M   9              " @<C. 0!X;"]W;W)K<VAE971S+W-H965T-S4N>&UL
M4$L! A0#%     @ [S--6DWQ/SGK @  X0@  !D              ("!X]$!
M 'AL+W=O<FMS:&5E=',O<VAE970W-BYX;6Q02P$"% ,4    " #O,TU:UK\>
MHU #   N"@  &0              @($%U0$ >&PO=V]R:W-H965T<R]S:&5E
M=#<W+GAM;%!+ 0(4 Q0    ( .\S35H?FMTNBP(  $H'   9
M  " @8S8 0!X;"]W;W)K<VAE971S+W-H965T-S@N>&UL4$L! A0#%     @
M[S--6IO7DT?4 @  %0@  !D              ("!3ML! 'AL+W=O<FMS:&5E
M=',O<VAE970W.2YX;6Q02P$"% ,4    " #O,TU:&D9"5SD+  !SM0  &0
M            @(%9W@$ >&PO=V]R:W-H965T<R]S:&5E=#@P+GAM;%!+ 0(4
M Q0    ( .\S35JBY@,=N@(  #D)   9              " @<GI 0!X;"]W
M;W)K<VAE971S+W-H965T.#$N>&UL4$L! A0#%     @ [S--6CW39.!' P
M&0L  !D              ("!NNP! 'AL+W=O<FMS:&5E=',O<VAE970X,BYX
M;6Q02P$"% ,4    " #O,TU:\C0I_,L"  !%"   &0              @($X
M\ $ >&PO=V]R:W-H965T<R]S:&5E=#@S+GAM;%!+ 0(4 Q0    ( .\S35HL
MFYO$U (  %8'   9              " @3KS 0!X;"]W;W)K<VAE971S+W-H
M965T.#0N>&UL4$L! A0#%     @ [S--6GH")NV3!   U1H  !D
M     ("!1?8! 'AL+W=O<FMS:&5E=',O<VAE970X-2YX;6Q02P$"% ,4
M" #O,TU:&,PRR@H#  !Y"   &0              @($/^P$ >&PO=V]R:W-H
M965T<R]S:&5E=#@V+GAM;%!+ 0(4 Q0    ( .\S35ITV=#%-@,  &\)   9
M              " @5#^ 0!X;"]W;W)K<VAE971S+W-H965T.#<N>&UL4$L!
M A0#%     @ [S--6E_DL$_W!P  RDH  !D              ("!O0$" 'AL
M+W=O<FMS:&5E=',O<VAE970X."YX;6Q02P$"% ,4    " #O,TU:-K@Y'"(+
M  "$:0  &0              @('K"0( >&PO=V]R:W-H965T<R]S:&5E=#@Y
M+GAM;%!+ 0(4 Q0    ( .\S35HS'L_8X@4  (LA   9              "
M@405 @!X;"]W;W)K<VAE971S+W-H965T.3 N>&UL4$L! A0#%     @ [S--
M6I49PX=! P  U@D  !D              ("!71L" 'AL+W=O<FMS:&5E=',O
M<VAE970Y,2YX;6Q02P$"% ,4    " #O,TU:FU?K_JX#  "]"P  &0
M        @('5'@( >&PO=V]R:W-H965T<R]S:&5E=#DR+GAM;%!+ 0(4 Q0
M   ( .\S35H1^XU,B 0  ,,6   9              " @;HB @!X;"]W;W)K
M<VAE971S+W-H965T.3,N>&UL4$L! A0#%     @ [S--6@M3W"SB P  SA
M !D              ("!>2<" 'AL+W=O<FMS:&5E=',O<VAE970Y-"YX;6Q0
M2P$"% ,4    " #O,TU:'6PH7\D#  !?$   &0              @(&2*P(
M>&PO=V]R:W-H965T<R]S:&5E=#DU+GAM;%!+ 0(4 Q0    ( .\S35J#8)XY
MQ @  $]%   9              " @9(O @!X;"]W;W)K<VAE971S+W-H965T
M.38N>&UL4$L! A0#%     @ [S--6H06]^S& P  +0X  !D
M ("!C3@" 'AL+W=O<FMS:&5E=',O<VAE970Y-RYX;6Q02P$"% ,4    " #O
M,TU:<42:IB4%   <%0  &0              @(&*/ ( >&PO=V]R:W-H965T
M<R]S:&5E=#DX+GAM;%!+ 0(4 Q0    ( .\S35H]'<LFT ,  (L,   9
M          " @>9! @!X;"]W;W)K<VAE971S+W-H965T.3DN>&UL4$L! A0#
M%     @ \#--6C2I)E*!!0  VA@  !H              ("![44" 'AL+W=O
M<FMS:&5E=',O<VAE970Q,# N>&UL4$L! A0#%     @ \#--6G]DEV7R @
MJ0@  !H              ("!IDL" 'AL+W=O<FMS:&5E=',O<VAE970Q,#$N
M>&UL4$L! A0#%     @ \#--6C11%?9S P  @0\  !H              ("!
MT$X" 'AL+W=O<FMS:&5E=',O<VAE970Q,#(N>&UL4$L! A0#%     @ \#--
M6EY&%,7B P  K1,  !H              ("!>U(" 'AL+W=O<FMS:&5E=',O
M<VAE970Q,#,N>&UL4$L! A0#%     @ \#--6B( Z*VU!   RA@  !H
M         ("!E58" 'AL+W=O<FMS:&5E=',O<VAE970Q,#0N>&UL4$L! A0#
M%     @ \#--6C9(4!+J!@  72   !H              ("!@EL" 'AL+W=O
M<FMS:&5E=',O<VAE970Q,#4N>&UL4$L! A0#%     @ \#--6K?DY1PD!0
MUB<  !H              ("!I&(" 'AL+W=O<FMS:&5E=',O<VAE970Q,#8N
M>&UL4$L! A0#%     @ \#--6C&U;,.G!0  E"H  !H              ("!
M &@" 'AL+W=O<FMS:&5E=',O<VAE970Q,#<N>&UL4$L! A0#%     @ \#--
M6M]0#AWU @  (0D  !H              ("!WVT" 'AL+W=O<FMS:&5E=',O
M<VAE970Q,#@N>&UL4$L! A0#%     @ \#--6O0XQ)4& P  9@D  !H
M         ("!#'$" 'AL+W=O<FMS:&5E=',O<VAE970Q,#DN>&UL4$L! A0#
M%     @ \#--6G*T:'MM!0  G1X  !H              ("!2G0" 'AL+W=O
M<FMS:&5E=',O<VAE970Q,3 N>&UL4$L! A0#%     @ \#--6O-#^OB# P
MWQ<   T              ( ![WD" 'AL+W-T>6QE<RYX;6Q02P$"% ,4
M" #P,TU:EXJ[',     3 @  "P              @ &=?0( 7W)E;',O+G)E
M;'-02P$"% ,4    " #P,TU:+A/?,>\'  #L1P  #P              @ &&
M?@( >&PO=V]R:V)O;VLN>&UL4$L! A0#%     @ \#--6CJ;0#48 P  F4
M !H              ( !HH8" 'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS
M4$L! A0#%     @ \#--6L>%E:QZ @  )SX  !,              ( !\HD"
J %M#;VYT96YT7U1Y<&5S72YX;6Q02P4&     '8 =@!\(   G8P"

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>133
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>134
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
.report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

.report table.authRefData a {
	display: block;
	font-weight: bold;
}

.report table.authRefData p {
	margin-top: 0px;
}

.report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

.report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

.report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

.report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
.pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
.report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

.report hr {
	border: 1px solid #acf;
}

/* Top labels */
.report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

.report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

.report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

.report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

.report td.pl div.a {
	width: 200px;
}

.report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
.report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
.report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
.report .re, .report .reu {
	background-color: #def;
}

.report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
.report .ro, .report .rou {
	background-color: white;
}

.report .rou td {
	border-bottom: 1px solid black;
}

.report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
.report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
.report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

.report .nump {
	padding-left: 2em;
}

.report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
.report .text {
	text-align: left;
	white-space: normal;
}

.report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

.report .text .more {
	display: none;
}

.report .text .note {
	font-style: italic;
	font-weight: bold;
}

.report .text .small {
	width: 10em;
}

.report sup {
	font-style: italic;
}

.report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>136
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.0.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>281</ContextCount>
  <ElementCount>544</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>94</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>18</UnitCount>
  <MyReports>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>0000001 - Document - Cover Page</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CoverPage</Role>
      <ShortName>Cover Page</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>0000002 - Document - Audit Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AuditInformation</Role>
      <ShortName>Audit Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>9952151 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF OPERATIONS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>9952152 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>9952153 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>9952154 - Statement - CONSOLIDATED BALANCE SHEETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDBALANCESHEETS</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>9952155 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>9952156 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF CASH FLOWS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>9952157 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>9952158 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>9952159 - Disclosure - Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>9952160 - Disclosure - New Pronouncements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/NewPronouncements</Role>
      <ShortName>New Pronouncements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>9952161 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/FairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>9952162 - Disclosure - Cash, Cash Equivalents, and Investments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestments</Role>
      <ShortName>Cash, Cash Equivalents, and Investments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>9952163 - Disclosure - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/Inventories</Role>
      <ShortName>Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>9952164 - Disclosure - Property, Plant, and Equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/PropertyPlantandEquipment</Role>
      <ShortName>Property, Plant, and Equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>9952165 - Disclosure - Leases Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LeasesLeases</Role>
      <ShortName>Leases Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>9952166 - Disclosure - Goodwill</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/Goodwill</Role>
      <ShortName>Goodwill</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>9952167 - Disclosure - Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssets</Role>
      <ShortName>Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>9952168 - Disclosure - Accrued Expenses</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AccruedExpenses</Role>
      <ShortName>Accrued Expenses</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>9952169 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CommitmentsandContingencies</Role>
      <ShortName>Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>9952170 - Disclosure - Indemnification Provisions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IndemnificationProvisions</Role>
      <ShortName>Indemnification Provisions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>9952171 - Disclosure - Derivative Instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstruments</Role>
      <ShortName>Derivative Instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>9952172 - Disclosure - Revenue Recognition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognition</Role>
      <ShortName>Revenue Recognition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>9952173 - Disclosure - Shareholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ShareholdersEquity</Role>
      <ShortName>Shareholders' Equity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>9952174 - Disclosure - Stock-Based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensation</Role>
      <ShortName>Stock-Based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>9952175 - Disclosure - Employee Savings Plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/EmployeeSavingsPlan</Role>
      <ShortName>Employee Savings Plan</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>9952176 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>9952177 - Disclosure - Weighted Average Shares</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/WeightedAverageShares</Role>
      <ShortName>Weighted Average Shares</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>9952178 - Disclosure - Segment and Geographic Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SegmentandGeographicInformation</Role>
      <ShortName>Segment and Geographic Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>9952179 - Disclosure - Business Acquisitions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/BusinessAcquisitions</Role>
      <ShortName>Business Acquisitions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>9952180 - Disclosure - Loss from Fire</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LossfromFire</Role>
      <ShortName>Loss from Fire</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>9952181 - Disclosure - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>9952182 - Disclosure - Schedule II - Valuation and Qualifying Accounts</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>995410 - Disclosure - Pay vs Performance Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/PvpDisclosure</Role>
      <ShortName>Pay vs Performance Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>995445 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>36</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>995550 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure</Role>
      <ShortName>Cybersecurity Risk Management and Strategy Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>37</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>9955511 - Disclosure - Summary of Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://cognex.com/role/SummaryofSignificantAccountingPolicies</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>9955512 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/FairValueMeasurementsTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/FairValueMeasurements</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>9955513 - Disclosure - Cash, Cash Equivalents, and Investments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsTables</Role>
      <ShortName>Cash, Cash Equivalents, and Investments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/CashCashEquivalentsandInvestments</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>9955514 - Disclosure - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/InventoriesTables</Role>
      <ShortName>Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/Inventories</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>9955515 - Disclosure - Property, Plant, and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/PropertyPlantandEquipmentTables</Role>
      <ShortName>Property, Plant, and Equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/PropertyPlantandEquipment</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>9955516 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/LeasesLeases</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>9955517 - Disclosure - Goodwill (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/GoodwillTables</Role>
      <ShortName>Goodwill (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/Goodwill</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>9955518 - Disclosure - Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsTables</Role>
      <ShortName>Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/IntangibleAssets</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>9955519 - Disclosure - Accrued Expenses (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AccruedExpensesTables</Role>
      <ShortName>Accrued Expenses (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/AccruedExpenses</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>9955520 - Disclosure - Derivative Instruments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsTables</Role>
      <ShortName>Derivative Instruments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/DerivativeInstruments</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>9955521 - Disclosure - Revenue Recognition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionTables</Role>
      <ShortName>Revenue Recognition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/RevenueRecognition</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>9955522 - Disclosure - Stock-Based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationTables</Role>
      <ShortName>Stock-Based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/StockBasedCompensation</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>9955523 - Disclosure - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesTables</Role>
      <ShortName>Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/IncomeTaxes</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>9955524 - Disclosure - Weighted Average Shares (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/WeightedAverageSharesTables</Role>
      <ShortName>Weighted Average Shares (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/WeightedAverageShares</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>9955525 - Disclosure - Segment and Geographic Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SegmentandGeographicInformationTables</Role>
      <ShortName>Segment and Geographic Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/SegmentandGeographicInformation</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>9955526 - Disclosure - Business Acquisitions - (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/BusinessAcquisitionsTables</Role>
      <ShortName>Business Acquisitions - (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/BusinessAcquisitions</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>9955527 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail</Role>
      <ShortName>Summary of Significant Accounting Policies - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>9955528 - Disclosure - Summary of Significant Accounting Policies - Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails</Role>
      <ShortName>Summary of Significant Accounting Policies - Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>9955529 - Disclosure - Summary of Significant Accounting Policies - Warranty (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails</Role>
      <ShortName>Summary of Significant Accounting Policies - Warranty (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>9955530 - Disclosure - Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails</Role>
      <ShortName>Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>9955531 - Disclosure - Summary of Significant Accounting Policies - Advertising Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails</Role>
      <ShortName>Summary of Significant Accounting Policies - Advertising Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>9955532 - Disclosure - Summary of Significant Accounting Policies - Comprehensive Income (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails</Role>
      <ShortName>Summary of Significant Accounting Policies - Comprehensive Income (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>9955533 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail</Role>
      <ShortName>Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>9955534 - Disclosure - Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>9955535 - Disclosure - Cash, Cash Equivalents and Investments - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>9955536 - Disclosure - Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>9955537 - Disclosure - Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>9955538 - Disclosure - Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails</Role>
      <ShortName>Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>9955539 - Disclosure - Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>9955540 - Disclosure - Inventories - Inventories (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/InventoriesInventoriesDetail</Role>
      <ShortName>Inventories - Inventories (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>9955541 - Disclosure - Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail</Role>
      <ShortName>Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>9955542 - Disclosure - Property, Plant and Equipment - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails</Role>
      <ShortName>Property, Plant and Equipment - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>9955543 - Disclosure - Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LeasesDetails</Role>
      <ShortName>Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://cognex.com/role/LeasesTables</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>9955544 - Disclosure - Leases - Schedule of Payments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LeasesScheduleofPaymentsDetails</Role>
      <ShortName>Leases - Schedule of Payments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>9955545 - Disclosure - Goodwill - Changes in the Carrying Value of Goodwill (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail</Role>
      <ShortName>Goodwill - Changes in the Carrying Value of Goodwill (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>9955546 - Disclosure - Intangible Assets - Amortized Intangible Assets (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail</Role>
      <ShortName>Intangible Assets - Amortized Intangible Assets (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>9955547 - Disclosure - Intangible Assets - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsNarrativeDetails</Role>
      <ShortName>Intangible Assets - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>9955548 - Disclosure - Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail</Role>
      <ShortName>Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>9955549 - Disclosure - Accrued Expenses - Constituents of Accrued Expenses (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail</Role>
      <ShortName>Accrued Expenses - Constituents of Accrued Expenses (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>9955550 - Disclosure - Accrued Expenses - Changes in Warranty Obligations (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail</Role>
      <ShortName>Accrued Expenses - Changes in Warranty Obligations (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>9955551 - Disclosure - Commitments and Contingencies - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail</Role>
      <ShortName>Commitments and Contingencies - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>78</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>9955552 - Disclosure - Derivative Instruments - Additional Details (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails</Role>
      <ShortName>Derivative Instruments - Additional Details (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>9955553 - Disclosure - Derivative Instruments - Outstanding Forward Contracts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails</Role>
      <ShortName>Derivative Instruments - Outstanding Forward Contracts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>9955554 - Disclosure - Derivative Instruments - Balance Sheet Location (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails</Role>
      <ShortName>Derivative Instruments - Balance Sheet Location (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>9955555 - Disclosure - Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails</Role>
      <ShortName>Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>9955556 - Disclosure - Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails</Role>
      <ShortName>Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>9955557 - Disclosure - Revenue Recognition - Narratives (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionNarrativesDetails</Role>
      <ShortName>Revenue Recognition - Narratives (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>84</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>9955558 - Disclosure - Revenue Recognition - Disaggregation by Geography and Type (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails</Role>
      <ShortName>Revenue Recognition - Disaggregation by Geography and Type (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>9955559 - Disclosure - Revenue Recognition - Allowance for Credit Loss (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails</Role>
      <ShortName>Revenue Recognition - Allowance for Credit Loss (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>86</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>9955560 - Disclosure - Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails</Role>
      <ShortName>Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>87</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>9955561 - Disclosure - Shareholders' Equity - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail</Role>
      <ShortName>Shareholders' Equity - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>88</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>9955562 - Disclosure - Stock-Based Compensation Expense - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail</Role>
      <ShortName>Stock-Based Compensation Expense - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>89</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>9955563 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail</Role>
      <ShortName>Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>90</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>9955564 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail</Role>
      <ShortName>Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>91</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>9955565 - Disclosure - Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail</Role>
      <ShortName>Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>92</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>9955566 - Disclosure - Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail</Role>
      <ShortName>Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>93</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>9955567 - Disclosure - Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails</Role>
      <ShortName>Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>94</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>9955568 - Disclosure - Employee Savings Plan - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail</Role>
      <ShortName>Employee Savings Plan - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>95</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>9955569 - Disclosure - Income Taxes - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesAdditionalInformationDetails</Role>
      <ShortName>Income Taxes - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>96</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>9955570 - Disclosure - Income Taxes - Constituents of Provision for Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails</Role>
      <ShortName>Income Taxes - Constituents of Provision for Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>97</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.htm</HtmlFileName>
      <LongName>9955571 - Disclosure - Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails</Role>
      <ShortName>Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>98</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>9955572 - Disclosure - Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails</Role>
      <ShortName>Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>99</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>9955573 - Disclosure - Income Taxes - Constituents of Deferred Tax Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails</Role>
      <ShortName>Income Taxes - Constituents of Deferred Tax Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>100</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.htm</HtmlFileName>
      <LongName>9955574 - Disclosure - Weighted Average Shares - Calculation of Weighted Average Shares (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail</Role>
      <ShortName>Weighted Average Shares - Calculation of Weighted Average Shares (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>101</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.htm</HtmlFileName>
      <LongName>9955575 - Disclosure - Weighted Average Shares - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail</Role>
      <ShortName>Weighted Average Shares - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>102</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R103.htm</HtmlFileName>
      <LongName>9955576 - Disclosure - Segment and Geographic Information - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail</Role>
      <ShortName>Segment and Geographic Information - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>103</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R104.htm</HtmlFileName>
      <LongName>9955577 - Disclosure - Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail</Role>
      <ShortName>Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>104</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R105.htm</HtmlFileName>
      <LongName>9955578 - Disclosure - Segment and Geographic Information - Disaggregation of Segment Expenses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails</Role>
      <ShortName>Segment and Geographic Information - Disaggregation of Segment Expenses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>105</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R106.htm</HtmlFileName>
      <LongName>9955579 - Disclosure - Business Acquisitions - Moritex Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails</Role>
      <ShortName>Business Acquisitions - Moritex Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>106</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R107.htm</HtmlFileName>
      <LongName>9955580 - Disclosure - Business Acquisitions - Moritex Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails</Role>
      <ShortName>Business Acquisitions - Moritex Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>107</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R108.htm</HtmlFileName>
      <LongName>9955581 - Disclosure - Loss from Fire (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LossfromFireDetails</Role>
      <ShortName>Loss from Fire (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://cognex.com/role/LossfromFire</ParentRole>
      <Position>108</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R109.htm</HtmlFileName>
      <LongName>9955582 - Disclosure - Subsequent Events - (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SubsequentEventsDetails</Role>
      <ShortName>Subsequent Events - (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://cognex.com/role/SubsequentEvents</ParentRole>
      <Position>109</Position>
    </Report>
    <Report instance="cgnx-20241231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R110.htm</HtmlFileName>
      <LongName>9955583 - Disclosure - Schedule II -Valuation and Qualifying Accounts (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail</Role>
      <ShortName>Schedule II -Valuation and Qualifying Accounts (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>110</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-K" isDefinitelyFs="true" isUsgaap="true" original="cgnx-20241231.htm">cgnx-20241231.htm</File>
    <File>cgnx-20241231.xsd</File>
    <File>cgnx-20241231_cal.xml</File>
    <File>cgnx-20241231_def.xml</File>
    <File>cgnx-20241231_lab.xml</File>
    <File>cgnx-20241231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles>
    <File>cgnx-20241231_g1.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="3">http://fasb.org/srt/2024</BaseTaxonomy>
    <BaseTaxonomy items="1341">http://fasb.org/us-gaap/2024</BaseTaxonomy>
    <BaseTaxonomy items="15">http://xbrl.sec.gov/cyd/2024</BaseTaxonomy>
    <BaseTaxonomy items="39">http://xbrl.sec.gov/dei/2024</BaseTaxonomy>
    <BaseTaxonomy items="11">http://xbrl.sec.gov/ecd/2024</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>139
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "cgnx-20241231.htm": {
   "nsprefix": "cgnx",
   "nsuri": "http://cognex.com/20241231",
   "dts": {
    "inline": {
     "local": [
      "cgnx-20241231.htm"
     ]
    },
    "schema": {
     "local": [
      "cgnx-20241231.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/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd",
      "https://xbrl.sec.gov/country/2024/country-2024.xsd",
      "https://xbrl.sec.gov/currency/2024/currency-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-af-2024.xsd",
      "https://xbrl.sec.gov/cyd/2024/cyd-af-sub-2024.xsd",
      "https://xbrl.sec.gov/dei/2024/dei-2024.xsd",
      "https://xbrl.sec.gov/ecd/2024/ecd-2024.xsd",
      "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "cgnx-20241231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "cgnx-20241231_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "cgnx-20241231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "cgnx-20241231_pre.xml"
     ]
    }
   },
   "keyStandard": 467,
   "keyCustom": 77,
   "axisStandard": 29,
   "axisCustom": 1,
   "memberStandard": 60,
   "memberCustom": 31,
   "hidden": {
    "total": 38,
    "http://cognex.com/20241231": 4,
    "http://fasb.org/us-gaap/2024": 26,
    "http://xbrl.sec.gov/dei/2024": 7,
    "http://xbrl.sec.gov/ecd/2024": 1
   },
   "contextCount": 281,
   "entityCount": 1,
   "segmentCount": 94,
   "elementCount": 942,
   "unitCount": 18,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2024": 1341,
    "http://xbrl.sec.gov/dei/2024": 39,
    "http://xbrl.sec.gov/cyd/2024": 15,
    "http://xbrl.sec.gov/ecd/2024": 11,
    "http://fasb.org/srt/2024": 3
   },
   "report": {
    "R1": {
     "role": "http://cognex.com/role/CoverPage",
     "longName": "0000001 - Document - Cover Page",
     "shortName": "Cover Page",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://cognex.com/role/AuditInformation",
     "longName": "0000002 - Document - Audit Information",
     "shortName": "Audit Information",
     "isDefault": "false",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "2",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:AuditorName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:AuditorName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
     "longName": "9952151 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareBasic",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R4": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
     "longName": "9952152 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical",
     "longName": "9952153 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R6": {
     "role": "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
     "longName": "9952154 - Statement - CONSOLIDATED BALANCE SHEETS",
     "shortName": "CONSOLIDATED BALANCE SHEETS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:AccountsReceivableNetCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R7": {
     "role": "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
     "longName": "9952155 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "shortName": "CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R8": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
     "longName": "9952156 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "8",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:StockOptionPlanExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R9": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
     "longName": "9952157 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "shortName": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "9",
     "firstAnchor": {
      "contextRef": "c-9",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-9",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical",
     "longName": "9952158 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)",
     "shortName": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "10",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R11": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPolicies",
     "longName": "9952159 - Disclosure - Summary of Significant Accounting Policies",
     "shortName": "Summary of Significant Accounting Policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://cognex.com/role/NewPronouncements",
     "longName": "9952160 - Disclosure - New Pronouncements",
     "shortName": "New Pronouncements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://cognex.com/role/FairValueMeasurements",
     "longName": "9952161 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestments",
     "longName": "9952162 - Disclosure - Cash, Cash Equivalents, and Investments",
     "shortName": "Cash, Cash Equivalents, and Investments",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://cognex.com/role/Inventories",
     "longName": "9952163 - Disclosure - Inventories",
     "shortName": "Inventories",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://cognex.com/role/PropertyPlantandEquipment",
     "longName": "9952164 - Disclosure - Property, Plant, and Equipment",
     "shortName": "Property, Plant, and Equipment",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://cognex.com/role/LeasesLeases",
     "longName": "9952165 - Disclosure - Leases Leases",
     "shortName": "Leases Leases",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://cognex.com/role/Goodwill",
     "longName": "9952166 - Disclosure - Goodwill",
     "shortName": "Goodwill",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://cognex.com/role/IntangibleAssets",
     "longName": "9952167 - Disclosure - Intangible Assets",
     "shortName": "Intangible Assets",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://cognex.com/role/AccruedExpenses",
     "longName": "9952168 - Disclosure - Accrued Expenses",
     "shortName": "Accrued Expenses",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://cognex.com/role/CommitmentsandContingencies",
     "longName": "9952169 - Disclosure - Commitments and Contingencies",
     "shortName": "Commitments and Contingencies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://cognex.com/role/IndemnificationProvisions",
     "longName": "9952170 - Disclosure - Indemnification Provisions",
     "shortName": "Indemnification Provisions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:IndemnificationProvisionsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:IndemnificationProvisionsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://cognex.com/role/DerivativeInstruments",
     "longName": "9952171 - Disclosure - Derivative Instruments",
     "shortName": "Derivative Instruments",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://cognex.com/role/RevenueRecognition",
     "longName": "9952172 - Disclosure - Revenue Recognition",
     "shortName": "Revenue Recognition",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "24",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://cognex.com/role/ShareholdersEquity",
     "longName": "9952173 - Disclosure - Shareholders' Equity",
     "shortName": "Shareholders' Equity",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "25",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://cognex.com/role/StockBasedCompensation",
     "longName": "9952174 - Disclosure - Stock-Based Compensation",
     "shortName": "Stock-Based Compensation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "26",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://cognex.com/role/EmployeeSavingsPlan",
     "longName": "9952175 - Disclosure - Employee Savings Plan",
     "shortName": "Employee Savings Plan",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "27",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://cognex.com/role/IncomeTaxes",
     "longName": "9952176 - Disclosure - Income Taxes",
     "shortName": "Income Taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "28",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://cognex.com/role/WeightedAverageShares",
     "longName": "9952177 - Disclosure - Weighted Average Shares",
     "shortName": "Weighted Average Shares",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "29",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://cognex.com/role/SegmentandGeographicInformation",
     "longName": "9952178 - Disclosure - Segment and Geographic Information",
     "shortName": "Segment and Geographic Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "30",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://cognex.com/role/BusinessAcquisitions",
     "longName": "9952179 - Disclosure - Business Acquisitions",
     "shortName": "Business Acquisitions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "31",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://cognex.com/role/LossfromFire",
     "longName": "9952180 - Disclosure - Loss from Fire",
     "shortName": "Loss from Fire",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "32",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:CatastropheTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:CatastropheTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://cognex.com/role/SubsequentEvents",
     "longName": "9952181 - Disclosure - Subsequent Events",
     "shortName": "Subsequent Events",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "33",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R34": {
     "role": "http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts",
     "longName": "9952182 - Disclosure - Schedule II - Valuation and Qualifying Accounts",
     "shortName": "Schedule II - Valuation and Qualifying Accounts",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "34",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure",
     "longName": "995410 - Disclosure - Pay vs Performance Disclosure",
     "shortName": "Pay vs Performance Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "35",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R36": {
     "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
     "longName": "995445 - Disclosure - Insider Trading Arrangements",
     "shortName": "Insider Trading Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "36",
     "firstAnchor": {
      "contextRef": "c-163",
      "name": "ecd:NonRule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ecd:MtrlTermsOfTrdArrTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-163",
      "name": "ecd:NonRule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ecd:MtrlTermsOfTrdArrTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure",
     "longName": "995550 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure",
     "shortName": "Cybersecurity Risk Management and Strategy Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "37",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies",
     "longName": "9955511 - Disclosure - Summary of Significant Accounting Policies (Policies)",
     "shortName": "Summary of Significant Accounting Policies (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "38",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:NatureOfOperationsPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:NatureOfOperationsPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://cognex.com/role/FairValueMeasurementsTables",
     "longName": "9955512 - Disclosure - Fair Value Measurements (Tables)",
     "shortName": "Fair Value Measurements (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "39",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables",
     "longName": "9955513 - Disclosure - Cash, Cash Equivalents, and Investments (Tables)",
     "shortName": "Cash, Cash Equivalents, and Investments (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "40",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://cognex.com/role/InventoriesTables",
     "longName": "9955514 - Disclosure - Inventories (Tables)",
     "shortName": "Inventories (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "41",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://cognex.com/role/PropertyPlantandEquipmentTables",
     "longName": "9955515 - Disclosure - Property, Plant, and Equipment (Tables)",
     "shortName": "Property, Plant, and Equipment (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "42",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://cognex.com/role/LeasesTables",
     "longName": "9955516 - Disclosure - Leases (Tables)",
     "shortName": "Leases (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "43",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://cognex.com/role/GoodwillTables",
     "longName": "9955517 - Disclosure - Goodwill (Tables)",
     "shortName": "Goodwill (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "44",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://cognex.com/role/IntangibleAssetsTables",
     "longName": "9955518 - Disclosure - Intangible Assets (Tables)",
     "shortName": "Intangible Assets (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "45",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://cognex.com/role/AccruedExpensesTables",
     "longName": "9955519 - Disclosure - Accrued Expenses (Tables)",
     "shortName": "Accrued Expenses (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "46",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://cognex.com/role/DerivativeInstrumentsTables",
     "longName": "9955520 - Disclosure - Derivative Instruments (Tables)",
     "shortName": "Derivative Instruments (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "47",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R48": {
     "role": "http://cognex.com/role/RevenueRecognitionTables",
     "longName": "9955521 - Disclosure - Revenue Recognition (Tables)",
     "shortName": "Revenue Recognition (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "48",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://cognex.com/role/StockBasedCompensationTables",
     "longName": "9955522 - Disclosure - Stock-Based Compensation (Tables)",
     "shortName": "Stock-Based Compensation (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "49",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://cognex.com/role/IncomeTaxesTables",
     "longName": "9955523 - Disclosure - Income Taxes (Tables)",
     "shortName": "Income Taxes (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "50",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R51": {
     "role": "http://cognex.com/role/WeightedAverageSharesTables",
     "longName": "9955524 - Disclosure - Weighted Average Shares (Tables)",
     "shortName": "Weighted Average Shares (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "51",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://cognex.com/role/SegmentandGeographicInformationTables",
     "longName": "9955525 - Disclosure - Segment and Geographic Information (Tables)",
     "shortName": "Segment and Geographic Information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "52",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R53": {
     "role": "http://cognex.com/role/BusinessAcquisitionsTables",
     "longName": "9955526 - Disclosure - Business Acquisitions - (Tables)",
     "shortName": "Business Acquisitions - (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "53",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R54": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
     "longName": "9955527 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Detail)",
     "shortName": "Summary of Significant Accounting Policies - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "us-gaap:InvestmentPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "us-gaap:InvestmentPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R55": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
     "longName": "9955528 - Disclosure - Summary of Significant Accounting Policies - Intangible Assets (Details)",
     "shortName": "Summary of Significant Accounting Policies - Intangible Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "c-46",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-46",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R56": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails",
     "longName": "9955529 - Disclosure - Summary of Significant Accounting Policies - Warranty (Details)",
     "shortName": "Summary of Significant Accounting Policies - Warranty (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "c-51",
      "name": "cgnx:ProductWarrantyPeriod",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:StandardProductWarrantyPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-51",
      "name": "cgnx:ProductWarrantyPeriod",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:StandardProductWarrantyPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
     "longName": "9955530 - Disclosure - Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)",
     "shortName": "Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "c-51",
      "name": "cgnx:RevenuePaymentTerms",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-51",
      "name": "cgnx:RevenuePaymentTerms",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R58": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails",
     "longName": "9955531 - Disclosure - Summary of Significant Accounting Policies - Advertising Costs (Details)",
     "shortName": "Summary of Significant Accounting Policies - Advertising Costs (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AdvertisingExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AdvertisingExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R59": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails",
     "longName": "9955532 - Disclosure - Summary of Significant Accounting Policies - Comprehensive Income (Details)",
     "shortName": "Summary of Significant Accounting Policies - Comprehensive Income (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R60": {
     "role": "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail",
     "longName": "9955533 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)",
     "shortName": "Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "c-56",
      "name": "cgnx:MoneyMarketInstrumentsFairValueDisclosure",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-56",
      "name": "cgnx:MoneyMarketInstrumentsFairValueDisclosure",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R61": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
     "longName": "9955534 - Disclosure - Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)",
     "shortName": "Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "61",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:Cash",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:Cash",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R62": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail",
     "longName": "9955535 - Disclosure - Cash, Cash Equivalents and Investments - Additional Information (Detail)",
     "shortName": "Cash, Cash Equivalents and Investments - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "cgnx:DueFromForeignBanks",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "cgnx:DueFromForeignBanks",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R63": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
     "longName": "9955536 - Disclosure - Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)",
     "shortName": "Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "63",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R64": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail",
     "longName": "9955537 - Disclosure - Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)",
     "shortName": "Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R65": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails",
     "longName": "9955538 - Disclosure - Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details)",
     "shortName": "Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "65",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleRealizedGain",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:RealizedGainLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RealizedInvestmentGainsLosses",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:RealizedGainLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R66": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
     "longName": "9955539 - Disclosure - Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)",
     "shortName": "Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "66",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R67": {
     "role": "http://cognex.com/role/InventoriesInventoriesDetail",
     "longName": "9955540 - Disclosure - Inventories - Inventories (Detail)",
     "shortName": "Inventories - Inventories (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "67",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R68": {
     "role": "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
     "longName": "9955541 - Disclosure - Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)",
     "shortName": "Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R69": {
     "role": "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails",
     "longName": "9955542 - Disclosure - Property, Plant and Equipment - Additional Information (Details)",
     "shortName": "Property, Plant and Equipment - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "69",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentDisposals",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R70": {
     "role": "http://cognex.com/role/LeasesDetails",
     "longName": "9955543 - Disclosure - Leases (Details)",
     "shortName": "Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "70",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OperatingLeaseExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OperatingLeaseExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R71": {
     "role": "http://cognex.com/role/LeasesScheduleofPaymentsDetails",
     "longName": "9955544 - Disclosure - Leases - Schedule of Payments (Details)",
     "shortName": "Leases - Schedule of Payments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "71",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R72": {
     "role": "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
     "longName": "9955545 - Disclosure - Goodwill - Changes in the Carrying Value of Goodwill (Detail)",
     "shortName": "Goodwill - Changes in the Carrying Value of Goodwill (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "72",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:Goodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:GoodwillForeignCurrencyTranslationGainLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R73": {
     "role": "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
     "longName": "9955546 - Disclosure - Intangible Assets - Amortized Intangible Assets (Detail)",
     "shortName": "Intangible Assets - Amortized Intangible Assets (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "73",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R74": {
     "role": "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
     "longName": "9955547 - Disclosure - Intangible Assets - Narrative (Details)",
     "shortName": "Intangible Assets - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "74",
     "firstAnchor": {
      "contextRef": "c-252",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R75": {
     "role": "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail",
     "longName": "9955548 - Disclosure - Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)",
     "shortName": "Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "75",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R76": {
     "role": "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail",
     "longName": "9955549 - Disclosure - Accrued Expenses - Constituents of Accrued Expenses (Detail)",
     "shortName": "Accrued Expenses - Constituents of Accrued Expenses (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "76",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:AccruedBonusesCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:AccruedBonusesCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R77": {
     "role": "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail",
     "longName": "9955550 - Disclosure - Accrued Expenses - Changes in Warranty Obligations (Detail)",
     "shortName": "Accrued Expenses - Changes in Warranty Obligations (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "77",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:ProductWarrantyAccrual",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-9",
      "name": "us-gaap:ProductWarrantyAccrual",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R78": {
     "role": "http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail",
     "longName": "9955551 - Disclosure - Commitments and Contingencies - Additional Information (Detail)",
     "shortName": "Commitments and Contingencies - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "78",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R79": {
     "role": "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
     "longName": "9955552 - Disclosure - Derivative Instruments - Additional Details (Details)",
     "shortName": "Derivative Instruments - Additional Details (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "79",
     "firstAnchor": {
      "contextRef": "c-112",
      "name": "us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-112",
      "name": "us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R80": {
     "role": "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails",
     "longName": "9955553 - Disclosure - Derivative Instruments - Outstanding Forward Contracts (Details)",
     "shortName": "Derivative Instruments - Outstanding Forward Contracts (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "80",
     "firstAnchor": {
      "contextRef": "c-115",
      "name": "us-gaap:DerivativeAssetNotionalAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-115",
      "name": "us-gaap:DerivativeAssetNotionalAmount",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R81": {
     "role": "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
     "longName": "9955554 - Disclosure - Derivative Instruments - Balance Sheet Location (Details)",
     "shortName": "Derivative Instruments - Balance Sheet Location (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "81",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-131",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R82": {
     "role": "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails",
     "longName": "9955555 - Disclosure - Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)",
     "shortName": "Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "82",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:DerivativeFairValueOfDerivativeAsset",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:DerivativeFairValueOfDerivativeAsset",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R83": {
     "role": "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
     "longName": "9955556 - Disclosure - Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)",
     "shortName": "Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "83",
     "firstAnchor": {
      "contextRef": "c-112",
      "name": "us-gaap:DerivativeGainLossOnDerivativeNet",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R84": {
     "role": "http://cognex.com/role/RevenueRecognitionNarrativesDetails",
     "longName": "9955557 - Disclosure - Revenue Recognition - Narratives (Details)",
     "shortName": "Revenue Recognition - Narratives (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "84",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:CapitalizedContractCostGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:CapitalizedContractCostGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R85": {
     "role": "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
     "longName": "9955558 - Disclosure - Revenue Recognition - Disaggregation by Geography and Type (Details)",
     "shortName": "Revenue Recognition - Disaggregation by Geography and Type (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "85",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-147",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R86": {
     "role": "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails",
     "longName": "9955559 - Disclosure - Revenue Recognition - Allowance for Credit Loss (Details)",
     "shortName": "Revenue Recognition - Allowance for Credit Loss (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "86",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-8",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R87": {
     "role": "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails",
     "longName": "9955560 - Disclosure - Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)",
     "shortName": "Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "87",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:ContractWithCustomerLiabilityCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-8",
      "name": "us-gaap:ContractWithCustomerLiabilityCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R88": {
     "role": "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail",
     "longName": "9955561 - Disclosure - Shareholders' Equity - Additional Information (Detail)",
     "shortName": "Shareholders' Equity - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "88",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-153",
      "name": "us-gaap:CommonStockSharesAuthorized",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R89": {
     "role": "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
     "longName": "9955562 - Disclosure - Stock-Based Compensation Expense - Additional Information (Detail)",
     "shortName": "Stock-Based Compensation Expense - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "89",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "cgnx:NumberOfGroupsWithinEmployeePopulation",
      "unitRef": "group",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R90": {
     "role": "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail",
     "longName": "9955563 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)",
     "shortName": "Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "90",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R91": {
     "role": "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
     "longName": "9955564 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)",
     "shortName": "Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "91",
     "firstAnchor": {
      "contextRef": "c-171",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-171",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R92": {
     "role": "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
     "longName": "9955565 - Disclosure - Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)",
     "shortName": "Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "92",
     "firstAnchor": {
      "contextRef": "c-178",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-178",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R93": {
     "role": "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail",
     "longName": "9955566 - Disclosure - Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)",
     "shortName": "Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "93",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-189",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R94": {
     "role": "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails",
     "longName": "9955567 - Disclosure - Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)",
     "shortName": "Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "94",
     "firstAnchor": {
      "contextRef": "c-184",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-185",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R95": {
     "role": "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail",
     "longName": "9955568 - Disclosure - Employee Savings Plan - Additional Information (Detail)",
     "shortName": "Employee Savings Plan - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "95",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R96": {
     "role": "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
     "longName": "9955569 - Disclosure - Income Taxes - Additional Information (Details)",
     "shortName": "Income Taxes - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "96",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R97": {
     "role": "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails",
     "longName": "9955570 - Disclosure - Income Taxes - Constituents of Provision for Income Taxes (Details)",
     "shortName": "Income Taxes - Constituents of Provision for Income Taxes (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "97",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R98": {
     "role": "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails",
     "longName": "9955571 - Disclosure - Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)",
     "shortName": "Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "98",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R99": {
     "role": "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails",
     "longName": "9955572 - Disclosure - Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)",
     "shortName": "Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "99",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-9",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R100": {
     "role": "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails",
     "longName": "9955573 - Disclosure - Income Taxes - Constituents of Deferred Tax Assets (Details)",
     "shortName": "Income Taxes - Constituents of Deferred Tax Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "100",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R101": {
     "role": "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail",
     "longName": "9955574 - Disclosure - Weighted Average Shares - Calculation of Weighted Average Shares (Detail)",
     "shortName": "Weighted Average Shares - Calculation of Weighted Average Shares (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "101",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R102": {
     "role": "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail",
     "longName": "9955575 - Disclosure - Weighted Average Shares - Additional Information (Detail)",
     "shortName": "Weighted Average Shares - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "102",
     "firstAnchor": {
      "contextRef": "c-211",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-211",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R103": {
     "role": "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail",
     "longName": "9955576 - Disclosure - Segment and Geographic Information - Additional Information (Detail)",
     "shortName": "Segment and Geographic Information - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "103",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NumberOfReportableSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NumberOfReportableSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R104": {
     "role": "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail",
     "longName": "9955577 - Disclosure - Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)",
     "shortName": "Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "104",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:NoncurrentAssets",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R105": {
     "role": "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails",
     "longName": "9955578 - Disclosure - Segment and Geographic Information - Disaggregation of Segment Expenses (Details)",
     "shortName": "Segment and Geographic Information - Disaggregation of Segment Expenses (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "105",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-242",
      "name": "us-gaap:LaborAndRelatedExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R106": {
     "role": "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
     "longName": "9955579 - Disclosure - Business Acquisitions - Moritex Narrative (Details)",
     "shortName": "Business Acquisitions - Moritex Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "106",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-248",
      "name": "cgnx:BusinessCombinationEnterpriseValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-6",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R107": {
     "role": "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
     "longName": "9955580 - Disclosure - Business Acquisitions - Moritex Purchase Price Allocation (Details)",
     "shortName": "Business Acquisitions - Moritex Purchase Price Allocation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "107",
     "firstAnchor": {
      "contextRef": "c-6",
      "name": "us-gaap:Goodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-248",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R108": {
     "role": "http://cognex.com/role/LossfromFireDetails",
     "longName": "9955581 - Disclosure - Loss from Fire (Details)",
     "shortName": "Loss from Fire (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "108",
     "firstAnchor": {
      "contextRef": "c-255",
      "name": "us-gaap:LossFromCatastrophes",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-255",
      "name": "us-gaap:LossFromCatastrophes",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true,
      "unique": true
     }
    },
    "R109": {
     "role": "http://cognex.com/role/SubsequentEventsDetails",
     "longName": "9955582 - Disclosure - Subsequent Events - (Details)",
     "shortName": "Subsequent Events - (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "109",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-257",
      "name": "us-gaap:DividendsPayableAmountPerShare",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    },
    "R110": {
     "role": "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail",
     "longName": "9955583 - Disclosure - Schedule II -Valuation and Qualifying Accounts (Detail)",
     "shortName": "Schedule II -Valuation and Qualifying Accounts (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "110",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-263",
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20241231.htm",
      "unique": true
     }
    }
   },
   "tag": {
    "cgnx_A27000SquareFootPremisesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "A27000SquareFootPremisesMember",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "27,000 Square-Foot Premises",
        "label": "27,000 Square-Foot Premises [Member]",
        "documentation": "27,000 Square-Foot Premises"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_A88000SquareFootPremisesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "A88000SquareFootPremisesMember",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "88,000 Square-Foot Premises",
        "label": "88,000 Square-Foot Premises [Member]",
        "documentation": "88,000 Square-Foot Premises"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AachenGermanyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AachenGermanyMember",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aachen Germany",
        "label": "Aachen Germany [Member]",
        "documentation": "Aachen Germany"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountingChangesAndErrorCorrectionsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountingChangesAndErrorCorrectionsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounting Changes and Error Corrections [Abstract]",
        "label": "Accounting Changes and Error Corrections [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounting Policies [Abstract]",
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/AccruedExpenses"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued Expenses",
        "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]",
        "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period."
       }
      }
     },
     "auth_ref": [
      "r89",
      "r91",
      "r94",
      "r1351"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable",
        "label": "Accounts Payable, Current",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r89",
      "r1066"
     ]
    },
    "cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign exchange rate changes",
        "label": "Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment",
        "documentation": "Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsReceivableMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsReceivableMember",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts Receivable [Member]",
        "label": "Accounts Receivable [Member]",
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold."
       }
      }
     },
     "auth_ref": [
      "r984"
     ]
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable, allowance for credit losses of $827 and $583 in 2024 and 2023, respectively",
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1264"
     ]
    },
    "us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccretionAmortizationOfDiscountsAndPremiumsInvestments",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Amortization of discounts or premiums on investments",
        "label": "Accretion (Amortization) of Discounts and Premiums, Investments",
        "documentation": "The sum of the periodic adjustments of the differences between securities' face values and purchase prices that are charged against earnings. This is called accretion if the security was purchased at a discount and amortization if it was purchased at premium. As a noncash item, this element is an adjustment to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r128"
     ]
    },
    "us-gaap_AccruedBonusesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedBonusesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Incentive compensation",
        "label": "Accrued Bonuses, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for incentive compensation awarded to employees and directors or earned by them based on the terms of one or more relevant arrangements. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r91"
     ]
    },
    "us-gaap_AccruedIncomeTaxesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedIncomeTaxesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued income taxes",
        "label": "Accrued Income Taxes, Current",
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations."
       }
      }
     },
     "auth_ref": [
      "r91",
      "r161"
     ]
    },
    "us-gaap_AccruedIncomeTaxesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedIncomeTaxesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current accrued income taxes",
        "label": "Accrued Income Taxes, Noncurrent",
        "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."
       }
      }
     },
     "auth_ref": [
      "r94",
      "r161"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      },
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail",
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued expenses",
        "totalLabel": "Accrued expenses",
        "label": "Accrued Liabilities, Current",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r91"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedLiabilitiesCurrentAbstract",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Constituents of accrued expenses",
        "label": "Accrued Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccruedSalariesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedSalariesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Salaries and payroll taxes",
        "label": "Accrued Salaries, Current",
        "documentation": "Carrying value as of the balance sheet date of the obligations incurred through that date and payable for employees' services provided. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r91",
      "r1006"
     ]
    },
    "us-gaap_AccruedVacationCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccruedVacationCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vacation",
        "label": "Accrued Vacation, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for unused vacation time owed to employees based on the entity's vacation benefit given to its employees. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r59",
      "r91"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: accumulated depreciation",
        "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services."
       }
      }
     },
     "auth_ref": [
      "r51",
      "r251",
      "r827"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reduction of accumulated depreciation due to disposals",
        "label": "Accumulated Depreciation, Depletion and Amortization, Sale or Disposal of Property, Plant and Equipment",
        "documentation": "Amount of decrease in accumulated depreciation, depletion and amortization as a result of sale or disposal of property, plant and equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net unrealized losses on available-for-sale investments, net of tax",
        "label": "AOCI, Debt Securities, Available-for-Sale, Adjustment, after Tax",
        "documentation": "Amount, after tax, of accumulated unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r1234"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated other comprehensive loss consists of foreign currency translation adjustments, net of tax",
        "label": "Accumulated Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Net of Tax",
        "documentation": "Accumulated adjustment, net of tax, that results from the process of translating subsidiary financial statements and foreign equity investments into the reporting currency from the functional currency of the reporting entity, net of reclassification of realized foreign currency translation gains or losses."
       }
      }
     },
     "auth_ref": [
      "r268",
      "r271",
      "r272",
      "r273",
      "r699"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeLossLineItems",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Line Items]",
        "label": "Accumulated Other Comprehensive Income (Loss) [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r281",
      "r282",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r715"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated other comprehensive loss, net of tax",
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r27",
      "r28",
      "r109",
      "r259",
      "r823",
      "r865",
      "r868"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeLossTable",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Table]",
        "label": "Accumulated Other Comprehensive Income (Loss) [Table]",
        "documentation": "Disclosure of information about components of accumulated other comprehensive income (loss)."
       }
      }
     },
     "auth_ref": [
      "r281",
      "r282",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r715"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Loss [Member]",
        "label": "AOCI Attributable to Parent [Member]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r4",
      "r16",
      "r28",
      "r666",
      "r669",
      "r731",
      "r861",
      "r862",
      "r1235",
      "r1236",
      "r1237",
      "r1252",
      "r1253",
      "r1254",
      "r1256"
     ]
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets, useful life",
        "label": "Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life",
        "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."
       }
      }
     },
     "auth_ref": [
      "r457",
      "r999"
     ]
    },
    "ecd_Additional402vDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Additional402vDisclosureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional 402(v) Disclosure",
        "label": "Additional 402(v) Disclosure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1145"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapitalCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional paid-in capital",
        "label": "Additional Paid in Capital, Common Stock",
        "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital."
       }
      }
     },
     "auth_ref": [
      "r99"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional Paid-in Capital [Member]",
        "label": "Additional Paid-in Capital [Member]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r882",
      "r1252",
      "r1253",
      "r1254",
      "r1256",
      "r1372",
      "r1440"
     ]
    },
    "ecd_AdjToCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Compensation, Amount",
        "label": "Adjustment to Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1158"
     ]
    },
    "ecd_AdjToCompAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToCompAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Compensation:",
        "label": "Adjustment to Compensation [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1158"
     ]
    },
    "ecd_AdjToNonPeoNeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToNonPeoNeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote",
        "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1158"
     ]
    },
    "ecd_AdjToPeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AdjToPeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment To PEO Compensation, Footnote",
        "label": "Adjustment To PEO Compensation, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1158"
     ]
    },
    "us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentForLongTermIntercompanyTransactionsNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Losses on currency swaps, net of gains on long-term intercompany loans",
        "label": "Adjustment for Long-Term Intra-Entity Transaction, after Tax",
        "documentation": "Amount, after tax, of increase (decrease) in accumulated other comprehensive income (AOCI) from gain (loss) on intra-entity foreign currency transaction that is considered to be long-term-investment with settlement not planned or anticipated in foreseeable future."
       }
      }
     },
     "auth_ref": [
      "r1390",
      "r1391"
     ]
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation expense",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r62",
      "r63",
      "r557"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustments to reconcile net income to net cash provided by operating activities:",
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdvertisingCostsPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising Costs",
        "label": "Advertising Cost [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for advertising cost."
       }
      }
     },
     "auth_ref": [
      "r183"
     ]
    },
    "us-gaap_AdvertisingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AdvertisingExpense",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising costs",
        "label": "Advertising Expense",
        "documentation": "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line."
       }
      }
     },
     "auth_ref": [
      "r600",
      "r1050"
     ]
    },
    "cgnx_AgencyBondsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AgencyBondsMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Agency Bonds [Member]",
        "label": "Agency Bonds [Member]",
        "documentation": "Agency bond."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AggtChngPnsnValInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtChngPnsnValInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table",
        "label": "Aggregate Change in Present Value of Accumulated Benefit for All Pension Plans Reported in Summary Compensation Table [Member]"
       }
      }
     },
     "auth_ref": [
      "r1203"
     ]
    },
    "ecd_AggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Erroneous Compensation Amount",
        "label": "Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1116",
      "r1127",
      "r1137",
      "r1170"
     ]
    },
    "ecd_AggtErrCompNotYetDeterminedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtErrCompNotYetDeterminedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined",
        "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1119",
      "r1130",
      "r1140",
      "r1173"
     ]
    },
    "ecd_AggtPnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AggtPnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Pension Adjustments Service Cost",
        "label": "Aggregate Pension Adjustments Service Cost [Member]"
       }
      }
     },
     "auth_ref": [
      "r1204"
     ]
    },
    "ecd_AllAdjToCompMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllAdjToCompMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Adjustments to Compensation",
        "label": "All Adjustments to Compensation [Member]"
       }
      }
     },
     "auth_ref": [
      "r1158"
     ]
    },
    "currency_AllCurrenciesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2024",
     "localname": "AllCurrenciesDomain",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Currencies [Domain]",
        "label": "All Currencies [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AllExecutiveCategoriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllExecutiveCategoriesMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Executive Categories",
        "label": "All Executive Categories [Member]"
       }
      }
     },
     "auth_ref": [
      "r1165"
     ]
    },
    "ecd_AllIndividualsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllIndividualsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Individuals",
        "label": "All Individuals [Member]"
       }
      }
     },
     "auth_ref": [
      "r1120",
      "r1131",
      "r1141",
      "r1165",
      "r1174",
      "r1178",
      "r1186"
     ]
    },
    "ecd_AllTradingArrangementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AllTradingArrangementsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Trading Arrangements",
        "label": "All Trading Arrangements [Member]"
       }
      }
     },
     "auth_ref": [
      "r1184"
     ]
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails": {
       "parentTag": "us-gaap_ResearchAndDevelopmentExpense",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails",
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock-based compensation expense",
        "terseLabel": "Allocated Share-based Compensation Expense",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r589",
      "r598"
     ]
    },
    "us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for Credit Loss",
        "label": "Financing Receivable, Allowance for Credit Loss [Table Text Block]",
        "documentation": "Tabular disclosure of allowance for credit loss on financing receivable."
       }
      }
     },
     "auth_ref": [
      "r171",
      "r1278"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning balance",
        "periodEndLabel": "Ending balance",
        "label": "Accounts Receivable, Allowance for Credit Loss",
        "documentation": "Amount of allowance for credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r260",
      "r376",
      "r415",
      "r418",
      "r421",
      "r1407"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForDoubtfulAccountsReceivableRollforward",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]",
        "label": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Write-offs, net of recoveries",
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance."
       }
      }
     },
     "auth_ref": [
      "r420"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment Flag",
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "srt_AmericasMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "AmericasMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Americas [Member]",
        "label": "Americas [Member]",
        "documentation": "Continents of North and South America."
       }
      }
     },
     "auth_ref": [
      "r1223",
      "r1224",
      "r1225",
      "r1226",
      "r1443",
      "r1444",
      "r1445",
      "r1446"
     ]
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization of intangible assets",
        "label": "Amortization of Intangible Assets",
        "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."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r454",
      "r461",
      "r1031"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock options to purchase anti-dilutive common stock",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "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."
       }
      }
     },
     "auth_ref": [
      "r332"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities [Axis]",
        "label": "Antidilutive Securities [Axis]",
        "documentation": "Information by type of antidilutive security."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AntidilutiveSecuritiesNameDomain",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities, Name [Domain]",
        "label": "Antidilutive Securities, Name [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "cgnx_ApplicationofCustomerSpecificSolutionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ApplicationofCustomerSpecificSolutionsMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Application-specific customer solutions",
        "label": "Application of Customer Specific Solutions [Member]",
        "documentation": "Application of Customer Specific Solutions [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AreaOfRealEstateProperty": {
     "xbrltype": "areaItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AreaOfRealEstateProperty",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Area of Real Estate Property",
        "label": "Area of Real Estate Property",
        "documentation": "Area of a real estate property."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetAcquisitionConsiderationTransferredTransactionCost",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset acquisition, transaction costs",
        "label": "Asset Acquisition, Consideration Transferred, Transaction Cost",
        "documentation": "Amount of transaction cost incurred as part of consideration transferred in asset acquisition."
       }
      }
     },
     "auth_ref": [
      "r1053",
      "r1365",
      "r1366",
      "r1367"
     ]
    },
    "cgnx_AssetBackedSecuritiesFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AssetBackedSecuritiesFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Asset-backed securities",
        "label": "Asset Backed Securities Fair Value Disclosure",
        "documentation": "Asset Backed Securities Fair Value Disclosure"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetBackedSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetBackedSecuritiesMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset-Backed Securities [Member]",
        "label": "Asset-Backed Securities [Member]",
        "documentation": "Securities that are primarily serviced by the cash flows of a discrete pool of receivables or other financial assets for example, but not limited to, credit card receivables, car loans, recreational vehicle loans, and mobile home loans."
       }
      }
     },
     "auth_ref": [
      "r1042",
      "r1067",
      "r1270",
      "r1271",
      "r1272"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets",
        "label": "Assets",
        "documentation": "Amount of asset recognized for present right to economic benefit."
       }
      }
     },
     "auth_ref": [
      "r160",
      "r170",
      "r255",
      "r293",
      "r337",
      "r344",
      "r362",
      "r366",
      "r410",
      "r491",
      "r492",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r500",
      "r501",
      "r658",
      "r660",
      "r701",
      "r819",
      "r919",
      "r1023",
      "r1024",
      "r1066",
      "r1095",
      "r1317",
      "r1318",
      "r1397"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ASSETS",
        "label": "Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "label": "Assets, Current",
        "documentation": "Amount of asset recognized for present right to economic benefit, classified as current."
       }
      }
     },
     "auth_ref": [
      "r245",
      "r263",
      "r293",
      "r410",
      "r491",
      "r492",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r500",
      "r501",
      "r658",
      "r660",
      "r701",
      "r1066",
      "r1317",
      "r1318",
      "r1397"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current assets:",
        "label": "Assets, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsFairValueDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AssetsFairValueDisclosureAbstract",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assets:",
        "label": "Assets, Fair Value Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AuditInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AuditInformationAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Audit Information [Abstract]",
        "documentation": "Audit Information"
       }
      }
     },
     "auth_ref": []
    },
    "dei_AuditorFirmId": {
     "xbrltype": "nonemptySequenceNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorFirmId",
     "presentation": [
      "http://cognex.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Firm ID",
        "label": "Auditor Firm ID",
        "documentation": "PCAOB issued Audit Firm Identifier"
       }
      }
     },
     "auth_ref": [
      "r1099",
      "r1100",
      "r1123"
     ]
    },
    "dei_AuditorLocation": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorLocation",
     "presentation": [
      "http://cognex.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Location",
        "label": "Auditor Location"
       }
      }
     },
     "auth_ref": [
      "r1099",
      "r1100",
      "r1123"
     ]
    },
    "dei_AuditorName": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AuditorName",
     "presentation": [
      "http://cognex.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Name",
        "label": "Auditor Name"
       }
      }
     },
     "auth_ref": [
      "r1099",
      "r1100",
      "r1123"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross Unrealized Gains",
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain, before Tax",
        "documentation": "Amount, before tax, of unrealized gain in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r382"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Gross Unrealized Losses",
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax",
        "documentation": "Amount, before tax, of unrealized loss in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r383"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleDebtSecuritiesAmortizedCostBasis",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Amortized Cost",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost",
        "documentation": "Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r379",
      "r425",
      "r818"
     ]
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "available for sale securities debt maturities after five years before seven years fair value",
        "label": "Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value",
        "documentation": "Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "4-5 Years",
        "label": "Available For Sale Securities Debt Maturities After Four Years Before Five Years Fair Value",
        "documentation": "Available-for-sale securities, debt maturities after fourth year but before fifth year, fair value."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "1-2 Years",
        "label": "Available For Sale Securities Debt Maturities After One Year Before Two Years Fair Value",
        "documentation": "This item represents the fair value of debt securities which are expected to mature within one year of the balance sheet date and which are categorized neither as held-to-maturity nor trading securities."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "3-4 Years",
        "label": "Available For Sale Securities Debt Maturities After Three Years Before Four Years Fair Value",
        "documentation": "Available-for-sale securities, debt maturities after third year but before fourth year, fair value."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2-3 Years",
        "label": "Available For Sale Securities Debt Maturities After Two Years Before Three Years Fair Value",
        "documentation": "Available-for-sale securities, debt maturities after second year but before third year, fair value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less than 1 Year",
        "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One",
        "documentation": "Fair value of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), with single maturity date and allocated without single maturity date, maturing 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)."
       }
      }
     },
     "auth_ref": [
      "r386",
      "r816"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleSecuritiesDebtSecurities",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0,
       "order": 3.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Total",
        "totalLabel": "Fair Value, Total",
        "label": "Debt Securities, Available-for-Sale",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r380",
      "r425",
      "r679",
      "r812",
      "r1054",
      "r1058",
      "r1268",
      "r1376",
      "r1377",
      "r1378"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleSecuritiesDebtSecuritiesCurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current investments, amortized cost of $60,725 and $132,799 in 2024 and 2023, respectively, allowance for credit losses of $0 in 2024 and 2023",
        "verboseLabel": "Debt securities, available-for-sale, current",
        "label": "Debt Securities, Available-for-Sale, Current",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current."
       }
      }
     },
     "auth_ref": [
      "r377",
      "r425"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AvailableForSaleSecuritiesDebtSecuritiesNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "us-gaap_LongTermInvestments",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term investments",
        "label": "Debt Securities, Available-for-Sale, Noncurrent",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r249",
      "r377",
      "r425"
     ]
    },
    "cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effective maturity of investments",
        "label": "Available-for-sale Securities, Debt Maturities, Effective Term, Maximum",
        "documentation": "Available-for-sale Securities, Debt Maturities, Effective Term, Maximum"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AwardExrcPrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardExrcPrice",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise Price",
        "label": "Award Exercise Price"
       }
      }
     },
     "auth_ref": [
      "r1181"
     ]
    },
    "ecd_AwardGrantDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardGrantDateFairValue",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value as of Grant Date",
        "label": "Award Grant Date Fair Value"
       }
      }
     },
     "auth_ref": [
      "r1182"
     ]
    },
    "ecd_AwardTmgDiscLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgDiscLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Disclosures [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1177"
     ]
    },
    "ecd_AwardTmgHowMnpiCnsdrdTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgHowMnpiCnsdrdTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing, How MNPI Considered",
        "label": "Award Timing, How MNPI Considered [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1177"
     ]
    },
    "ecd_AwardTmgMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing Method",
        "label": "Award Timing Method [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1177"
     ]
    },
    "ecd_AwardTmgMnpiCnsdrdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgMnpiCnsdrdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing MNPI Considered",
        "label": "Award Timing MNPI Considered [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1177"
     ]
    },
    "ecd_AwardTmgMnpiDiscTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgMnpiDiscTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing MNPI Disclosure",
        "label": "Award Timing MNPI Disclosure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1177"
     ]
    },
    "ecd_AwardTmgPredtrmndFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardTmgPredtrmndFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing Predetermined",
        "label": "Award Timing Predetermined [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1177"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Type [Axis]",
        "label": "Award Type [Axis]",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r560",
      "r561",
      "r562",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r581",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588"
     ]
    },
    "ecd_AwardUndrlygSecuritiesAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardUndrlygSecuritiesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Underlying Securities",
        "label": "Award Underlying Securities Amount"
       }
      }
     },
     "auth_ref": [
      "r1180"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardsCloseToMnpiDiscIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Awards Close in Time to MNPI Disclosures, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r1179"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardsCloseToMnpiDiscTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Awards Close in Time to MNPI Disclosures",
        "label": "Awards Close in Time to MNPI Disclosures [Table]"
       }
      }
     },
     "auth_ref": [
      "r1178"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "AwardsCloseToMnpiDiscTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Awards Close in Time to MNPI Disclosures, Table",
        "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1178"
     ]
    },
    "cgnx_BacNinhVietnamMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "BacNinhVietnamMember",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bac Ninh, Vietnam",
        "label": "Bac Ninh, Vietnam [Member]",
        "documentation": "Bac Ninh, Vietnam"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BuildingImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BuildingImprovementsMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Building Improvements [Member]",
        "label": "Building Improvements [Member]",
        "documentation": "Addition, improvement, or renovation to a facility held for productive use including, but not limited to, office, production, storage and distribution facilities."
       }
      }
     },
     "auth_ref": [
      "r134"
     ]
    },
    "us-gaap_BuildingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BuildingMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Building [Member]",
        "label": "Building [Member]",
        "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities."
       }
      }
     },
     "auth_ref": [
      "r134"
     ]
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/InventoriesInventoriesDetail",
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition, Acquiree [Domain]",
        "label": "Business Acquisition, Acquiree [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r653",
      "r1045",
      "r1046"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/InventoriesInventoriesDetail",
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition [Axis]",
        "label": "Business Acquisition [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r64",
      "r65",
      "r455",
      "r456",
      "r457",
      "r458",
      "r459",
      "r653",
      "r1045",
      "r1046"
     ]
    },
    "us-gaap_BusinessAcquisitionCostOfAcquiredEntityTransactionCosts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionCostOfAcquiredEntityTransactionCosts",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition, Transaction Costs",
        "label": "Business Acquisition, Transaction Costs",
        "documentation": "Amount of direct costs of the business combination including legal, accounting, and other costs incurred to consummate the business acquisition."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessAcquisitionLineItems",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition [Line Items]",
        "label": "Business Acquisition [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r653"
     ]
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationConsiderationTransferred1",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Purchase price",
        "label": "Business Combination, Consideration Transferred",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1",
      "r2",
      "r15"
     ]
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitions"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisitions",
        "label": "Business Combination Disclosure [Text Block]",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r147",
      "r654"
     ]
    },
    "cgnx_BusinessCombinationEnterpriseValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "BusinessCombinationEnterpriseValue",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Enterprise value",
        "label": "Business Combination, Enterprise Value",
        "documentation": "Business Combination, Enterprise Value"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cash acquired",
        "terseLabel": "Cash and cash equivalents",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents",
        "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."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables",
        "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Accrued expenses",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities",
        "documentation": "Amount of liabilities due within one year or within the normal operating cycle, if longer, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Accounts payable",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable",
        "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred income tax assets",
        "label": "Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Assets",
        "documentation": "Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Deferred income tax liabilities",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill",
        "documentation": "Amount of intangible assets, excluding goodwill, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-lived intangible assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles",
        "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r66",
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Inventories acquired",
        "terseLabel": "Inventories",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Inventory",
        "documentation": "The amount of inventory recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r66",
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Other liabilities",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Other",
        "documentation": "Amount of other liabilities due after one year or the normal operating cycle, if longer, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Other Noncurrent Assets",
        "documentation": "Amount of other assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Property, plant and equipment acquired",
        "terseLabel": "Property, plant and equipment",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment",
        "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r66",
      "r67"
     ]
    },
    "cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Reserve for income taxes",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Reserve for Income Taxes",
        "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Reserve for Income Taxes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Purchase price",
        "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net",
        "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed."
       }
      }
     },
     "auth_ref": [
      "r67"
     ]
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Combinations [Abstract]",
        "label": "Business Combinations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "BusinessCombinationsPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisitions",
        "label": "Business Combinations Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r148",
      "r149",
      "r150",
      "r151"
     ]
    },
    "currency_CAD": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2024",
     "localname": "CAD",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Canadian Dollar [Member]",
        "label": "Canada, Dollars"
       }
      }
     },
     "auth_ref": []
    },
    "currency_CHF": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2024",
     "localname": "CHF",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Switzerland, Francs",
        "label": "Switzerland, Francs"
       }
      }
     },
     "auth_ref": []
    },
    "currency_CNY": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2024",
     "localname": "CNY",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "China, Yuan Renminbi",
        "label": "China, Yuan Renminbi"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CapitalizedContractCostGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CapitalizedContractCostGross",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionNarrativesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capitalized Contract Cost, Gross",
        "label": "Capitalized Contract Cost, Gross",
        "documentation": "Amount, before accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer."
       }
      }
     },
     "auth_ref": [
      "r1279"
     ]
    },
    "us-gaap_Cash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Cash",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash",
        "label": "Cash",
        "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. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r181",
      "r822",
      "r883",
      "r914",
      "r1066",
      "r1095",
      "r1230"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents [Abstract]",
        "label": "Cash and Cash Equivalents [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and cash equivalents",
        "totalLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "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."
       }
      }
     },
     "auth_ref": [
      "r32",
      "r248",
      "r1004"
     ]
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash, Cash Equivalents, and Investments",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value."
       }
      }
     },
     "auth_ref": [
      "r33"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Cash and cash equivalents at beginning of year",
        "periodEndLabel": "Cash and cash equivalents at end of year",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for 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."
       }
      }
     },
     "auth_ref": [
      "r32",
      "r126",
      "r290"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net change in cash and cash equivalents",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "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."
       }
      }
     },
     "auth_ref": [
      "r3",
      "r126"
     ]
    },
    "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CashCashEquivalentsShortTermAndLongTermInvestments",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total",
        "label": "Cash Cash Equivalents Short Term And Long Term Investments",
        "documentation": "Cash, cash equivalents, short term and long term investments."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CatastropheTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CatastropheTextBlock",
     "presentation": [
      "http://cognex.com/role/LossfromFire"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss from Fire",
        "label": "Catastrophe [Text Block]",
        "documentation": "Catastrophe"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ChangedPeerGroupFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChangedPeerGroupFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changed Peer Group, Footnote",
        "label": "Changed Peer Group, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1156"
     ]
    },
    "ecd_ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChngInFrValAsOfVstngDtOfPrrYrEqtyAwrdsVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year",
        "label": "Change in Fair Value as of Vesting Date of Prior Year Equity Awards Vested in Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r1153"
     ]
    },
    "ecd_ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ChngInFrValOfOutsdngAndUnvstdEqtyAwrdsGrntdInPrrYrsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested",
        "label": "Year-over-Year Change in Fair Value of Equity Awards Granted in Prior Years That are Outstanding and Unvested [Member]"
       }
      }
     },
     "auth_ref": [
      "r1151"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CityAreaCode",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfStockLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ClassOfStockLineItems",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Stock [Line Items]",
        "label": "Class of Stock [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r256",
      "r257",
      "r258",
      "r339",
      "r505",
      "r506",
      "r507",
      "r509",
      "r512",
      "r517",
      "r519",
      "r876",
      "r877",
      "r878",
      "r879",
      "r1034",
      "r1208",
      "r1242"
     ]
    },
    "ecd_CoSelectedMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CoSelectedMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company Selected Measure Amount",
        "label": "Company Selected Measure Amount"
       }
      }
     },
     "auth_ref": [
      "r1157"
     ]
    },
    "ecd_CoSelectedMeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CoSelectedMeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company Selected Measure Name",
        "label": "Company Selected Measure Name"
       }
      }
     },
     "auth_ref": [
      "r1157"
     ]
    },
    "cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CognexCorporation2021And2007StockOptionAndIncentivePlansMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans",
        "label": "Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans [Member]",
        "documentation": "Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CognexCorporation2023StockOptionAndIncentivePlanMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cognex Corporation 2023 Stock Option And Incentive Plan",
        "label": "Cognex Corporation 2023 Stock Option And Incentive Plan [Member]",
        "documentation": "Cognex Corporation 2023 Stock Option And Incentive Plan"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and contingencies (Note 11)",
        "label": "Commitments and Contingencies",
        "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."
       }
      }
     },
     "auth_ref": [
      "r95",
      "r163",
      "r821",
      "r905"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and Contingencies Disclosure [Abstract]",
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/CommitmentsandContingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and Contingencies",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r137",
      "r478",
      "r480",
      "r985",
      "r1305",
      "r1308"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommitmentsAndContingenciesPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingencies",
        "label": "Commitments and Contingencies, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for commitments and contingencies, which may include policies for recognizing and measuring loss and gain contingencies."
       }
      }
     },
     "auth_ref": [
      "r52",
      "r986"
     ]
    },
    "us-gaap_CommonStockDividendsPerShareCashPaid": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockDividendsPerShareCashPaid",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash dividends per common share (in dollars per share)",
        "label": "Common Stock, Dividends, Per Share, Cash Paid",
        "documentation": "Aggregate dividends paid during the period for each share of common stock outstanding."
       }
      }
     },
     "auth_ref": [
      "r142"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockMember",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock [Member]",
        "label": "Common Stock [Member]",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r1085",
      "r1086",
      "r1087",
      "r1089",
      "r1090",
      "r1091",
      "r1092",
      "r1252",
      "r1253",
      "r1256",
      "r1372",
      "r1438",
      "r1440"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock par value, in dollars per share",
        "label": "Common Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r98"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares authorized (in shares)",
        "label": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r906"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares issued (in shares)",
        "periodStartLabel": "Beginning Balance, shares (in shares)",
        "periodEndLabel": "Balance, shares (in shares)",
        "label": "Common Stock, Shares, Issued",
        "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."
       }
      }
     },
     "auth_ref": [
      "r98"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares outstanding (in shares)",
        "label": "Common Stock, Shares, Outstanding",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r98",
      "r906",
      "r925",
      "r1440",
      "r1441"
     ]
    },
    "us-gaap_CommonStockValueOutstanding": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CommonStockValueOutstanding",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, $0.002 par value \u2013 Authorized: 300,000 shares in 2024 and 2023, respectively, issued and outstanding: 170,434 and 171,599 shares in 2024 and 2023, respectively",
        "label": "Common Stock, Value, Outstanding",
        "documentation": "Value of common shares held by shareholders. Excludes common shares repurchased and held as treasury shares."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r906"
     ]
    },
    "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Company Selected Measure",
        "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1162"
     ]
    },
    "ecd_CompActuallyPaidVsNetIncomeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsNetIncomeTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Net Income",
        "label": "Compensation Actually Paid vs. Net Income [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1161"
     ]
    },
    "ecd_CompActuallyPaidVsOtherMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsOtherMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Other Measure",
        "label": "Compensation Actually Paid vs. Other Measure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1163"
     ]
    },
    "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return",
        "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1160"
     ]
    },
    "cgnx_CompanyContributionsVestAtEndOfFourYears": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CompanyContributionsVestAtEndOfFourYears",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company contributions vest at end of four years",
        "label": "Company Contributions Vest At End Of Four Years",
        "documentation": "Company contributions vest at end of four years."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CompanyContributionsVestAtEndOfOneYear": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CompanyContributionsVestAtEndOfOneYear",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company contributions vest at end of one year",
        "label": "Company Contributions Vest At End Of One Year",
        "documentation": "Company Contributions Vest At End Of One Year"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CompanyContributionsVestAtEndOfThreeYears": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CompanyContributionsVestAtEndOfThreeYears",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company contributions vest at end of three years",
        "label": "Company Contributions Vest At End Of Three Years",
        "documentation": "Company contributions vest at end of three years."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CompanyContributionsVestAtEndOfTwoYear": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CompanyContributionsVestAtEndOfTwoYear",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company contributions vest at end of two years",
        "label": "Company Contributions Vest At End Of Two Year",
        "documentation": "Company contributions vest at end of two year."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retirement Benefits [Abstract]",
        "label": "Retirement Benefits [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CompletedTechnologiesAndOtherIntangibleAssetsMember",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Completed Technologies And Other Intangible Assets [Member]",
        "label": "Completed Technologies And Other Intangible Assets [Member]",
        "documentation": "Completed Technologies And Other Intangible Assets [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CompletedTechnologyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CompletedTechnologyMember",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Completed technologies",
        "label": "Completed Technology [Member]",
        "documentation": "Completed Technology [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Cash, Cash Equivalents and Investments",
        "label": "Components Of Cash Cash Equivalents And Investments Table [Table Text Block]",
        "documentation": "Components of cash cash equivalents and investments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ComprehensiveIncomeNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total comprehensive income",
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "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."
       }
      }
     },
     "auth_ref": [
      "r29",
      "r277",
      "r279",
      "r284",
      "r813",
      "r833",
      "r834"
     ]
    },
    "us-gaap_ComprehensiveIncomePolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ComprehensiveIncomePolicyPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Comprehensive Income",
        "label": "Comprehensive Income, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for comprehensive income."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_ComputerHardwareAndSoftwareMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ComputerHardwareAndSoftwareMember",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computer Hardware and Software [Member]",
        "label": "Computer Hardware And Software [Member]",
        "documentation": "Computer Hardware and Software Member."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark [Domain]",
        "label": "Concentration Risk Benchmark [Domain]",
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r41",
      "r87",
      "r88",
      "r373",
      "r984"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark [Axis]",
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r41",
      "r87",
      "r88",
      "r373",
      "r870",
      "r984"
     ]
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskByTypeAxis",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type [Axis]",
        "label": "Concentration Risk Type [Axis]",
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r41",
      "r87",
      "r88",
      "r373",
      "r984",
      "r1213"
     ]
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskLineItems",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Line Items]",
        "label": "Concentration Risk [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r984"
     ]
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskPercentage1",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Maximum percentage of revenue accountability",
        "label": "Concentration Risk, Percentage",
        "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."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r41",
      "r87",
      "r88",
      "r373"
     ]
    },
    "us-gaap_ConcentrationRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskTable",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Table]",
        "label": "Concentration Risk [Table]",
        "documentation": "Disclosure of information about concentration risk. Includes, but is not limited to, percentage of concentration risk and benchmark serving as denominator in calculation of percentage of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r39",
      "r40",
      "r41",
      "r42",
      "r87",
      "r159",
      "r984"
     ]
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConcentrationRiskTypeDomain",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type [Domain]",
        "label": "Concentration Risk Type [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r41",
      "r87",
      "r88",
      "r373",
      "r984"
     ]
    },
    "cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ConcentrationsOfRiskPolicyPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentrations of Risk",
        "label": "Concentrations Of Risk Policy [Policy Text Block]",
        "documentation": "Concentrations of Risk."
       }
      }
     },
     "auth_ref": []
    },
    "srt_ConsolidationItemsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ConsolidationItemsAxis",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consolidation Items [Axis]",
        "label": "Consolidation Items [Axis]",
        "documentation": "Information by components, eliminations, non-segment corporate-level activity and reconciling items used in consolidating a parent entity and its subsidiaries or its operating segments."
       }
      }
     },
     "auth_ref": [
      "r168",
      "r196",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r297",
      "r337",
      "r346",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r366",
      "r367",
      "r368",
      "r491",
      "r492",
      "r493",
      "r494",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r1023",
      "r1024",
      "r1227",
      "r1228",
      "r1317",
      "r1318"
     ]
    },
    "srt_ConsolidationItemsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ConsolidationItemsDomain",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Consolidation Items [Domain]",
        "label": "Consolidation Items [Domain]",
        "documentation": "Components, elimination, non-segment corporate-level activity and reconciling items used in consolidating a parent entity and its subsidiaries or its operating segments."
       }
      }
     },
     "auth_ref": [
      "r168",
      "r196",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r236",
      "r297",
      "r337",
      "r346",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r366",
      "r367",
      "r368",
      "r491",
      "r492",
      "r493",
      "r494",
      "r496",
      "r497",
      "r498",
      "r499",
      "r500",
      "r1023",
      "r1024",
      "r1227",
      "r1228",
      "r1317",
      "r1318"
     ]
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basis of Consolidation",
        "label": "Consolidation, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary."
       }
      }
     },
     "auth_ref": [
      "r71",
      "r1011"
     ]
    },
    "cgnx_ContractLiabilityForeignExchangeRateChanges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ContractLiabilityForeignExchangeRateChanges",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign exchange rate changes",
        "label": "Contract Liability Foreign Exchange Rate Changes",
        "documentation": "Contract Liability Foreign Exchange Rate Changes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with Customer, Liability",
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]",
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability."
       }
      }
     },
     "auth_ref": [
      "r1321"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ContractWithCustomerLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue and customer deposits",
        "periodStartLabel": "Beginning balance",
        "periodEndLabel": "End balance",
        "label": "Contract with Customer, Liability, Current",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r521",
      "r522",
      "r533"
     ]
    },
    "cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Recognition of revenue deferred in prior period",
        "label": "Contract with Customer, Liability, Current And Prior Period Revenue Recognized",
        "documentation": "Contract with Customer, Liability, Current And Prior Period Revenue Recognized"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ContractWithCustomerLiabilityPeriodIncreaseDecrease",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue and customer deposits",
        "label": "Contract With Customer, Liability, Period Increase (Decrease)",
        "documentation": "Contract With Customer, Liability, Period Increase (Decrease)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CorporateBondSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CorporateBondSecuritiesMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Corporate Bonds [Member]",
        "label": "Corporate Bond Securities [Member]",
        "documentation": "This category includes information about long-term debt securities that are issued by either a domestic or foreign corporate business entity with a date certain promise of repayment and a return to the holder for the time value of money (for example, variable or fixed interest, original issue discount)."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CorporateBondsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CorporateBondsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Corporate bonds",
        "label": "Corporate Bonds Fair Value Disclosure",
        "documentation": "Corporate bonds fair value disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of revenue",
        "label": "Cost of Goods and Services Sold",
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities."
       }
      }
     },
     "auth_ref": [
      "r112",
      "r113",
      "r774"
     ]
    },
    "us-gaap_CostOfGoodsAndServicesSoldDepreciationAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostOfGoodsAndServicesSoldDepreciationAndAmortization",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost, Depreciation and Amortization",
        "label": "Cost, Depreciation and Amortization",
        "documentation": "Amount of expense for allocation of cost of tangible and intangible assets over their useful lives directly used in production of good and rendering of service."
       }
      }
     },
     "auth_ref": [
      "r1238"
     ]
    },
    "us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Charges",
        "label": "Costs Associated with Exit or Disposal Activity or Restructuring [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for cost associated with exit or disposal activity or restructuring. Excludes entity newly acquired in business combination and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r135",
      "r136"
     ]
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cover [Abstract]",
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "srt_CurrencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "CurrencyAxis",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Currency [Axis]",
        "label": "Currency [Axis]",
        "documentation": "Information by currency."
       }
      }
     },
     "auth_ref": [
      "r1392"
     ]
    },
    "cgnx_CurrencytranslationadjustmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CurrencytranslationadjustmentAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign currency translation adjustments:",
        "label": "Currency translation adjustment [Abstract]",
        "documentation": "Currency translation adjustment [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentFederalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal",
        "label": "Current Federal Tax Expense (Benefit)",
        "documentation": "Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r1214",
      "r1244",
      "r1364"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current Fiscal Year End Date",
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentForeignTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Current Foreign Tax Expense (Benefit)",
        "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r1214",
      "r1244"
     ]
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Current income tax expense (benefit), Total",
        "label": "Current Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r637",
      "r1244"
     ]
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current:",
        "label": "Current Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State",
        "label": "Current State and Local Tax Expense (Benefit)",
        "documentation": "Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r1214",
      "r1244",
      "r1364"
     ]
    },
    "cgnx_Customer1Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "Customer1Member",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer 1 [Member]",
        "label": "Customer 1 [Member]",
        "documentation": "Customer 1"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_Customer2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "Customer2Member",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer 2 [Member]",
        "label": "Customer 2 [Member]",
        "documentation": "Customer 2"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CustomerConcentrationRiskMember",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Revenue from a single customer, percentage",
        "label": "Customer Concentration Risk [Member]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r130",
      "r373"
     ]
    },
    "cgnx_CustomerContractsAndRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CustomerContractsAndRelationshipsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Customer Relationships [Member]",
        "terseLabel": "Customer Contracts And Relationships [Member]",
        "label": "Customer Contracts And Relationships [Member]",
        "documentation": "Customer Contracts And Relationships [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CustomerContractsLiabilityCurrentRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "CustomerContractsLiabilityCurrentRollForward",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer Contracts Liability, Current",
        "label": "Customer Contracts Liability Current [Roll Forward]",
        "documentation": "Customer Contracts Liability Current [Roll Forward]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "CustomerRelationshipsMember",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer relationships",
        "label": "Customer Relationships [Member]",
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships."
       }
      }
     },
     "auth_ref": [
      "r70",
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1297",
      "r1299",
      "r1302",
      "r1303"
     ]
    },
    "cyd_CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Board Committee or Subcommittee Responsible for Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1108",
      "r1197"
     ]
    },
    "cyd_CybersecurityRiskBoardOfDirectorsOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskBoardOfDirectorsOversightTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Board of Directors Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1108",
      "r1197"
     ]
    },
    "cyd_CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Expertise of Management Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1110",
      "r1199"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1110",
      "r1199"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible Report to Board [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1112",
      "r1201"
     ]
    },
    "cyd_CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Positions or Committees Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1110",
      "r1199"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes for Assessing, Identifying, and Managing Threats [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1103",
      "r1192"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesIntegratedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesIntegratedFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes Integrated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1104",
      "r1193"
     ]
    },
    "cyd_CybersecurityRiskManagementProcessesIntegratedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementProcessesIntegratedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Processes Integrated [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1104",
      "r1193"
     ]
    },
    "cyd_CybersecurityRiskManagementStrategyAndGovernanceAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementStrategyAndGovernanceAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management, Strategy, and Governance [Abstract]"
       }
      }
     },
     "auth_ref": [
      "r1102",
      "r1191"
     ]
    },
    "cyd_CybersecurityRiskManagementStrategyAndGovernanceLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementStrategyAndGovernanceLineItems",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management, Strategy, and Governance [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1102",
      "r1191"
     ]
    },
    "cyd_CybersecurityRiskManagementStrategyAndGovernanceTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementStrategyAndGovernanceTable",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management, Strategy, and Governance [Table]"
       }
      }
     },
     "auth_ref": [
      "r1102",
      "r1191"
     ]
    },
    "cyd_CybersecurityRiskManagementThirdPartyEngagedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskManagementThirdPartyEngagedFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Management Third Party Engaged [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1105",
      "r1194"
     ]
    },
    "cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1107",
      "r1196"
     ]
    },
    "cyd_CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Materially Affected or Reasonably Likely to Materially Affect Registrant [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1107",
      "r1196"
     ]
    },
    "cyd_CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Process for Informing Board Committee or Subcommittee Responsible for Oversight [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1108",
      "r1197"
     ]
    },
    "cyd_CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Process for Informing Management or Committees Responsible [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1111",
      "r1200"
     ]
    },
    "cyd_CybersecurityRiskRoleOfManagementTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskRoleOfManagementTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Role of Management [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1109",
      "r1198"
     ]
    },
    "cyd_CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/cyd/2024",
     "localname": "CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag",
     "presentation": [
      "http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Cybersecurity Risk Third Party Oversight and Identification Processes [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1106",
      "r1195"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLoss",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for credit loss",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss",
        "documentation": "Amount of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r381",
      "r425",
      "r432",
      "r433"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current investment, allowance for credit loss",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss, Current",
        "documentation": "Amount of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current."
       }
      }
     },
     "auth_ref": [
      "r425"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current investments, allowance for credit losses",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss, Noncurrent",
        "documentation": "Amount of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r425"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleAmortizedCostCurrent",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current investments, amortized cost",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost, Current",
        "documentation": "Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current."
       }
      }
     },
     "auth_ref": [
      "r425",
      "r1269"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current investments, amortized cost",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost, Noncurrent",
        "documentation": "Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r425",
      "r1269"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Greater than 12 Months",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for more than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r178",
      "r429",
      "r1029"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Unrealized Losses, Greater than 12 Months",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for 12 months or longer, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r178",
      "r429"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Less than 12 months",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r178",
      "r429",
      "r1029"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Unrealized Losses, Less than 12 months",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r178",
      "r429"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleRealizedGain": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleRealizedGain",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross realized gains",
        "label": "Debt Securities, Available-for-Sale, Realized Gain",
        "documentation": "Amount of realized gain on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r408"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleRealizedLoss",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross realized losses",
        "label": "Debt Securities, Available-for-Sale, Realized Loss",
        "documentation": "Amount of realized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r408"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Fair Value",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position without allowance for credit loss."
       }
      }
     },
     "auth_ref": [
      "r176",
      "r427",
      "r1029"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTotalLabel": "Unrealized Losses",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position, Accumulated Loss",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r177",
      "r428"
     ]
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal",
        "label": "Deferred Federal Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r1244",
      "r1363",
      "r1364"
     ]
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredForeignIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Deferred Foreign Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r1244",
      "r1363"
     ]
    },
    "cgnx_DeferredIncomeTaxAssetsLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DeferredIncomeTaxAssetsLiabilitiesNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred income taxes",
        "label": "Deferred income tax assets (liabilities), net",
        "documentation": "Deferred income tax assets (liabilities), net"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred income taxes",
        "label": "Deferred Income Tax Assets, Net",
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r606",
      "r607"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred income tax expense (benefit), Total",
        "label": "Deferred Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r192",
      "r1244"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred:",
        "label": "Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred income taxes",
        "label": "Deferred Income Tax Liabilities, Net",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r606",
      "r607",
      "r820"
     ]
    },
    "us-gaap_DeferredRevenueRefundPayments1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredRevenueRefundPayments1",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Deferred Revenue, Refund Payments",
        "label": "Deferred Revenue, Refund Payments",
        "documentation": "Amount of cash outflow to customers for refund payments of revenue that was previously reported as deferred or unearned revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State",
        "label": "Deferred State and Local Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r1244",
      "r1363",
      "r1364"
     ]
    },
    "us-gaap_DeferredTaxAssetDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetDomain",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Tax Asset [Domain]",
        "label": "Deferred Tax Asset [Domain]",
        "documentation": "Identification of the deferred tax asset for which a valuation reserve exists."
       }
      }
     },
     "auth_ref": [
      "r1359"
     ]
    },
    "cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capitalization of R&amp;D expenses",
        "label": "Deferred Tax Assets, Capitalization Of Research And Development Expenses",
        "documentation": "Deferred Tax Assets, Capitalization Of Research And Development Expenses"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_DeferredTaxAssetsForeignTaxStructureChange": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DeferredTaxAssetsForeignTaxStructureChange",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign tax structure deferred tax asset",
        "label": "Deferred Tax Assets, Foreign Tax Structure Change",
        "documentation": "Deferred Tax Assets, Foreign Tax Structure Change"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsGrossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsGrossAbstract",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax assets:",
        "label": "Deferred Tax Assets, Gross [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible asset in connection with change in tax structure",
        "label": "Deferred Tax Assets, Intangible Asset, Change in Tax Structure",
        "documentation": "Deferred Tax Assets, Intangible Asset, Change in Tax Structure"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsInventory",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory and revenue related",
        "label": "Deferred Tax Assets, Inventory",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory."
       }
      }
     },
     "auth_ref": [
      "r1361"
     ]
    },
    "us-gaap_DeferredTaxAssetsLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsLiabilitiesNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredIncomeTaxAssetsLiabilitiesNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred Tax Assets, Net, Noncurrent",
        "label": "Deferred Tax Assets, Net",
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r1358"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax credit carryforwards",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Domestic",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r1361"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsForeign",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign net operating losses",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Foreign",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r1361"
     ]
    },
    "cgnx_DeferredTaxAssetsOtherNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DeferredTaxAssetsOtherNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Deferred Tax Assets Other Noncurrent",
        "documentation": "Deferred tax assets other non current."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsForeign",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Tax Assets, Tax Credit Carryforwards, Foreign",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards, Foreign",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign tax credit carryforwards."
       }
      }
     },
     "auth_ref": [
      "r1361"
     ]
    },
    "cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsState",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Tax Assets, Tax Credit Carryforwards, State",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards, State",
        "documentation": "Deferred Tax Assets, Tax Credit Carryforwards, State"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bonuses, commissions, and other compensation",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Other",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences from compensation and benefits, classified as other."
       }
      }
     },
     "auth_ref": [
      "r1361"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation expense",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-Based Compensation Cost",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation."
       }
      }
     },
     "auth_ref": [
      "r1361"
     ]
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxAssetsValuationAllowance",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax assets, valuation allowance",
        "negatedTerseLabel": "Valuation allowance",
        "label": "Deferred Tax Assets, Valuation Allowance",
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized."
       }
      }
     },
     "auth_ref": [
      "r630"
     ]
    },
    "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DeferredTaxAssetsWithJurisdictionalNettingGross",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total deferred tax assets",
        "label": "Deferred Tax Assets, With Jurisdictional Netting, Gross",
        "documentation": "Deferred Tax Assets, With Jurisdictional Netting, Gross"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTotalLabel": "Deferred Tax Liabilities, Net",
        "label": "Deferred Tax Liabilities, Net",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r1358"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilitiesAbstract",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax liabilities:",
        "label": "Deferred Tax Liabilities, Gross [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_DeferredTaxLiabilitiesAmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DeferredTaxLiabilitiesAmortizationOfIntangibleAssets",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Non deductible federal and state liabilities",
        "label": "Deferred Tax Liabilities, Amortization Of Intangible Assets",
        "documentation": "Deferred Tax Liabilities, Amortization Of Intangible Assets"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "GILTI tax basis differences in connection with change in tax structure",
        "label": "Deferred Tax Liabilities, Property, Plant and Equipment",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment."
       }
      }
     },
     "auth_ref": [
      "r1361"
     ]
    },
    "cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "GILTI tax basis differences",
        "negatedTerseLabel": "Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income",
        "label": "Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income",
        "documentation": "Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxLiabilitiesUndistributedForeignEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DeferredTaxLiabilitiesUndistributedForeignEarnings",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails",
      "http://cognex.com/role/RevenueRecognitionNarrativesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Deferred Tax Liabilities, Undistributed Foreign Earnings",
        "terseLabel": "Deferred Tax Liabilities, Undistributed Foreign Earnings",
        "label": "Deferred Tax Liabilities, Undistributed Foreign Earnings",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from undistributed earnings of subsidiary and other recognized entity not within country of domicile. Includes, but is not limited to, other basis differences."
       }
      }
     },
     "auth_ref": [
      "r1361"
     ]
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DefinedContributionPlanCostRecognized",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company contributions to employee savings plan",
        "label": "Defined Contribution Plan, Cost",
        "documentation": "Amount of cost for defined contribution plan."
       }
      }
     },
     "auth_ref": [
      "r552"
     ]
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercent",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Percent of employee contribution",
        "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay",
        "documentation": "Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercentOfMatch",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company match percent",
        "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Match",
        "documentation": "Percentage employer matches of the employee's percentage contribution matched."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum contribution by company expressed as percentage of employee pre-tax salary",
        "label": "Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent",
        "documentation": "Maximum percentage of employee gross pay the employee may contribute to a defined contribution plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Depreciation",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation of property, plant, and equipment",
        "label": "Depreciation",
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r50"
     ]
    },
    "us-gaap_DepreciationDepletionAndAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DepreciationDepletionAndAmortization",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails": {
       "parentTag": "us-gaap_ResearchAndDevelopmentExpense",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation, Depletion and Amortization",
        "label": "Depreciation, Depletion and Amortization",
        "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."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r337",
      "r349",
      "r366",
      "r1023",
      "r1024"
     ]
    },
    "us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeAssetCollateralObligationToReturnCashOffset",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": "us-gaap_DerivativeAssets",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Derivative Asset gross amount offset",
        "label": "Derivative Asset, Subject to Master Netting Arrangement, Collateral, Obligation to Return Cash, Offset Against Derivative Asset",
        "documentation": "Amount of obligation to return cash collateral under master netting arrangements offset against derivative assets."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r22"
     ]
    },
    "us-gaap_DerivativeAssetNotionalAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeAssetNotionalAmount",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Asset, Notional Amount",
        "label": "Derivative Asset, Notional Amount",
        "documentation": "Nominal or face amount used to calculate payments on the derivative asset."
       }
      }
     },
     "auth_ref": [
      "r962",
      "r965",
      "r968",
      "r971",
      "r1368",
      "r1369",
      "r1370"
     ]
    },
    "us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Asset, Statement of Financial Position [Extensible Enumeration]",
        "label": "Derivative Asset, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes derivative asset."
       }
      }
     },
     "auth_ref": [
      "r662"
     ]
    },
    "us-gaap_DerivativeAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeAssets",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net amount of assets presented",
        "totalLabel": "Net amount of assets presented",
        "label": "Derivative Asset",
        "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset."
       }
      }
     },
     "auth_ref": [
      "r265",
      "r267",
      "r679",
      "r680",
      "r690",
      "r700",
      "r885",
      "r886",
      "r887",
      "r889",
      "r890",
      "r892",
      "r893",
      "r894",
      "r896",
      "r897",
      "r912",
      "r913",
      "r962",
      "r966",
      "r969",
      "r970",
      "r972",
      "r973",
      "r1010",
      "r1054",
      "r1058",
      "r1087",
      "r1376",
      "r1377",
      "r1378",
      "r1439"
     ]
    },
    "us-gaap_DerivativeContractTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeContractTypeDomain",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Contract [Domain]",
        "label": "Derivative Contract [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r894",
      "r897",
      "r911",
      "r912",
      "r913",
      "r915",
      "r916",
      "r917",
      "r918",
      "r920",
      "r921",
      "r922",
      "r923",
      "r933",
      "r934",
      "r935",
      "r936",
      "r939",
      "r940",
      "r941",
      "r942",
      "r962",
      "r963",
      "r969",
      "r972",
      "r1085",
      "r1087",
      "r1379",
      "r1380",
      "r1381",
      "r1382",
      "r1383",
      "r1384",
      "r1386",
      "r1387"
     ]
    },
    "us-gaap_DerivativeFairValueOfDerivativeAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeFairValueOfDerivativeAsset",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": "us-gaap_DerivativeAssets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Asset, Fair Value, Gross Asset",
        "label": "Derivative Asset, Subject to Master Netting Arrangement, before Offset",
        "documentation": "Fair value, before effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets elected not to be offset. Excludes assets not subject to a master netting arrangement."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r108",
      "r156",
      "r157",
      "r264",
      "r1010"
     ]
    },
    "us-gaap_DerivativeFairValueOfDerivativeLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeFairValueOfDerivativeLiability",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": "us-gaap_DerivativeLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Liability, Fair Value, Gross Liability",
        "label": "Derivative Liability, Subject to Master Netting Arrangement, before Offset",
        "documentation": "Fair value, before effects of master netting arrangements, of a financial liability 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. Includes liabilities elected not to be offset. Excludes liabilities not subject to a master netting arrangement."
       }
      }
     },
     "auth_ref": [
      "r23",
      "r108",
      "r156",
      "r157",
      "r264",
      "r1010"
     ]
    },
    "us-gaap_DerivativeGainLossOnDerivativeNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeGainLossOnDerivativeNet",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gains (losses) recognized in net income",
        "label": "Derivative, Gain (Loss) on Derivative, Net",
        "documentation": "Amount of increase (decrease) in the fair value of derivatives recognized in the income statement."
       }
      }
     },
     "auth_ref": [
      "r1371"
     ]
    },
    "us-gaap_DerivativeInstrumentRiskAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeInstrumentRiskAxis",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instrument [Axis]",
        "label": "Derivative Instrument [Axis]",
        "documentation": "Information by type of derivative contract."
       }
      }
     },
     "auth_ref": [
      "r78",
      "r80",
      "r81",
      "r158",
      "r894",
      "r897",
      "r911",
      "r912",
      "r913",
      "r915",
      "r916",
      "r917",
      "r918",
      "r920",
      "r921",
      "r922",
      "r923",
      "r933",
      "r934",
      "r935",
      "r936",
      "r939",
      "r940",
      "r941",
      "r942",
      "r962",
      "r963",
      "r969",
      "r972",
      "r1010",
      "r1085",
      "r1087",
      "r1379",
      "r1380",
      "r1381",
      "r1382",
      "r1383",
      "r1384",
      "r1386",
      "r1387"
     ]
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments and Hedging Activities Disclosure [Abstract]",
        "label": "Derivative Instruments and Hedging Activities Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/DerivativeInstruments"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments",
        "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]",
        "documentation": "The entire disclosure for derivative instruments and hedging activities including, but not limited to, risk management strategies, non-hedging derivative instruments, assets, liabilities, revenue and expenses, and methodologies and assumptions used in determining the amounts."
       }
      }
     },
     "auth_ref": [
      "r155",
      "r664",
      "r672"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments, Gain (Loss) [Table]",
        "label": "Derivative Instruments, Gain (Loss) [Table]",
        "documentation": "Disclosure of information about the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r78",
      "r80",
      "r81",
      "r85",
      "r86",
      "r663"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeInstrumentsGainLossLineItems",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments, Gain (Loss) [Line Items]",
        "label": "Derivative Instruments, Gain (Loss) [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r663"
     ]
    },
    "us-gaap_DerivativeLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net amount of liabilities presented",
        "totalLabel": "Net amount of liabilities presented",
        "label": "Derivative Liability",
        "documentation": "Fair value, after the effects of master netting arrangements, of a financial liability 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. Includes liabilities not subject to a master netting arrangement and not elected to be offset."
       }
      }
     },
     "auth_ref": [
      "r265",
      "r267",
      "r679",
      "r680",
      "r690",
      "r700",
      "r885",
      "r886",
      "r887",
      "r889",
      "r892",
      "r893",
      "r894",
      "r896",
      "r897",
      "r920",
      "r922",
      "r923",
      "r963",
      "r964",
      "r966",
      "r969",
      "r970",
      "r972",
      "r973",
      "r1010",
      "r1376",
      "r1377",
      "r1378",
      "r1439"
     ]
    },
    "us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeLiabilityCollateralRightToReclaimCashOffset",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": "us-gaap_DerivativeLiabilities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Derivative liability gross amount offset",
        "label": "Derivative Liability, Subject to Master Netting Arrangement, Collateral, Right to Reclaim Cash Offset",
        "documentation": "Amount of right to receive cash collateral under master netting arrangements offset against derivative liabilities."
       }
      }
     },
     "auth_ref": [
      "r12",
      "r22"
     ]
    },
    "us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Liability, Statement of Financial Position [Extensible Enumeration]",
        "label": "Derivative Liability, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes derivative liability."
       }
      }
     },
     "auth_ref": [
      "r662"
     ]
    },
    "us-gaap_DerivativeLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeLineItems",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative [Line Items]",
        "label": "Derivative [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r672"
     ]
    },
    "us-gaap_DerivativeNotionalAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeNotionalAmount",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative, notional amount",
        "label": "Derivative, Notional Amount",
        "documentation": "Nominal or face amount used to calculate payment on derivative."
       }
      }
     },
     "auth_ref": [
      "r1369",
      "r1370"
     ]
    },
    "us-gaap_DerivativeTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativeTable",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative [Table]",
        "label": "Derivative [Table]",
        "documentation": "Disclosure of information about derivative instrument or group of derivative instruments, including, but not limited to, type of derivative instrument, risk being hedged, notional amount, hedge designation, related hedged item, inception date, and maturity date."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r72",
      "r73",
      "r75",
      "r76",
      "r79",
      "r80",
      "r82",
      "r84",
      "r86",
      "r672"
     ]
    },
    "us-gaap_DerivativesFairValueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativesFairValueLineItems",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivatives, Fair Value [Line Items]",
        "label": "Derivatives, Fair Value [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DerivativesPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments",
        "label": "Derivatives, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for its derivative instruments and hedging activities."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r72",
      "r73",
      "r76",
      "r83",
      "r296",
      "r321"
     ]
    },
    "us-gaap_DevelopedTechnologyRightsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DevelopedTechnologyRightsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Completed Technologies [Member]",
        "label": "Developed Technology Rights [Member]",
        "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property."
       }
      }
     },
     "auth_ref": [
      "r153",
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1297",
      "r1299",
      "r1302",
      "r1303"
     ]
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue [Line Items]",
        "label": "Disaggregation of Revenue [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r532",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue [Table]",
        "label": "Disaggregation of Revenue [Table]",
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r532",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1041"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue",
        "label": "Disaggregation of Revenue [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1322"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-Based Compensation",
        "label": "Share-Based Payment Arrangement [Text Block]",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r555",
      "r559",
      "r590",
      "r591",
      "r593",
      "r1048"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disclosure of Compensation Related Costs, Share-based Payments [Abstract]",
        "label": "Share-Based Payment Arrangement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_DistributionNetworksAndCustomerRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DistributionNetworksAndCustomerRelationshipsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Distribution Networks and Customer Relationships",
        "label": "Distribution Networks and Customer Relationships [Member]",
        "documentation": "Distribution Networks and Customer Relationships"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DistributionRightsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DistributionRightsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Distribution Rights [Member]",
        "terseLabel": "Distribution Networks [Member]",
        "label": "Distribution Rights [Member]",
        "documentation": "Legal rights, generally of a limited duration, to distribute a product or products, often within specific geographic areas or supply channels."
       }
      }
     },
     "auth_ref": [
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1297",
      "r1299",
      "r1302",
      "r1303"
     ]
    },
    "us-gaap_DividendsCommonStockCash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DividendsCommonStockCash",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Payment of dividends ($0.305 per common share)",
        "label": "Dividends, Common Stock, Cash",
        "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash."
       }
      }
     },
     "auth_ref": [
      "r142"
     ]
    },
    "us-gaap_DividendsPayableAmountPerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DividendsPayableAmountPerShare",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dividends Payable, Amount Per Share",
        "label": "Dividends Payable, Amount Per Share",
        "documentation": "The per share amount of a dividend declared, but not paid, as of the financial reporting date."
       }
      }
     },
     "auth_ref": [
      "r35"
     ]
    },
    "us-gaap_DividendsPayableDateDeclaredDayMonthAndYear": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DividendsPayableDateDeclaredDayMonthAndYear",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dividends Payable, Date Declared",
        "label": "Dividends Payable, Date Declared",
        "documentation": "Date the dividend to be paid was declared, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r35"
     ]
    },
    "us-gaap_DividendsPayableDateOfRecordDayMonthAndYear": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DividendsPayableDateOfRecordDayMonthAndYear",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dividends Payable, Date of Record",
        "label": "Dividends Payable, Date of Record",
        "documentation": "Date the holder must own the stock to be entitled to the dividend, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentAnnualReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentAnnualReport",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Annual Report",
        "label": "Document Annual Report",
        "documentation": "Boolean flag that is true only for a form used as an annual report."
       }
      }
     },
     "auth_ref": [
      "r1099",
      "r1100",
      "r1123"
     ]
    },
    "dei_DocumentFinStmtErrorCorrectionFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFinStmtErrorCorrectionFlag",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Financial Statement Error Correction [Flag]",
        "label": "Document Financial Statement Error Correction [Flag]",
        "documentation": "Indicates whether any of the financial statement period in the filing include a restatement due to error correction."
       }
      }
     },
     "auth_ref": [
      "r1099",
      "r1100",
      "r1123",
      "r1166"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Period Focus",
        "label": "Document Fiscal Period Focus",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Year Focus",
        "label": "Document Fiscal Year Focus",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Period End Date",
        "label": "Document Period End Date",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Transition Report",
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r1144"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentType",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Type",
        "label": "Document Type",
        "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'."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DomesticCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "DomesticCountryMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Domestic Tax Jurisdiction [Member]",
        "label": "Domestic Tax Jurisdiction [Member]",
        "documentation": "Designated federal jurisdiction entitled to levy and collect income tax in country of domicile. Includes, but is not limited to, national jurisdiction for non-U.S. jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r610"
     ]
    },
    "cgnx_DueFromForeignBanks": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "DueFromForeignBanks",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash balance included foreign bank balance",
        "label": "Due From Foreign Banks",
        "documentation": "Due from foreign banks."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "DvddsOrOthrErngsPdOnEqtyAwrdsNtOthrwsRflctdInTtlCompForCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year",
        "label": "Dividends or Other Earnings Paid on Equity Awards not Otherwise Reflected in Total Compensation for Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r1155"
     ]
    },
    "currency_EUR": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2024",
     "localname": "EUR",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Euro [Member]",
        "label": "Euro Member Countries, Euro"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings Per Share [Abstract]",
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income (in dollars per share)",
        "label": "Earnings Per Share, Basic",
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r285",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r325",
      "r327",
      "r329",
      "r330",
      "r331",
      "r336",
      "r651",
      "r657",
      "r676",
      "r677",
      "r814",
      "r835",
      "r1016"
     ]
    },
    "us-gaap_EarningsPerShareBasicAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareBasicAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Income per weighted-average common and common-equivalent share:",
        "label": "Earnings Per Share, Basic [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income (in dollars per share)",
        "label": "Earnings Per Share, Diluted",
        "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."
       }
      }
     },
     "auth_ref": [
      "r285",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r318",
      "r327",
      "r329",
      "r330",
      "r331",
      "r336",
      "r651",
      "r657",
      "r676",
      "r677",
      "r814",
      "r835",
      "r1016"
     ]
    },
    "us-gaap_EarningsPerShareDilutedAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareDilutedAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Diluted earnings per weighted-average common and common-equivalent share (1):",
        "label": "Earnings Per Share, Diluted [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerSharePolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Income Per Share",
        "label": "Earnings Per Share, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r38",
      "r333"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://cognex.com/role/WeightedAverageShares"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Shares",
        "label": "Earnings Per Share [Text Block]",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r324",
      "r332",
      "r334",
      "r335"
     ]
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effect of foreign exchange rate changes on cash and cash equivalents",
        "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations",
        "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. Excludes amounts for 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."
       }
      }
     },
     "auth_ref": [
      "r708"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income tax expense",
        "label": "Effective Income Tax Rate Reconciliation, Percent",
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r610",
      "r1052"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax expense at U.S. federal statutory corporate tax rate",
        "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent",
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)."
       }
      }
     },
     "auth_ref": [
      "r295",
      "r610",
      "r640",
      "r1052"
     ]
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "EffectiveIncomeTaxRateReconciliationAuditSettlementPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Effective Income Tax Rate Reconciliation, Audit Settlement, Percent",
        "label": "Effective Income Tax Rate Reconciliation, Audit Settlement, Percent",
        "documentation": "Effective Income Tax Rate Reconciliation, Audit Settlement, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax benefit for release of valuation allowance",
        "label": "Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent",
        "documentation": "Percentage 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 changes in the valuation allowance for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r616",
      "r1052",
      "r1245",
      "r1353"
     ]
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Limitation on deduction for executive compensation",
        "label": "Effective Income Tax Rate Reconciliation, Executive Compensation, Percent",
        "documentation": "Effective Income Tax Rate Reconciliation, Executive Compensation, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign tax rate differential",
        "negatedTerseLabel": "Foreign tax rate differential",
        "label": "Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent",
        "documentation": "Percentage 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 applicable to statutory income tax expense (benefit) outside of the country of domicile."
       }
      }
     },
     "auth_ref": [
      "r611",
      "r614",
      "r1052",
      "r1245",
      "r1353"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationGiltiPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax benefit related to GILTI adjustments",
        "label": "Effective Income Tax Rate Reconciliation, GILTI, Percent",
        "documentation": "Percentage of reported income tax expense from difference to expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operations, attributable to global intangible low-taxed income (GILTI)."
       }
      }
     },
     "auth_ref": [
      "r1052",
      "r1353",
      "r1355"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationOtherAdjustments",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Effective Income Tax Rate Reconciliation, Other Adjustments, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments."
       }
      }
     },
     "auth_ref": [
      "r1052",
      "r1245",
      "r1353",
      "r1354"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax expense related to employee stock-based compensation",
        "label": "Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Percent",
        "documentation": "Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1211",
      "r1353",
      "r1354"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State income taxes, net of federal benefit",
        "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent",
        "documentation": "Percentage 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 applicable to state and local income tax expense (benefit), net of federal tax expense (benefit)."
       }
      }
     },
     "auth_ref": [
      "r613",
      "r1052",
      "r1245",
      "r1353"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxCredits",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Tax credits",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Percent",
        "documentation": "Percentage 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."
       }
      }
     },
     "auth_ref": [
      "r615",
      "r617",
      "r1245",
      "r1353"
     ]
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent": {
     "xbrltype": "pureItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxReservesPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax reserves",
        "label": "Effective Income Tax Rate Reconciliation, Tax Reserves, Percent",
        "documentation": "Effective Income Tax Rate Reconciliation, Tax Reserves, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxSettlements",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax expense related to tax return filings",
        "label": "Effective Income Tax Rate Reconciliation, Tax Settlement, Percent",
        "documentation": "Percentage 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 income tax settlements. Including, but not limited to, domestic tax settlement, foreign tax settlement, state and local tax settlement, and other tax settlements."
       }
      }
     },
     "auth_ref": [
      "r1245",
      "r1353",
      "r1354"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax expense related to rate revaluation on state tax assets",
        "label": "Effective Income Tax Rate Reconciliation, Tax Settlement, State and Local, Percent",
        "documentation": "Percentage 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 settlement."
       }
      }
     },
     "auth_ref": [
      "r1245",
      "r1353",
      "r1354"
     ]
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent": {
     "xbrltype": "pureItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Taxation on multinational operations",
        "label": "Effective Income Tax Rate Reconciliation, Taxation on Multinational Operations, Percent",
        "documentation": "Effective Income Tax Rate Reconciliation, Taxation on Multinational Operations, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recognition period for unrecognized compensation expense",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "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."
       }
      }
     },
     "auth_ref": [
      "r592"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total unrecognized compensation expense related to non-vested stock options",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost to be recognized for option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1350"
     ]
    },
    "cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation expense capitalized",
        "label": "Employee Service Share Based Compensation Recognized Period Costs Capitalized Amount",
        "documentation": "Employee service share based compensation recognized period costs capitalized amount."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax benefit recognized related to stock-based compensation expense",
        "label": "Share-Based Payment Arrangement, Expense, Tax Benefit",
        "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r589"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-Based Payment Arrangement, Exercise of Option, Tax Benefit",
        "label": "Share-Based Payment Arrangement, Exercise of Option, Tax Benefit",
        "documentation": "Amount of tax benefit from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r189"
     ]
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Stock Option [Member]",
        "verboseLabel": "Stock Compensation Plan [Member]",
        "label": "Share-Based Payment Arrangement, Option [Member]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line One",
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, City or Town",
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Postal Zip Code",
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, State or Province",
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Central Index Key",
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Common Stock, Shares Outstanding",
        "label": "Entity Common Stock, Shares Outstanding",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Current Reporting Status",
        "label": "Entity Current Reporting Status",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Small Business",
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity File Number",
        "label": "Entity File Number",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Filer Category",
        "label": "Entity Filer Category",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Incorporation, State or Country Code",
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Interactive Data Current",
        "label": "Entity Interactive Data Current",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r1206"
     ]
    },
    "dei_EntityPublicFloat": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityPublicFloat",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Public Float",
        "label": "Entity Public Float",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Registrant Name",
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Shell Company",
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Small Business",
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Tax Identification Number",
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r1097"
     ]
    },
    "dei_EntityVoluntaryFilers": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityVoluntaryFilers",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Voluntary Filers",
        "label": "Entity Voluntary Filers",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityWellKnownSeasonedIssuer",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Well-known Seasoned Issuer",
        "label": "Entity Well-known Seasoned Issuer",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1207"
     ]
    },
    "ecd_EqtyAwrdsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Awards Adjustments, Footnote",
        "label": "Equity Awards Adjustments, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1149"
     ]
    },
    "ecd_EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjsExclgValRprtdInSummryCompstnTblMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Awards Adjustments, Excluding Value Reported in Compensation Table",
        "label": "Equity Awards Adjustments, Excluding Value Reported in the Compensation Table [Member]"
       }
      }
     },
     "auth_ref": [
      "r1202"
     ]
    },
    "ecd_EqtyAwrdsAdjsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsAdjsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Awards Adjustments",
        "label": "Equity Awards Adjustments [Member]"
       }
      }
     },
     "auth_ref": [
      "r1202"
     ]
    },
    "ecd_EqtyAwrdsInSummryCompstnTblForAplblYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EqtyAwrdsInSummryCompstnTblForAplblYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table",
        "label": "Aggregate Grant Date Fair Value of Equity Award Amounts Reported in Summary Compensation Table [Member]"
       }
      }
     },
     "auth_ref": [
      "r1202"
     ]
    },
    "us-gaap_EquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquipmentMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Manufacturing Test Equipment [Member]",
        "label": "Equipment [Member]",
        "documentation": "Tangible personal property used to produce goods and services."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity [Abstract]",
        "label": "Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Component [Domain]",
        "label": "Equity Component [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r241",
      "r281",
      "r282",
      "r283",
      "r304",
      "r305",
      "r306",
      "r310",
      "r317",
      "r319",
      "r321",
      "r338",
      "r411",
      "r414",
      "r469",
      "r520",
      "r638",
      "r639",
      "r646",
      "r647",
      "r648",
      "r652",
      "r656",
      "r657",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669",
      "r671",
      "r675",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r715",
      "r717",
      "r719",
      "r731",
      "r831",
      "r861",
      "r862",
      "r863",
      "r882",
      "r946"
     ]
    },
    "ecd_EquityValuationAssumptionDifferenceFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "EquityValuationAssumptionDifferenceFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Valuation Assumption Difference, Footnote",
        "label": "Equity Valuation Assumption Difference, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1159"
     ]
    },
    "ecd_ErrCompAnalysisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ErrCompAnalysisTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Erroneous Compensation Analysis",
        "label": "Erroneous Compensation Analysis [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1116",
      "r1127",
      "r1137",
      "r1170"
     ]
    },
    "ecd_ErrCompRecoveryTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ErrCompRecoveryTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Erroneously Awarded Compensation Recovery",
        "label": "Erroneously Awarded Compensation Recovery [Table]"
       }
      }
     },
     "auth_ref": [
      "r1113",
      "r1124",
      "r1134",
      "r1167"
     ]
    },
    "cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated forfeiture rate for unvested options for all non-senior management",
        "label": "Estimated Forfeiture Rate For Unvested Options For All Non Senior Management",
        "documentation": "Estimated forfeiture rate for unvested options for all non-senior management."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO": {
     "xbrltype": "pureItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "EstimatedForfeitureRateForUnvestedOptionsForCEO",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated Forfeiture Rate for Unvested Options for CEO",
        "label": "Estimated Forfeiture Rate for Unvested Options for CEO",
        "documentation": "Estimated Forfeiture Rate for Unvested Options for CEO"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated forfeiture rate for unvested options for senior management",
        "label": "Estimated Forfeiture Rate For Unvested Options For Senior Management",
        "documentation": "Estimated forfeiture rate for unvested options for senior management."
       }
      }
     },
     "auth_ref": []
    },
    "srt_EuropeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "EuropeMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Europe [Member]",
        "verboseLabel": "Europe [Member]",
        "label": "Europe [Member]",
        "documentation": "Continent of Europe."
       }
      }
     },
     "auth_ref": [
      "r1223",
      "r1224",
      "r1225",
      "r1226",
      "r1443",
      "r1444",
      "r1445",
      "r1446"
     ]
    },
    "cgnx_ExcessAndObsoleteInventoryCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ExcessAndObsoleteInventoryCharges",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Excess and obsolete inventory charges",
        "label": "Excess and Obsolete Inventory Charges",
        "documentation": "Excess and Obsolete Inventory Charges"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ExecutiveCategoryAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ExecutiveCategoryAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Executive Category:",
        "label": "Executive Category [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1165"
     ]
    },
    "cgnx_ExpirationPeriodOfStockOptionPlan": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ExpirationPeriodOfStockOptionPlan",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expiration period of stock option plan",
        "label": "Expiration Period Of Stock Option Plan",
        "documentation": "Expiration period of stock option plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ExtraordinaryAndUnusualItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ExtraordinaryAndUnusualItemsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Unusual or Infrequent Items, or Both [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_FairValueAdjustmentOnAcquiredInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "FairValueAdjustmentOnAcquiredInventories",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 20.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value adjustment on acquired inventories (Note 21)",
        "label": "Fair Value Adjustment on Acquired Inventories",
        "documentation": "Fair Value Adjustment on Acquired Inventories"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r679",
      "r680",
      "r690",
      "r1054"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements, Recurring and Nonrecurring [Table]",
        "label": "Fair Value, Recurring and Nonrecurring [Table]",
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis."
       }
      }
     },
     "auth_ref": [
      "r679",
      "r680",
      "r690",
      "r1054"
     ]
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Hierarchy and NAV [Axis]",
        "label": "Fair Value Hierarchy and NAV [Axis]",
        "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient."
       }
      }
     },
     "auth_ref": [
      "r502",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r678",
      "r680",
      "r681",
      "r682",
      "r683",
      "r689",
      "r690",
      "r692",
      "r740",
      "r741",
      "r742",
      "r1032",
      "r1033",
      "r1042",
      "r1043",
      "r1044",
      "r1054",
      "r1058"
     ]
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueByMeasurementFrequencyAxis",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measurement Frequency [Axis]",
        "label": "Measurement Frequency [Axis]",
        "documentation": "Information by measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r679",
      "r680",
      "r681",
      "r683",
      "r1054",
      "r1377",
      "r1388"
     ]
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Disclosures [Abstract]",
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueDisclosuresTextBlock",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements",
        "label": "Fair Value Disclosures [Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r685",
      "r687",
      "r688",
      "r689",
      "r692",
      "r693",
      "r694",
      "r695",
      "r696",
      "r810",
      "r1054",
      "r1059"
     ]
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel1Member",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Quoted\u00a0Prices\u00a0in Active Markets for Identical Assets (Level\u00a01)",
        "label": "Fair Value, Inputs, Level 1 [Member]",
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date."
       }
      }
     },
     "auth_ref": [
      "r502",
      "r538",
      "r543",
      "r680",
      "r690",
      "r740",
      "r1042",
      "r1043",
      "r1044",
      "r1054"
     ]
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel2Member",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Significant\u00a0Other Observable Inputs (Level\u00a02)",
        "label": "Fair Value, Inputs, Level 2 [Member]",
        "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets."
       }
      }
     },
     "auth_ref": [
      "r502",
      "r538",
      "r543",
      "r680",
      "r681",
      "r690",
      "r741",
      "r1032",
      "r1033",
      "r1042",
      "r1043",
      "r1044",
      "r1054"
     ]
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueInputsLevel3Member",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unobservable Inputs (Level 3)",
        "label": "Fair Value, Inputs, Level 3 [Member]",
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r502",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r680",
      "r681",
      "r682",
      "r683",
      "r690",
      "r742",
      "r1032",
      "r1033",
      "r1042",
      "r1043",
      "r1044",
      "r1054",
      "r1058"
     ]
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementFrequencyDomain",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Measurement Frequency [Domain]",
        "label": "Measurement Frequency [Domain]",
        "documentation": "Measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r679",
      "r680",
      "r681",
      "r683",
      "r1054",
      "r1377",
      "r1388"
     ]
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Measurements, Fair Value Hierarchy [Domain]",
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value."
       }
      }
     },
     "auth_ref": [
      "r502",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r678",
      "r680",
      "r681",
      "r682",
      "r683",
      "r689",
      "r690",
      "r692",
      "r740",
      "r741",
      "r742",
      "r1032",
      "r1033",
      "r1042",
      "r1043",
      "r1044",
      "r1054",
      "r1058"
     ]
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueMeasurementsRecurringMember",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Measurements, Recurring",
        "label": "Fair Value, Recurring [Member]",
        "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value."
       }
      }
     },
     "auth_ref": [
      "r1054",
      "r1374",
      "r1375",
      "r1376",
      "r1377",
      "r1378",
      "r1388"
     ]
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements",
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]",
        "label": "Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]",
        "documentation": "Disclosure of information about location and fair value of derivative instrument and nonderivative instrument designated as hedging instrument."
       }
      }
     },
     "auth_ref": [
      "r77",
      "r79",
      "r85"
     ]
    },
    "us-gaap_FinancialInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FinancialInstrumentAxis",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instrument [Axis]",
        "label": "Financial Instrument [Axis]",
        "documentation": "Information by type of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r407",
      "r416",
      "r417",
      "r422",
      "r423",
      "r424",
      "r426",
      "r430",
      "r431",
      "r503",
      "r517",
      "r672",
      "r697",
      "r737",
      "r738",
      "r739",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r750",
      "r751",
      "r753",
      "r754",
      "r755",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r763",
      "r764",
      "r765",
      "r766",
      "r767",
      "r832",
      "r1029",
      "r1054",
      "r1056",
      "r1058",
      "r1059",
      "r1060",
      "r1061",
      "r1062",
      "r1063",
      "r1064",
      "r1067",
      "r1215",
      "r1216",
      "r1217",
      "r1218",
      "r1219",
      "r1220",
      "r1221",
      "r1273",
      "r1274",
      "r1275",
      "r1276",
      "r1373",
      "r1376",
      "r1377",
      "r1378",
      "r1385",
      "r1388"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Asset, Useful Life",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Accumulated Amortization",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r253",
      "r437",
      "r460",
      "r1031"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, after Year Five",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r1300",
      "r1448"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r462",
      "r999",
      "r1031"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2029",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Five",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r462",
      "r999",
      "r1031"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r462",
      "r999",
      "r1031"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r462",
      "r999",
      "r1031"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r462",
      "r999",
      "r1031"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "documentation": "Information by major type or class of finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r453",
      "r455",
      "r456",
      "r457",
      "r459",
      "r460",
      "r463",
      "r464",
      "r775",
      "r779",
      "r999"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross Carrying Value",
        "label": "Finite-Lived Intangible Assets, Gross",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r437",
      "r460",
      "r779",
      "r1031"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets [Line Items]",
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r453",
      "r460",
      "r463",
      "r464",
      "r466",
      "r775",
      "r999",
      "r1031"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r453",
      "r455",
      "r456",
      "r457",
      "r459",
      "r460",
      "r463",
      "r464",
      "r999"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net Carrying Value",
        "label": "Finite-Lived Intangible Assets, Net",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r775",
      "r1299"
     ]
    },
    "us-gaap_FireMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FireMember",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fire",
        "label": "Fire [Member]",
        "documentation": "Oxidation process that releases energy in the form of light and heat (flames) and often creates smoke."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ForeignCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ForeignCountryMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign Tax Jurisdiction [Member]",
        "label": "Foreign Tax Jurisdiction [Member]",
        "documentation": "Designated foreign jurisdiction entitled to levy and collect income tax outside country of domicile."
       }
      }
     },
     "auth_ref": [
      "r610",
      "r611"
     ]
    },
    "us-gaap_ForeignCurrencyContractAssetFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ForeignCurrencyContractAssetFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Economic hedge forward contracts",
        "label": "Foreign Currency Contract, Asset, Fair Value Disclosure",
        "documentation": "Fair value portion of asset contracts related to the exchange of different currencies, including, but not limited to, foreign currency options, forward contracts, and swaps."
       }
      }
     },
     "auth_ref": [
      "r679",
      "r680"
     ]
    },
    "us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ForeignCurrencyContractsLiabilityFairValueDisclosure",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Economic hedge forward contracts",
        "label": "Foreign Currency Contracts, Liability, Fair Value Disclosure",
        "documentation": "Fair value portion of liability contracts related to the exchange of different currencies, including, but not limited to, foreign currency options, forward (delivery or nondelivery) contracts, and swaps entered into."
       }
      }
     },
     "auth_ref": [
      "r679",
      "r680"
     ]
    },
    "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ForeignCurrencyTransactionGainLossBeforeTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign currency gain (loss)",
        "label": "Gain (Loss), Foreign Currency Transaction, before Tax",
        "documentation": "Amount, before tax, of realized and unrealized gain (loss) from foreign currency transaction."
       }
      }
     },
     "auth_ref": [
      "r703",
      "r704",
      "r705",
      "r707",
      "r943"
     ]
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign Currency",
        "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r702"
     ]
    },
    "us-gaap_ForeignExchangeForwardMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ForeignExchangeForwardMember",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign Exchange Forward",
        "label": "Foreign Exchange Forward [Member]",
        "documentation": "Foreign exchange forward traded on an exchange (examples include but are not limited to the International Securities Exchange, Philadelphia Stock Exchange, or the Chicago Mercantile Exchange) for options or future contracts to buy or sell a certain currency, at a specified date, at a fixed exercise exchange rate."
       }
      }
     },
     "auth_ref": [
      "r912",
      "r917",
      "r922",
      "r935",
      "r941",
      "r967",
      "r968",
      "r969",
      "r1087"
     ]
    },
    "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount",
        "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount"
       }
      }
     },
     "auth_ref": [
      "r1120",
      "r1131",
      "r1141",
      "r1174"
     ]
    },
    "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount",
        "label": "Forgone Recovery due to Expense of Enforcement, Amount"
       }
      }
     },
     "auth_ref": [
      "r1120",
      "r1131",
      "r1141",
      "r1174"
     ]
    },
    "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount",
        "label": "Forgone Recovery due to Violation of Home Country Law, Amount"
       }
      }
     },
     "auth_ref": [
      "r1120",
      "r1131",
      "r1141",
      "r1174"
     ]
    },
    "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery, Explanation of Impracticability",
        "label": "Forgone Recovery, Explanation of Impracticability [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1120",
      "r1131",
      "r1141",
      "r1174"
     ]
    },
    "ecd_ForgoneRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "ForgoneRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Forgone Recovery, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r1120",
      "r1131",
      "r1141",
      "r1174"
     ]
    },
    "ecd_FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "FrValAsOfPrrYrEndOfEqtyAwrdsGrntdInPrrYrsFldVstngCondsDrngCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year",
        "label": "Prior Year End Fair Value of Equity Awards Granted in Any Prior Year that Fail to Meet Applicable Vesting Conditions During Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r1154"
     ]
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "FurnitureAndFixturesMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Furniture and Fixtures [Member]",
        "label": "Furniture and Fixtures [Member]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "currency_GBP": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2024",
     "localname": "GBP",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "British Pound [Member]",
        "label": "United Kingdom, Pounds"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GainLossOnDispositionOfAssets1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GainLossOnDispositionOfAssets1",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Loss on disposition of property, plant and equipment",
        "terseLabel": "Loss on disposition of property, plant and equipment",
        "label": "Gain (Loss) on Disposition of Assets",
        "documentation": "Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee."
       }
      }
     },
     "auth_ref": [
      "r1241"
     ]
    },
    "us-gaap_GainLossOnSaleOfInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GainLossOnSaleOfInvestments",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Realized (gain) loss on sale of investments",
        "label": "Gain (Loss) on Sale of Investments",
        "documentation": "The net realized gain (loss) on investments sold during the period, not including gains (losses) on securities separately or otherwise categorized as trading, available-for-sale, or held-to-maturity, which, for cash flow reporting, is a component of proceeds from investing activities."
       }
      }
     },
     "auth_ref": [
      "r11"
     ]
    },
    "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GainLossOnSaleOfPropertyPlantEquipment",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Loss (gain) on disposal of property, plant, and equipment",
        "label": "Gain (Loss) on Disposition of Property Plant Equipment",
        "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property."
       }
      }
     },
     "auth_ref": [
      "r11"
     ]
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 5.0
      },
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "periodStartLabel": "Goodwill, Beginning Balance",
        "periodEndLabel": "Goodwill, Ending Balance",
        "label": "Goodwill",
        "documentation": "Amount, after accumulated impairment loss, of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r252",
      "r439",
      "r811",
      "r1024",
      "r1030",
      "r1055",
      "r1066",
      "r1281",
      "r1288"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill and Intangible Assets Disclosure [Abstract]",
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r438",
      "r451",
      "r1030"
     ]
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/Goodwill"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "label": "Goodwill Disclosure [Text Block]",
        "documentation": "The entire disclosure for goodwill."
       }
      }
     },
     "auth_ref": [
      "r438",
      "r440",
      "r450",
      "r1030"
     ]
    },
    "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillForeignCurrencyTranslationGainLoss",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign exchange rate changes",
        "label": "Goodwill, Foreign Currency Translation Gain (Loss)",
        "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) asset representing future economic benefit from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r446"
     ]
    },
    "us-gaap_GoodwillLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillLineItems",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill [Line Items]",
        "label": "Goodwill [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r451",
      "r1030"
     ]
    },
    "us-gaap_GoodwillOtherIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillOtherIncreaseDecrease",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill, Other Increase (Decrease)",
        "label": "Goodwill, Other Increase (Decrease)",
        "documentation": "Amount of increase (decrease) of asset representing future economic benefit from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized, classified as other."
       }
      }
     },
     "auth_ref": [
      "r447"
     ]
    },
    "us-gaap_GoodwillPurchaseAccountingAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillPurchaseAccountingAdjustments",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill, Measurement Period Adjustment",
        "label": "Goodwill, Measurement Period Adjustment",
        "documentation": "Amount of increase (decrease) from measurement period adjustment of asset representing future economic benefit arising from other asset acquired in business combination or from joint venture formation or both, that is not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r1287"
     ]
    },
    "us-gaap_GoodwillRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GoodwillRollForward",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill [Roll Forward]",
        "label": "Goodwill [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_GreaterChinaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "GreaterChinaMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Greater China [Member]",
        "verboseLabel": "Greater China [Member]",
        "label": "Greater China [Member]",
        "documentation": "Greater China [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_GrossLossFromCatastrophes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "GrossLossFromCatastrophes",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross Loss from Catastrophes",
        "label": "Gross Loss from Catastrophes",
        "documentation": "Gross Loss from Catastrophes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Gross margin",
        "terseLabel": "Gross margin",
        "label": "Gross Profit",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r110",
      "r114",
      "r169",
      "r293",
      "r410",
      "r491",
      "r492",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r500",
      "r501",
      "r701",
      "r1018",
      "r1023",
      "r1258",
      "r1260",
      "r1261",
      "r1262",
      "r1263",
      "r1317"
     ]
    },
    "us-gaap_GuaranteesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "GuaranteesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Guarantees [Abstract]",
        "label": "Guarantees [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "currency_HUF": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2024",
     "localname": "HUF",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Hungarian Forint [Member]",
        "label": "Hungary, Forint"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_HardwareAndSoftwareMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "HardwareAndSoftwareMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computer Hardware And Software [Member]",
        "label": "Hardware And Software [Member]",
        "documentation": "Hardware and software."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_HedgingDesignationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "HedgingDesignationAxis",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Hedging Designation [Axis]",
        "label": "Hedging Designation [Axis]",
        "documentation": "Information by designation of purpose of derivative instrument."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r663"
     ]
    },
    "us-gaap_HedgingDesignationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "HedgingDesignationDomain",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Hedging Designation [Domain]",
        "label": "Hedging Designation [Domain]",
        "documentation": "Designation of purpose of derivative instrument."
       }
      }
     },
     "auth_ref": [
      "r18"
     ]
    },
    "dei_IcfrAuditorAttestationFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "IcfrAuditorAttestationFlag",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ICFR Auditor Attestation Flag",
        "label": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "auth_ref": [
      "r1099",
      "r1100",
      "r1123"
     ]
    },
    "cgnx_IncentiveCompensationExpenseBonusAndSalesCommissions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "IncentiveCompensationExpenseBonusAndSalesCommissions",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails": {
       "parentTag": "us-gaap_SellingGeneralAndAdministrativeExpense",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Incentive Compensation Expense, Bonus And Sales Commissions",
        "label": "Incentive Compensation Expense, Bonus And Sales Commissions",
        "documentation": "Incentive Compensation Expense, Bonus And Sales Commissions"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Domestic income from continuing operations before taxes",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Domestic",
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations."
       }
      }
     },
     "auth_ref": [
      "r294",
      "r609"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income before income tax expense",
        "terseLabel": "Income before income tax expense",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "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."
       }
      }
     },
     "auth_ref": [
      "r111",
      "r165",
      "r169",
      "r815",
      "r829",
      "r1018",
      "r1023",
      "r1258",
      "r1260",
      "r1261",
      "r1262",
      "r1263"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign income from continuing operations before taxes",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Foreign",
        "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."
       }
      }
     },
     "auth_ref": [
      "r294",
      "r609"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement [Abstract]",
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Employee Service Share-Based Compensation, Allocation of Recognized Period Costs, by Report Line [Axis]",
        "label": "Statement of Income Location, Balance [Axis]",
        "documentation": "Information by location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r470",
      "r472",
      "r473",
      "r684",
      "r686",
      "r691",
      "r858",
      "r860",
      "r930",
      "r999",
      "r1057",
      "r1409"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs, Report Line [Domain]",
        "label": "Statement of Income Location, Balance [Domain]",
        "documentation": "Location in statement of income where disaggregated amount has been reported."
       }
      }
     },
     "auth_ref": [
      "r472",
      "r473",
      "r684",
      "r686",
      "r691",
      "r858",
      "r860",
      "r930",
      "r999",
      "r1057",
      "r1409"
     ]
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxAuthorityAxis",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Jurisdiction [Axis]",
        "label": "Income Tax Jurisdiction [Axis]",
        "documentation": "Information by income tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r289",
      "r610",
      "r611",
      "r622",
      "r634",
      "r1052",
      "r1360"
     ]
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxAuthorityDomain",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Jurisdiction [Domain]",
        "label": "Income Tax Jurisdiction [Domain]",
        "documentation": "Income tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r289",
      "r610",
      "r611",
      "r622",
      "r634",
      "r1052",
      "r1360"
     ]
    },
    "us-gaap_IncomeTaxAuthorityNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxAuthorityNameAxis",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Authority, Name [Axis]",
        "label": "Income Tax Authority, Name [Axis]",
        "documentation": "Information by name of taxing authority."
       }
      }
     },
     "auth_ref": [
      "r622",
      "r1360"
     ]
    },
    "us-gaap_IncomeTaxAuthorityNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxAuthorityNameDomain",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Authority, Name [Domain]",
        "label": "Income Tax Authority, Name [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r622",
      "r1360"
     ]
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Disclosure [Abstract]",
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes",
        "label": "Income Tax Disclosure [Text Block]",
        "documentation": "The entire disclosure for income tax."
       }
      }
     },
     "auth_ref": [
      "r295",
      "r602",
      "r610",
      "r618",
      "r619",
      "r620",
      "r628",
      "r632",
      "r641",
      "r643",
      "r644",
      "r645",
      "r881",
      "r1052"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      },
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax expense on continuing operations",
        "totalLabel": "Income tax expense (benefit), continuing operations, Total",
        "label": "Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r180",
      "r193",
      "r320",
      "r321",
      "r337",
      "r352",
      "r366",
      "r608",
      "r610",
      "r642",
      "r838",
      "r1052"
     ]
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Taxes",
        "label": "Income Tax, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r280",
      "r604",
      "r605",
      "r628",
      "r629",
      "r631",
      "r636",
      "r875"
     ]
    },
    "us-gaap_IncomeTaxReconciliationRepatriationOfForeignEarnings": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxReconciliationRepatriationOfForeignEarnings",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effective Income Tax Rate Reconciliation, Repatriation of Foreign Earnings, Amount",
        "label": "Effective Income Tax Rate Reconciliation, Repatriation of Foreign Earnings, Amount",
        "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 repatriation of foreign earnings."
       }
      }
     },
     "auth_ref": [
      "r1353",
      "r1354"
     ]
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax paid net",
        "label": "Income Taxes Paid, Net",
        "documentation": "Amount, after refund, of cash paid to foreign, federal, state, and local jurisdictions as income tax."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r289",
      "r633",
      "r634"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccountsPayable",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable",
        "label": "Increase (Decrease) in Accounts Payable",
        "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."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts receivable",
        "label": "Increase (Decrease) in Accounts Receivable",
        "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."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccruedIncomeTaxesPayable",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 19.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued income taxes",
        "label": "Increase (Decrease) in Income Taxes Payable",
        "documentation": "The increase (decrease) during the period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued expenses",
        "label": "Increase (Decrease) in Accrued Liabilities",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase in compensation expense due to revised estimated forfeiture rates",
        "label": "Increase (Decrease) In Compensation Expense Due To Revised Estimated Forfeiture Rates",
        "documentation": "Increase (decrease) in compensation expense due to revised estimated forfeiture rates."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInContractWithCustomerAsset",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Unbilled revenue",
        "label": "Increase (Decrease) in Contract with Customer, Asset",
        "documentation": "Amount of increase (decrease) in right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time."
       }
      }
     },
     "auth_ref": [
      "r1240"
     ]
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 18.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue and customer deposits",
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r769",
      "r1240"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeferredIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInDeferredIncomeTaxes",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Change in deferred income taxes",
        "label": "Increase (Decrease) in Deferred Income Taxes",
        "documentation": "The increase (decrease) during the reporting period in the account that represents the temporary difference that results from Income or Loss that is recognized for accounting purposes but not for tax purposes and vice versa."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Inventories",
        "label": "Increase (Decrease) in Inventories",
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInOtherOperatingCapitalNet",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Other",
        "label": "Increase (Decrease) in Other Operating Assets and Liabilities, Net",
        "documentation": "Amount of increase (decrease) in operating assets after deduction of operating liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Prepaid expenses and other current assets",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r10"
     ]
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_IndemnificationProvisionsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "IndemnificationProvisionsTextBlock",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisions"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Indemnification Provisions",
        "label": "Indemnification Provisions [Text Block]",
        "documentation": "Indemnification provisions are a potential liability whereby the Company indemnifies certain directors, officers, and employees (current or former) against expenses incurred by them in relation to specific legal proceedings. The company also indemnifies other parties for specific situations."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_IndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "IndividualAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Individual:",
        "label": "Individual [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1120",
      "r1131",
      "r1141",
      "r1165",
      "r1174",
      "r1178",
      "r1186"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1184"
     ]
    },
    "ecd_InsiderTradingPoliciesProcLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTradingPoliciesProcLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1101",
      "r1190"
     ]
    },
    "ecd_InsiderTrdPoliciesProcAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTrdPoliciesProcAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insider Trading Policies and Procedures Adopted",
        "label": "Insider Trading Policies and Procedures Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1101",
      "r1190"
     ]
    },
    "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insider Trading Policies and Procedures Not Adopted",
        "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1101",
      "r1190"
     ]
    },
    "us-gaap_InsuranceRecoveries": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InsuranceRecoveries",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insurance Recoveries",
        "label": "Insurance Recoveries",
        "documentation": "The amount recovered from insurance. These recoveries reduce costs and losses that are reported as a separate line item under operating expenses."
       }
      }
     },
     "auth_ref": [
      "r116"
     ]
    },
    "cgnx_InsuranceRecoveriesBusinessInterruption": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "InsuranceRecoveriesBusinessInterruption",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insurance Recoveries, Business Interruption",
        "label": "Insurance Recoveries, Business Interruption",
        "documentation": "Insurance Recoveries, Business Interruption"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "InsuranceRecoveriesLostInventoryAndOtherLosses",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insurance Recoveries, Lost Inventory And Other Losses",
        "label": "Insurance Recoveries, Lost Inventory And Other Losses",
        "documentation": "Insurance Recoveries, Lost Inventory And Other Losses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/IntangibleAssets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible Assets",
        "label": "Intangible Assets Disclosure [Text Block]",
        "documentation": "The entire disclosure for all or part of the information related to intangible assets."
       }
      }
     },
     "auth_ref": [
      "r452",
      "r465",
      "r467",
      "r998",
      "r999"
     ]
    },
    "us-gaap_IntangibleAssetsFiniteLivedPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsFiniteLivedPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible Assets",
        "label": "Intangible Assets, Finite-Lived, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for finite-lived intangible assets. This accounting policy also might address: (1) the amortization method used; (2) the useful lives of such assets; and (3) how the entity assesses and measures impairment of such assets."
       }
      }
     },
     "auth_ref": [
      "r771",
      "r772",
      "r773",
      "r775",
      "r1012",
      "r1291"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets, net",
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "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."
       }
      }
     },
     "auth_ref": [
      "r453",
      "r1299",
      "r1301"
     ]
    },
    "us-gaap_InterestReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InterestReceivable",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest Receivable",
        "label": "Interest Receivable",
        "documentation": "Carrying amount as of the balance sheet date of interest earned but not received. Also called accrued interest or accrued interest receivable."
       }
      }
     },
     "auth_ref": [
      "r1231",
      "r1442"
     ]
    },
    "us-gaap_InternalUseSoftwarePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InternalUseSoftwarePolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Internal-use Software",
        "label": "Internal Use Software, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for costs incurred when both (1) the software is acquired, internally developed, or modified solely to meet the entity's internal needs, and (2) during the software's development or modification, no substantive plan exists or is being developed to market the software externally."
       }
      }
     },
     "auth_ref": [
      "r468"
     ]
    },
    "us-gaap_InventoryCurrentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryCurrentTable",
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory, Current [Table]",
        "label": "Inventory, Current [Table]",
        "documentation": "Disclosure of information about inventory expected to be sold or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory Disclosure [Abstract]",
        "label": "Inventory Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/Inventories"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Inventories",
        "label": "Inventory Disclosure [Text Block]",
        "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory."
       }
      }
     },
     "auth_ref": [
      "r434"
     ]
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryFinishedGoodsNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finished goods",
        "label": "Inventory, Finished Goods, Net of Reserves",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale."
       }
      }
     },
     "auth_ref": [
      "r132",
      "r1007"
     ]
    },
    "us-gaap_InventoryLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryLineItems",
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory [Line Items]",
        "label": "Inventory [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      },
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "totalLabel": "Inventories",
        "label": "Inventory, Net",
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r262",
      "r1005",
      "r1066"
     ]
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "label": "Inventory, Policy [Policy Text Block]",
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost."
       }
      }
     },
     "auth_ref": [
      "r182",
      "r247",
      "r261",
      "r434",
      "r435",
      "r436",
      "r770",
      "r1013"
     ]
    },
    "us-gaap_InventoryRawMaterialsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryRawMaterialsNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Raw materials",
        "label": "Inventory, Raw Materials, Net of Reserves",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process."
       }
      }
     },
     "auth_ref": [
      "r132",
      "r1009"
     ]
    },
    "us-gaap_InventoryWorkInProcessNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InventoryWorkInProcessNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Work-in-process",
        "label": "Inventory, Work in Process, Net of Reserves",
        "documentation": "Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing."
       }
      }
     },
     "auth_ref": [
      "r132",
      "r1008"
     ]
    },
    "cgnx_InvestmentDurationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "InvestmentDurationAxis",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment Duration [Axis]",
        "label": "Investment Duration [Axis]",
        "documentation": "Investment Duration"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_InvestmentDurationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "InvestmentDurationDomain",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment Duration [Domain]",
        "label": "Investment Duration [Domain]",
        "documentation": "Investment Duration [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentIncomeNonoperating": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentIncomeNonoperating",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment income",
        "label": "Investment Income, Nonoperating",
        "documentation": "The aggregate amount of income from investments (for example, dividends) not considered a component of the entity's core operations."
       }
      }
     },
     "auth_ref": [
      "r119"
     ]
    },
    "us-gaap_InvestmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash, Cash Equivalents, and Investments",
        "label": "Investment, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for investment in financial asset."
       }
      }
     },
     "auth_ref": [
      "r837",
      "r871",
      "r872",
      "r873",
      "r874",
      "r954",
      "r955"
     ]
    },
    "us-gaap_InvestmentTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentTypeAxis",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment Type [Axis]",
        "label": "Investment Type [Axis]",
        "documentation": "Information by type of investments."
       }
      }
     },
     "auth_ref": [
      "r886",
      "r888",
      "r889",
      "r892",
      "r895",
      "r951",
      "r953",
      "r957",
      "r960",
      "r961",
      "r974",
      "r976",
      "r977",
      "r978",
      "r979",
      "r980",
      "r1087"
     ]
    },
    "us-gaap_InvestmentTypeCategorizationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentTypeCategorizationMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment Type Categorization [Domain]",
        "label": "Investments [Domain]",
        "documentation": "Asset obtained to generate income or appreciate in value."
       }
      }
     },
     "auth_ref": [
      "r886",
      "r888",
      "r889",
      "r892",
      "r895",
      "r951",
      "r953",
      "r957",
      "r960",
      "r961",
      "r974",
      "r976",
      "r977",
      "r978",
      "r979",
      "r980",
      "r1087"
     ]
    },
    "us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effective Maturity Dates of Available-for-Sale Investments",
        "label": "Investments Classified by Contractual Maturity Date [Table Text Block]",
        "documentation": "Tabular disclosure of maturities of an entity's investments as well as any other information pertinent to the investments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestments"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash, Cash Equivalents, and Investments",
        "label": "Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]",
        "documentation": "The entire disclosure for cash, cash equivalents, investments in debt and equity instruments (including cost and equity investees and related income statement amounts), equity and cost method investments, investments in joint ventures and any other investment."
       }
      }
     },
     "auth_ref": [
      "r698"
     ]
    },
    "country_JP": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "JP",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "JAPAN",
        "label": "JAPAN"
       }
      }
     },
     "auth_ref": []
    },
    "currency_JPY": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2024",
     "localname": "JPY",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Japanese Yen [Member]",
        "label": "Japan, Yen"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_JoergKuechenMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "JoergKuechenMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Joerg Kuechen [Member]",
        "documentation": "Joerg Kuechen"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "JoergKuechenRuleTradingArrangementCommonStockPurchaseMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Joerg Kuechen, Rule Trading Arrangement, Common Stock Purchase [Member]",
        "documentation": "Joerg Kuechen, Rule Trading Arrangement, Common Stock Purchase"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "JoergKuechenRuleTradingArrangementCommonStockSaleMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Joerg Kuechen, Rule Trading Arrangement, Common Stock Sale [Member]",
        "documentation": "Joerg Kuechen, Rule Trading Arrangement, Common Stock Sale"
       }
      }
     },
     "auth_ref": []
    },
    "country_KP": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "KP",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF",
        "label": "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LaborAndRelatedExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LaborAndRelatedExpense",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails": {
       "parentTag": "us-gaap_ResearchAndDevelopmentExpense",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Labor and Related Expense",
        "label": "Labor and Related Expense",
        "documentation": "Amount of expense for salary, wage, profit sharing; incentive and equity-based compensation; and other employee benefit."
       }
      }
     },
     "auth_ref": [
      "r1239"
     ]
    },
    "us-gaap_LandMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LandMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Land [Member]",
        "label": "Land [Member]",
        "documentation": "Part of earth's surface not covered by water."
       }
      }
     },
     "auth_ref": [
      "r1323"
     ]
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeaseholdImprovementsMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Leasehold Improvements [Member]",
        "label": "Leasehold Improvements [Member]",
        "documentation": "Additions or improvements to assets held under a lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r134",
      "r728"
     ]
    },
    "us-gaap_LeasesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LeasesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "New Accounting Pronouncements or Change in Accounting Principle [Table]",
        "label": "Leases [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases",
        "label": "Lessee, Leases [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r723"
     ]
    },
    "cgnx_LesseeOperatingLeaseComponents": {
     "xbrltype": "integerItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "LesseeOperatingLeaseComponents",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Operating Lease, Components",
        "label": "Lessee, Operating Lease, Components",
        "documentation": "Lessee, Operating Lease, Components"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of lease payments",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1396"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Operating Lease, Liability, Payments, Due",
        "totalLabel": "Total",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r727"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Five",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r727"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r727"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2029",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r727"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r727"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r727"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r727"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year."
       }
      }
     },
     "auth_ref": [
      "r1396"
     ]
    },
    "cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "LesseeOperatingLeaseOptionToRenewTermOfContract",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Operating Lease, Option to Renew, Term of Contract",
        "label": "Lessee, Operating Lease, Option to Renew, Term of Contract",
        "documentation": "Lessee, Operating Lease, Option to Renew, Term of Contract"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseTermOfContract": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeaseTermOfContract",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Operating Lease, Term of Contract",
        "label": "Lessee, Operating Lease, Term of Contract",
        "documentation": "Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r1394"
     ]
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LesseeOperatingLeasesTextBlock",
     "presentation": [
      "http://cognex.com/role/LeasesLeases"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases",
        "label": "Lessee, Operating Leases [Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r718"
     ]
    },
    "us-gaap_LessorLeaseDescriptionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LessorLeaseDescriptionLineItems",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessor, Lease, Description [Line Items]",
        "label": "Lessor, Lease, Description [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r729"
     ]
    },
    "us-gaap_LessorLeaseDescriptionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LessorLeaseDescriptionTable",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessor, Lease, Description [Table]",
        "label": "Lessor, Lease, Description [Table]",
        "documentation": "Disclosure of information about lessor's leases."
       }
      }
     },
     "auth_ref": [
      "r729"
     ]
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "label": "Liabilities",
        "documentation": "Amount of liability recognized for present obligation requiring transfer or otherwise providing economic benefit to others."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r90",
      "r91",
      "r92",
      "r93",
      "r94",
      "r95",
      "r96",
      "r293",
      "r410",
      "r491",
      "r492",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r500",
      "r501",
      "r659",
      "r660",
      "r661",
      "r701",
      "r904",
      "r1017",
      "r1095",
      "r1317",
      "r1397",
      "r1398"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities and shareholders' equity",
        "label": "Liabilities and Equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r103",
      "r164",
      "r825",
      "r1066",
      "r1243",
      "r1277",
      "r1389"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "LIABILITIES AND SHAREHOLDERS\u2019 EQUITY",
        "label": "Liabilities and Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current liabilities",
        "label": "Liabilities, Current",
        "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."
       }
      }
     },
     "auth_ref": [
      "r92",
      "r246",
      "r293",
      "r410",
      "r491",
      "r492",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r500",
      "r501",
      "r659",
      "r660",
      "r661",
      "r701",
      "r1066",
      "r1317",
      "r1397",
      "r1398"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current liabilities:",
        "label": "Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesFairValueDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilitiesFairValueDisclosureAbstract",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liabilities:",
        "label": "Liabilities, Fair Value Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LiabilityForUncertainTaxPositionsNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reserve for income taxes",
        "label": "Liability for Uncertainty in Income Taxes, Noncurrent",
        "documentation": "Amount recognized for uncertainty in income taxes classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r94"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LongTermInvestments",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current investments, amortized cost of $345,033 and $250,790 in 2024 and 2023, respectively, allowance for credit losses of $0 in 2024 and 2023",
        "totalLabel": "Non-current investments",
        "label": "Long-Term Investments",
        "documentation": "The total amount of investments that are intended to be held for an extended period of time (longer than one operating cycle)."
       }
      }
     },
     "auth_ref": [
      "r249"
     ]
    },
    "cgnx_LongTermInvestmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "LongTermInvestmentsMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term investments [Member]",
        "label": "Long Term Investments [Member]",
        "documentation": "Long-term investments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossFromCatastrophes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "LossFromCatastrophes",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss from Catastrophes",
        "label": "Loss from Catastrophes",
        "documentation": "The charge against earnings in the period for the uninsured portion of a loss from a fire, explosion, or natural disaster (hurricane, earthquake)."
       }
      }
     },
     "auth_ref": [
      "r120"
     ]
    },
    "cgnx_LossGainFromCatastrophes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "LossGainFromCatastrophes",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss (recovery) from fire",
        "label": "Loss (Gain) From Catastrophes",
        "documentation": "Loss (Gain) From Catastrophes"
       }
      }
     },
     "auth_ref": []
    },
    "currency_MXN": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2024",
     "localname": "MXN",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Mexican Peso [Member]",
        "label": "Mexico, Pesos"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer [Axis]",
        "label": "Customer [Axis]",
        "documentation": "Information by name or description of a single external customer or a group of external customers."
       }
      }
     },
     "auth_ref": [
      "r373",
      "r1037",
      "r1077",
      "r1082",
      "r1322",
      "r1408",
      "r1410",
      "r1411",
      "r1413",
      "r1414",
      "r1415",
      "r1416",
      "r1417",
      "r1418",
      "r1419",
      "r1420",
      "r1421",
      "r1422",
      "r1423",
      "r1424",
      "r1425",
      "r1426",
      "r1427",
      "r1428",
      "r1429",
      "r1430",
      "r1431",
      "r1432",
      "r1433",
      "r1434",
      "r1435",
      "r1436",
      "r1437"
     ]
    },
    "cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum decrease in income tax expense due to release in reserves",
        "label": "Maximum Decrease In Income Tax Expense Due To Release In Reserves",
        "documentation": "Maximum decrease in income tax expense due to release in reserves."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_MaximumInvestmentOfCompanyInPartnership": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "MaximumInvestmentOfCompanyInPartnership",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum investment of the company in partnership",
        "label": "Maximum Investment Of Company In Partnership",
        "documentation": "Maximum investment of the company in partnership."
       }
      }
     },
     "auth_ref": []
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MaximumMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum [Member]",
        "label": "Maximum [Member]",
        "documentation": "Upper limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r203",
      "r205",
      "r207",
      "r208",
      "r210",
      "r239",
      "r240",
      "r481",
      "r482",
      "r483",
      "r484",
      "r553",
      "r599",
      "r683",
      "r768",
      "r857",
      "r859",
      "r869",
      "r896",
      "r897",
      "r952",
      "r956",
      "r958",
      "r959",
      "r975",
      "r996",
      "r997",
      "r1028",
      "r1034",
      "r1047",
      "r1058",
      "r1059",
      "r1063",
      "r1064",
      "r1078",
      "r1319",
      "r1399",
      "r1400",
      "r1401",
      "r1402",
      "r1403",
      "r1404"
     ]
    },
    "us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maturities of forward of contracts",
        "label": "Maximum Remaining Maturity of Foreign Currency Derivatives",
        "documentation": "Maximum amount of time remaining before foreign currency exchange rate derivatives mature or expire, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_MeasureAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MeasureAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measure:",
        "label": "Measure [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1157"
     ]
    },
    "ecd_MeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Measure Name"
       }
      }
     },
     "auth_ref": [
      "r1157"
     ]
    },
    "cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "MinimumAgeToBeEligibleToDefinedContributionPlan",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum age to be eligible to defined contribution plan",
        "label": "Minimum Age To Be Eligible To Defined Contribution Plan",
        "documentation": "Minimum age to be eligible to defined contribution plan."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum decrease in income tax expense due to release in reserves",
        "label": "Minimum Decrease In Income Tax Expense Due To Release In Reserves",
        "documentation": "Minimum decrease in income tax expense due to release in reserves."
       }
      }
     },
     "auth_ref": []
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "MinimumMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum [Member]",
        "label": "Minimum [Member]",
        "documentation": "Lower limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r203",
      "r205",
      "r207",
      "r208",
      "r210",
      "r239",
      "r240",
      "r481",
      "r482",
      "r483",
      "r484",
      "r553",
      "r599",
      "r683",
      "r768",
      "r857",
      "r859",
      "r869",
      "r896",
      "r897",
      "r952",
      "r956",
      "r958",
      "r959",
      "r975",
      "r996",
      "r997",
      "r1028",
      "r1034",
      "r1047",
      "r1058",
      "r1059",
      "r1063",
      "r1078",
      "r1319",
      "r1399",
      "r1400",
      "r1401",
      "r1402",
      "r1403",
      "r1404"
     ]
    },
    "ecd_MnpiDiscTimedForCompValFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MnpiDiscTimedForCompValFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "MNPI Disclosure Timed for Compensation Value",
        "label": "MNPI Disclosure Timed for Compensation Value [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1177"
     ]
    },
    "us-gaap_MoneyMarketFundsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MoneyMarketFundsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Money market instruments",
        "label": "Money Market Funds, at Carrying Value",
        "documentation": "Investment in short-term money-market instruments (such as commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and so forth) which are highly liquid (that is, readily convertible to known amounts of cash) and so near their maturity that they present an insignificant risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify as cash equivalents by definition. Original maturity means an original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three-years ago does not become a cash equivalent when its remaining maturity is three months."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_MoneyMarketInstrumentsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "MoneyMarketInstrumentsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Money market instruments",
        "label": "Money Market Instruments Fair Value Disclosure",
        "documentation": "Money market instruments fair value disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_MoritexCorporationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "MoritexCorporationMember",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/InventoriesInventoriesDetail",
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Moritex Corporation",
        "label": "Moritex Corporation [Member]",
        "documentation": "Moritex Corporation"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MovementInStandardProductWarrantyAccrualRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MovementInStandardProductWarrantyAccrualRollForward",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Movement in Standard Product Warranty Accrual [Roll Forward]",
        "label": "Movement in Standard Product Warranty Accrual [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MovementInValuationAllowancesAndReservesRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MovementInValuationAllowancesAndReservesRollForward",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]",
        "label": "SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_MtrlTermsOfTrdArrTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "MtrlTermsOfTrdArrTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Material Terms of Trading Arrangement",
        "label": "Material Terms of Trading Arrangement [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1185"
     ]
    },
    "us-gaap_MunicipalBondsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "MunicipalBondsMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Municipal Bonds [Member]",
        "label": "Municipal Bonds [Member]",
        "documentation": "Long-term debt securities issued by state, city or local governments or the agencies operated by state, city or local governments."
       }
      }
     },
     "auth_ref": []
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer [Domain]",
        "label": "Customer [Domain]",
        "documentation": "Single external customer or group of external customers."
       }
      }
     },
     "auth_ref": [
      "r373",
      "r1037",
      "r1077",
      "r1082",
      "r1322",
      "r1408",
      "r1410",
      "r1411",
      "r1413",
      "r1414",
      "r1415",
      "r1416",
      "r1417",
      "r1418",
      "r1419",
      "r1420",
      "r1421",
      "r1422",
      "r1423",
      "r1424",
      "r1425",
      "r1426",
      "r1427",
      "r1428",
      "r1429",
      "r1430",
      "r1431",
      "r1432",
      "r1433",
      "r1434",
      "r1435",
      "r1436",
      "r1437"
     ]
    },
    "ecd_NamedExecutiveOfficersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NamedExecutiveOfficersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Named Executive Officers, Footnote",
        "label": "Named Executive Officers, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1158"
     ]
    },
    "cgnx_NatureOfOperationsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "NatureOfOperationsPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nature of Operations",
        "label": "Nature Of Operations [Policy Text Block]",
        "documentation": "Nature of Operations."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in financing activities",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "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."
       }
      }
     },
     "auth_ref": [
      "r288"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from financing activities:",
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) investing activities",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "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."
       }
      }
     },
     "auth_ref": [
      "r288"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from investing activities:",
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by operating activities",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "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."
       }
      }
     },
     "auth_ref": [
      "r126",
      "r127",
      "r128"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from operating activities:",
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 1.0
      },
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 6.0
      },
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net income",
        "terseLabel": "Net income",
        "label": "Net Income (Loss) Attributable to Parent",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r115",
      "r128",
      "r166",
      "r244",
      "r275",
      "r278",
      "r283",
      "r293",
      "r309",
      "r313",
      "r314",
      "r315",
      "r316",
      "r317",
      "r320",
      "r321",
      "r328",
      "r410",
      "r491",
      "r492",
      "r494",
      "r495",
      "r496",
      "r497",
      "r498",
      "r500",
      "r501",
      "r651",
      "r657",
      "r677",
      "r701",
      "r830",
      "r927",
      "r944",
      "r945",
      "r1093",
      "r1317"
     ]
    },
    "us-gaap_NetRentableArea": {
     "xbrltype": "areaItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NetRentableArea",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Rentable Area",
        "label": "Net Rentable Area",
        "documentation": "Net rentable area for properties owned."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
     "presentation": [
      "http://cognex.com/role/NewPronouncements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "New Pronouncements",
        "label": "Accounting Standards Update and Change in Accounting Principle [Text Block]",
        "documentation": "The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle."
       }
      }
     },
     "auth_ref": [
      "r194",
      "r242",
      "r307",
      "r308",
      "r311",
      "r312",
      "r322",
      "r323",
      "r374",
      "r412",
      "r413",
      "r649",
      "r650",
      "r652",
      "r657",
      "r670",
      "r674",
      "r730",
      "r732",
      "r733",
      "r776",
      "r777",
      "r778",
      "r864",
      "r865",
      "r866",
      "r867",
      "r868"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "New Accounting Pronouncements",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_NonCashLossFromCatastrophes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "NonCashLossFromCatastrophes",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-cash, loss from catastrophes",
        "label": "Non-cash, Loss from Catastrophes",
        "documentation": "Non-cash, Loss from Catastrophes"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonGaapMeasureDescriptionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonGaapMeasureDescriptionTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-GAAP Measure Description",
        "label": "Non-GAAP Measure Description [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1157"
     ]
    },
    "ecd_NonNeosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonNeosMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-NEOs",
        "label": "Non-NEOs [Member]"
       }
      }
     },
     "auth_ref": [
      "r1120",
      "r1131",
      "r1141",
      "r1165",
      "r1174"
     ]
    },
    "ecd_NonPeoNeoAvgCompActuallyPaidAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonPeoNeoAvgCompActuallyPaidAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount",
        "label": "Non-PEO NEO Average Compensation Actually Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r1148"
     ]
    },
    "ecd_NonPeoNeoAvgTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonPeoNeoAvgTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO Average Total Compensation Amount",
        "label": "Non-PEO NEO Average Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1147"
     ]
    },
    "ecd_NonPeoNeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonPeoNeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO",
        "label": "Non-PEO NEO [Member]"
       }
      }
     },
     "auth_ref": [
      "r1165"
     ]
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted",
        "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1185"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated",
        "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1185"
     ]
    },
    "us-gaap_NoncompeteAgreementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NoncompeteAgreementsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-compete agreements",
        "label": "Noncompete Agreements [Member]",
        "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party."
       }
      }
     },
     "auth_ref": [
      "r69",
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1297",
      "r1299",
      "r1302",
      "r1303"
     ]
    },
    "us-gaap_NoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NoncurrentAssets",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-lived assets",
        "label": "Long-Lived Assets",
        "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."
       }
      }
     },
     "auth_ref": [
      "r372"
     ]
    },
    "cgnx_NoncurrentDeferredTaxAssetsDeprecation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "NoncurrentDeferredTaxAssetsDeprecation",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation",
        "label": "Noncurrent Deferred Tax Assets Deprecation",
        "documentation": "Noncurrent deferred tax assets deprecation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NondesignatedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NondesignatedMember",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Not Designated as Hedging Instrument [Member]",
        "label": "Not Designated as Hedging Instrument [Member]",
        "documentation": "Derivative instrument not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP)."
       }
      }
     },
     "auth_ref": [
      "r18"
     ]
    },
    "us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NonvestedRestrictedStockSharesActivityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nonvested Restricted Stock Shares Activity",
        "label": "Nonvested Restricted Stock Shares Activity [Table Text Block]",
        "documentation": "Tabular disclosure of the changes in outstanding nonvested restricted stock shares."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "cgnx_NumberOfGroupsWithinEmployeePopulation": {
     "xbrltype": "integerItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "NumberOfGroupsWithinEmployeePopulation",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of groups within the employee population",
        "label": "Number Of Groups Within Employee Population",
        "documentation": "Number of groups within employee population."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfReportableSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "NumberOfReportableSegments",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of reportable segments",
        "label": "Number of Reportable Segments",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1019",
      "r1027",
      "r1259"
     ]
    },
    "us-gaap_OffsettingAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OffsettingAssetsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Offsetting Assets",
        "label": "Offsetting Assets [Table Text Block]",
        "documentation": "Tabular disclosure of derivative and other financial assets that are subject to offsetting, including master netting arrangements."
       }
      }
     },
     "auth_ref": [
      "r107",
      "r266"
     ]
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Operating income",
        "terseLabel": "Operating income",
        "label": "Operating Income (Loss)",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r169",
      "r1018",
      "r1258",
      "r1260",
      "r1261",
      "r1262",
      "r1263"
     ]
    },
    "us-gaap_OperatingLeaseExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseExpense",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease expense",
        "label": "Operating Lease, Expense",
        "documentation": "Amount of operating lease expense. Excludes sublease income."
       }
      }
     },
     "auth_ref": [
      "r1393"
     ]
    },
    "cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "OperatingLeaseExpenseNoLiabilityOrAssetRecognized",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease expense for which no liability or asset was recognized",
        "label": "Operating Lease, Expense, No Liability Or Asset Recognized",
        "documentation": "Operating Lease, Expense, No Liability Or Asset Recognized"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, liability",
        "label": "Operating Lease, Liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r721"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease liabilities",
        "label": "Operating Lease, Liability, Current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r721"
     ]
    },
    "cgnx_OperatingLeaseLiabilityDiscountedPresentValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "OperatingLeaseLiabilityDiscountedPresentValue",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, liability, discounted present value",
        "label": "Operating Lease, Liability, Discounted Present Value",
        "documentation": "Operating Lease, Liability, Discounted Present Value"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current operating lease liabilities",
        "label": "Operating Lease, Liability, Noncurrent",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r721"
     ]
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease payments",
        "label": "Operating Lease, Payments",
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use."
       }
      }
     },
     "auth_ref": [
      "r722",
      "r724"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease assets",
        "label": "Operating Lease, Right-of-Use Asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r720"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, weighted average discount rate (percent)",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "documentation": "Weighted average discount rate for operating lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r726",
      "r1065"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, weighted average remaining lease term (years)",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "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."
       }
      }
     },
     "auth_ref": [
      "r725",
      "r1065"
     ]
    },
    "cgnx_OperatingLossCarryforwardMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "OperatingLossCarryforwardMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating Loss Carryforward",
        "label": "Operating Loss Carryforward [Member]",
        "documentation": "Operating Loss Carryforward"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Other Accrued Liabilities, Current",
        "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r91"
     ]
    },
    "us-gaap_OtherAmortizationOfDeferredCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAmortizationOfDeferredCharges",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionNarrativesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization of Other Deferred Charges",
        "label": "Amortization of Other Deferred Charges",
        "documentation": "Amount of amortization of other deferred costs recognized in the income statement."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r116"
     ]
    },
    "cgnx_OtherAsiaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "OtherAsiaMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Asia [Member]",
        "label": "Other Asia [Member]",
        "documentation": "Other Asia [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other assets",
        "label": "Other Assets, Noncurrent",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r254"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net change related to available-for-sale investments",
        "label": "Other Comprehensive Income (Loss), Available-for-Sale Securities Adjustment, Net of Tax, Portion Attributable to Parent",
        "documentation": "Amount, after tax and reclassification adjustment, of gain (loss) in value of unsold investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), attributable to parent."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r16",
      "r154"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Available-for-sale investments:",
        "label": "Other Comprehensive Income (Loss), Available-for-Sale Securities Adjustment, Net of Tax, Portion Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net change related to foreign currency translation adjustments",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent",
        "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."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r16",
      "r154"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Net unrealized gain (loss) on available-for-sale investments, net of tax",
        "label": "OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax",
        "documentation": "Amount, after tax and adjustment, of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale."
       }
      }
     },
     "auth_ref": [
      "r269",
      "r270",
      "r271",
      "r831"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign currency translation gain (loss)",
        "verboseLabel": "Foreign currency translation adjustments, net of tax",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax",
        "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."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r831"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax benefit of foreign currency translation adjustment",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax",
        "documentation": "Amount of tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature."
       }
      }
     },
     "auth_ref": [
      "r5",
      "r6",
      "r706",
      "r714"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Other comprehensive income (loss), net of tax",
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent",
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r16",
      "r154",
      "r276",
      "r279",
      "r317"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Reclassification of net realized (gain) loss into current operations",
        "negatedTerseLabel": "Reclassification of net realized (gain) loss on the sale of available-for-sale investments",
        "verboseLabel": "Net realized gains reclassified into current operations",
        "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Net of Tax",
        "documentation": "Amount after tax of reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities."
       }
      }
     },
     "auth_ref": [
      "r8",
      "r109",
      "r274",
      "r409"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net unrealized gain (loss), net of tax of $1,245, $4,389, and $(5,943) in 2024, 2023, and 2022, respectively",
        "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax",
        "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."
       }
      }
     },
     "auth_ref": [
      "r269",
      "r271",
      "r409"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax effect of unrealized gain (loss) on available-for-sale investments",
        "verboseLabel": "Tax effect of unrealized gain on available-for-sale investments",
        "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, Tax",
        "documentation": "Amount, before adjustment, of tax expense (benefit) for 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 tax expense (benefit) for unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r270"
     ]
    },
    "us-gaap_OtherExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherExpenses",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails": {
       "parentTag": "us-gaap_SellingGeneralAndAdministrativeExpense",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Expenses",
        "label": "Other Expenses",
        "documentation": "Amount of expense classified as other."
       }
      }
     },
     "auth_ref": [
      "r117",
      "r118"
     ]
    },
    "cgnx_OtherGeographicAreaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "OtherGeographicAreaMember",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other [Member]",
        "label": "Other Geographic Area [Member]",
        "documentation": "Other Geographic Area [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherIntangibleAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherIntangibleAssetsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-compete Agreements [Member]",
        "label": "Other Intangible Assets [Member]",
        "documentation": "Intangible assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r1031",
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1296",
      "r1297",
      "r1299",
      "r1301",
      "r1302",
      "r1303"
     ]
    },
    "us-gaap_OtherInventoryPurchasedGoods": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherInventoryPurchasedGoods",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Inventory, Purchased Goods, Gross",
        "label": "Other Inventory, Purchased Goods, Gross",
        "documentation": "Gross amount of components used by the entity which are bought from another entity rather than produced by the entity."
       }
      }
     },
     "auth_ref": [
      "r1232"
     ]
    },
    "us-gaap_OtherLiabilitiesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherLiabilitiesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Liabilities Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherLiabilitiesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other liabilities",
        "label": "Other Liabilities, Noncurrent",
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r94"
     ]
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other income (expense)",
        "label": "Other Nonoperating Income (Expense)",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r120"
     ]
    },
    "ecd_OtherPerfMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OtherPerfMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Performance Measure, Amount",
        "label": "Other Performance Measure, Amount"
       }
      }
     },
     "auth_ref": [
      "r1157"
     ]
    },
    "ecd_OutstandingAggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingAggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount",
        "label": "Outstanding Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1118",
      "r1129",
      "r1139",
      "r1172"
     ]
    },
    "ecd_OutstandingRecoveryCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingRecoveryCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Amount",
        "label": "Outstanding Recovery Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1121",
      "r1132",
      "r1142",
      "r1175"
     ]
    },
    "ecd_OutstandingRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "OutstandingRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Outstanding Recovery, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r1121",
      "r1132",
      "r1142",
      "r1175"
     ]
    },
    "ecd_PayVsPerformanceDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PayVsPerformanceDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1146"
     ]
    },
    "us-gaap_PayablesAndAccrualsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PayablesAndAccrualsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payables and Accruals [Abstract]",
        "label": "Payables and Accruals [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repurchase of common stock",
        "label": "Payments for Repurchase of Common Stock",
        "documentation": "The cash outflow to reacquire common stock during the period."
       }
      }
     },
     "auth_ref": [
      "r125"
     ]
    },
    "us-gaap_PaymentsOfDividends": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsOfDividends",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payments of dividends",
        "label": "Payments of Dividends",
        "documentation": "Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests."
       }
      }
     },
     "auth_ref": [
      "r125"
     ]
    },
    "us-gaap_PaymentsOfDividendsCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsOfDividendsCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Payment of dividends",
        "label": "Payments of Ordinary Dividends, Common Stock",
        "documentation": "Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity."
       }
      }
     },
     "auth_ref": [
      "r125"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash used to fund tax payments",
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r287"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireBusinessesGross",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid in purchase price",
        "label": "Payments to Acquire Businesses, Gross",
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price."
       }
      }
     },
     "auth_ref": [
      "r31",
      "r655"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Net payments related to business acquisitions (Note 21)",
        "terseLabel": "Payments related to business acquisitions",
        "label": "Payments to Acquire Businesses, Net of Cash Acquired",
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase."
       }
      }
     },
     "auth_ref": [
      "r31"
     ]
    },
    "us-gaap_PaymentsToAcquireInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquireInvestments",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchases of investments",
        "label": "Payments to Acquire Investments",
        "documentation": "The cash outflow associated with the purchase of all investments (debt, security, other) during the period."
       }
      }
     },
     "auth_ref": [
      "r123"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchases of property, plant, and equipment",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "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."
       }
      }
     },
     "auth_ref": [
      "r124"
     ]
    },
    "ecd_PeerGroupIssuersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeerGroupIssuersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Peer Group Issuers, Footnote",
        "label": "Peer Group Issuers, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1156"
     ]
    },
    "ecd_PeerGroupTotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeerGroupTotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Peer Group Total Shareholder Return Amount",
        "label": "Peer Group Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r1156"
     ]
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlan"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Savings Plan",
        "label": "Retirement Benefits [Text Block]",
        "documentation": "The entire disclosure for retirement benefits."
       }
      }
     },
     "auth_ref": [
      "r535",
      "r536",
      "r537",
      "r543",
      "r544",
      "r545",
      "r546",
      "r547",
      "r548",
      "r549",
      "r550",
      "r551",
      "r552",
      "r1044"
     ]
    },
    "ecd_PeoActuallyPaidCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoActuallyPaidCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Actually Paid Compensation Amount",
        "label": "PEO Actually Paid Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1148"
     ]
    },
    "ecd_PeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO",
        "label": "PEO [Member]"
       }
      }
     },
     "auth_ref": [
      "r1165"
     ]
    },
    "ecd_PeoName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Name",
        "label": "PEO Name"
       }
      }
     },
     "auth_ref": [
      "r1158"
     ]
    },
    "ecd_PeoTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PeoTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Total Compensation Amount",
        "label": "PEO Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r1147"
     ]
    },
    "us-gaap_PerformanceSharesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PerformanceSharesMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance Shares",
        "label": "Performance Shares [Member]",
        "documentation": "Share-based payment arrangement awarded for meeting performance target."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name [Axis]",
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1324",
      "r1325",
      "r1326",
      "r1327",
      "r1328",
      "r1329",
      "r1330",
      "r1331",
      "r1332",
      "r1333",
      "r1334",
      "r1335",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340",
      "r1341",
      "r1342",
      "r1343",
      "r1344",
      "r1345",
      "r1346",
      "r1347",
      "r1348",
      "r1349"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name [Domain]",
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1324",
      "r1325",
      "r1326",
      "r1327",
      "r1328",
      "r1329",
      "r1330",
      "r1331",
      "r1332",
      "r1333",
      "r1334",
      "r1335",
      "r1336",
      "r1337",
      "r1338",
      "r1339",
      "r1340",
      "r1341",
      "r1342",
      "r1343",
      "r1344",
      "r1345",
      "r1346",
      "r1347",
      "r1348",
      "r1349"
     ]
    },
    "ecd_PnsnAdjsPrrSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnAdjsPrrSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pension Adjustments Prior Service Cost",
        "label": "Pension Adjustments Prior Service Cost [Member]"
       }
      }
     },
     "auth_ref": [
      "r1149"
     ]
    },
    "ecd_PnsnAdjsSvcCstMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnAdjsSvcCstMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pension Adjustments Service Cost",
        "label": "Pension Adjustments Service Cost [Member]"
       }
      }
     },
     "auth_ref": [
      "r1205"
     ]
    },
    "ecd_PnsnBnftsAdjFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PnsnBnftsAdjFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pension Benefits Adjustments, Footnote",
        "label": "Pension Benefits Adjustments, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1148"
     ]
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockParOrStatedValuePerShare",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock par value (in dollars per share)",
        "label": "Preferred Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r505"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Authorized shares (in shares)",
        "label": "Preferred Stock, Shares Authorized",
        "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."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r906"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares issued (in shares)",
        "label": "Preferred Stock, Shares Issued",
        "documentation": "Number of shares issued for nonredeemable preferred shares and preferred shares redeemable solely at option of issuer. Includes, but is not limited to, preferred shares issued, repurchased, and held as treasury shares. Excludes preferred shares classified as debt."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r505"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares outstanding (in shares)",
        "label": "Preferred Stock, Shares Outstanding",
        "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."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r906",
      "r925",
      "r1440",
      "r1441"
     ]
    },
    "us-gaap_PreferredStockValueOutstanding": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PreferredStockValueOutstanding",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, $0.01 par value - Authorized: 400 shares in 2024 and 2023, respectively, no shares issued and outstanding",
        "label": "Preferred Stock, Value, Outstanding",
        "documentation": "Value of nonredeemable preferred shares and preferred shares redeemable solely at option of issuer, held by shareholders. Excludes preferred shares repurchased and held as treasury shares."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r906"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prepaid expenses and other current assets",
        "label": "Prepaid Expense and Other Assets, Current",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1233"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net payments from issuance of common stock under stock plans",
        "label": "Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Including Option Exercised",
        "documentation": "Amount of cash inflow from issuance of shares under share-based payment arrangement. Includes, but is not limited to, option exercised."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r21"
     ]
    },
    "us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromSaleMaturityAndCollectionsOfInvestments",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maturities and sales of investments",
        "label": "Proceeds from Sale, Maturity and Collection of Investments",
        "documentation": "The cash inflow associated with the sale, maturity and collection of all investments such as debt, security and so forth during the period."
       }
      }
     },
     "auth_ref": [
      "r30"
     ]
    },
    "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from Sale of Property, Plant, and Equipment",
        "label": "Proceeds from Sale of Property, Plant, and Equipment",
        "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r122"
     ]
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from Stock Options Exercised",
        "label": "Proceeds from Stock Options Exercised",
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r21"
     ]
    },
    "cgnx_ProductCostOfRevenueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ProductCostOfRevenueMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product cost of revenue [Member]",
        "label": "Product Cost Of Revenue [Member]",
        "documentation": "Product cost of revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProductLiabilityContingencyLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductLiabilityContingencyLineItems",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product Liability Contingency [Line Items]",
        "label": "Product Liability Contingency [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r483",
      "r1309",
      "r1310",
      "r1311"
     ]
    },
    "us-gaap_ProductLiabilityContingencyTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductLiabilityContingencyTable",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product Liability Contingency [Table]",
        "label": "Product Liability Contingency [Table]",
        "documentation": "Disclosure of information about product liability contingency arising from reasonably possible loss from liability related to individual product."
       }
      }
     },
     "auth_ref": [
      "r483",
      "r1309",
      "r1310",
      "r1311"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service [Axis]",
        "label": "Product and Service [Axis]",
        "documentation": "Information by product and service, or group of similar products and similar services."
       }
      }
     },
     "auth_ref": [
      "r212",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r237",
      "r369",
      "r774",
      "r850",
      "r851",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r1001",
      "r1035",
      "r1076",
      "r1078",
      "r1079",
      "r1083",
      "r1084",
      "r1229",
      "r1311",
      "r1312",
      "r1322",
      "r1408",
      "r1410",
      "r1411",
      "r1412",
      "r1413",
      "r1414",
      "r1415",
      "r1416",
      "r1417",
      "r1418",
      "r1419",
      "r1420",
      "r1421",
      "r1422",
      "r1423",
      "r1424",
      "r1425",
      "r1426",
      "r1427",
      "r1428",
      "r1429",
      "r1430",
      "r1431",
      "r1432",
      "r1433",
      "r1434",
      "r1435",
      "r1436",
      "r1437"
     ]
    },
    "us-gaap_ProductWarrantyAccrual": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductWarrantyAccrual",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning Balance",
        "periodEndLabel": "Ending Balance",
        "label": "Standard and Extended Product Warranty Accrual",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers."
       }
      }
     },
     "auth_ref": [
      "r162",
      "r485",
      "r487",
      "r490"
     ]
    },
    "us-gaap_ProductWarrantyAccrualClassifiedCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductWarrantyAccrualClassifiedCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Warranty obligations",
        "label": "Product Warranty Accrual, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r91",
      "r1315",
      "r1316"
     ]
    },
    "us-gaap_ProductWarrantyAccrualPayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductWarrantyAccrualPayments",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Fulfillment of warranty obligations",
        "label": "Standard and Extended Product Warranty Accrual, Decrease for Payments",
        "documentation": "Amount of decrease in the standard and extended product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard and extended product warranty."
       }
      }
     },
     "auth_ref": [
      "r488"
     ]
    },
    "us-gaap_ProductWarrantyAccrualWarrantiesIssued": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProductWarrantyAccrualWarrantiesIssued",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Provisions for warranties issued during the period",
        "label": "Standard and Extended Product Warranty Accrual, Increase for Warranties Issued",
        "documentation": "Amount of increase in the standard and extended product warranty accrual from warranties issued."
       }
      }
     },
     "auth_ref": [
      "r489"
     ]
    },
    "cgnx_ProductWarrantyPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ProductWarrantyPeriod",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product Warranty Period",
        "label": "Product Warranty Period",
        "documentation": "Product warranty period."
       }
      }
     },
     "auth_ref": []
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service [Domain]",
        "label": "Product and Service [Domain]",
        "documentation": "Product or service, or a group of similar products or similar services."
       }
      }
     },
     "auth_ref": [
      "r212",
      "r213",
      "r214",
      "r215",
      "r216",
      "r217",
      "r237",
      "r369",
      "r774",
      "r850",
      "r851",
      "r852",
      "r853",
      "r854",
      "r855",
      "r856",
      "r1001",
      "r1035",
      "r1076",
      "r1078",
      "r1079",
      "r1083",
      "r1084",
      "r1229",
      "r1311",
      "r1312",
      "r1322",
      "r1408",
      "r1410",
      "r1411",
      "r1412",
      "r1413",
      "r1414",
      "r1415",
      "r1416",
      "r1417",
      "r1418",
      "r1419",
      "r1420",
      "r1421",
      "r1422",
      "r1423",
      "r1424",
      "r1425",
      "r1426",
      "r1427",
      "r1428",
      "r1429",
      "r1430",
      "r1431",
      "r1432",
      "r1433",
      "r1434",
      "r1435",
      "r1436",
      "r1437"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment [Abstract]",
        "label": "Property, Plant and Equipment [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Type [Axis]",
        "label": "Long-Lived Tangible Asset [Axis]",
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r728"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipment"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant, and Equipment",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r133",
      "r186",
      "r190",
      "r191"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisposals": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentDisposals",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disposals in period",
        "label": "Property, Plant and Equipment, Disposals",
        "documentation": "Amount of divestiture of long-lived, 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, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant and equipment, gross",
        "label": "Property, Plant and Equipment, Gross",
        "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."
       }
      }
     },
     "auth_ref": [
      "r134",
      "r250",
      "r828"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentLineItems",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment [Line Items]",
        "label": "Property, Plant and Equipment [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r728"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      },
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant, and equipment, net",
        "totalLabel": "Property, plant and equipment, net, total",
        "label": "Property, Plant and Equipment, Net",
        "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."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r728",
      "r817",
      "r828",
      "r1066"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant, and Equipment",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r186",
      "r190",
      "r826"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant, and Equipment",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r13"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Type [Domain]",
        "label": "Long-Lived Tangible Asset [Domain]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r134",
      "r728"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Useful Life",
        "label": "Property, Plant and Equipment, Useful Life",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ProvisionForDoubtfulAccounts",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increases to the allowance for credit losses",
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r286",
      "r419"
     ]
    },
    "us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "PurchaseCommitmentRemainingMinimumAmountCommitted",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Purchase order outstanding",
        "label": "Purchase Commitment, Remaining Minimum Amount Committed",
        "documentation": "Minimum amount to be expended to satisfy the terms of arrangements in which the entity has agreed to expend funds to procure goods or services, excluding long-term purchase commitments or unconditional purchase obligations."
       }
      }
     },
     "auth_ref": [
      "r95",
      "r163"
     ]
    },
    "ecd_PvpTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PvpTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pay vs Performance Disclosure",
        "label": "Pay vs Performance Disclosure [Table]"
       }
      }
     },
     "auth_ref": [
      "r1146"
     ]
    },
    "ecd_PvpTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "PvpTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pay vs Performance Disclosure, Table",
        "label": "Pay vs Performance [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1146"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeAxis",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Range [Axis]",
        "label": "Statistical Measurement [Axis]",
        "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r203",
      "r205",
      "r207",
      "r208",
      "r210",
      "r239",
      "r240",
      "r481",
      "r482",
      "r483",
      "r484",
      "r536",
      "r553",
      "r585",
      "r586",
      "r587",
      "r599",
      "r683",
      "r743",
      "r752",
      "r768",
      "r857",
      "r859",
      "r869",
      "r896",
      "r897",
      "r952",
      "r956",
      "r958",
      "r959",
      "r975",
      "r996",
      "r997",
      "r1028",
      "r1034",
      "r1047",
      "r1058",
      "r1059",
      "r1063",
      "r1064",
      "r1078",
      "r1087",
      "r1306",
      "r1319",
      "r1377",
      "r1400",
      "r1401",
      "r1402",
      "r1403",
      "r1404"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "RangeMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Range [Domain]",
        "label": "Statistical Measurement [Domain]",
        "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r203",
      "r205",
      "r207",
      "r208",
      "r210",
      "r239",
      "r240",
      "r481",
      "r482",
      "r483",
      "r484",
      "r536",
      "r553",
      "r585",
      "r586",
      "r587",
      "r599",
      "r683",
      "r743",
      "r752",
      "r768",
      "r857",
      "r859",
      "r869",
      "r896",
      "r897",
      "r952",
      "r956",
      "r958",
      "r959",
      "r975",
      "r996",
      "r997",
      "r1028",
      "r1034",
      "r1047",
      "r1058",
      "r1059",
      "r1063",
      "r1064",
      "r1078",
      "r1087",
      "r1306",
      "r1319",
      "r1377",
      "r1400",
      "r1401",
      "r1402",
      "r1403",
      "r1404"
     ]
    },
    "us-gaap_RealizedGainLossOnInvestmentsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RealizedGainLossOnInvestmentsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Realized Gain (Loss) on Investments",
        "label": "Realized Gain (Loss) on Investments [Table Text Block]",
        "documentation": "Tabular disclosure of realized gains and losses on investments reported in the statement of income."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RealizedInvestmentGainsLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RealizedInvestmentGainsLosses",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net realized gains (losses)",
        "label": "Realized Investment Gains (Losses)",
        "documentation": "Amount of realized gain (loss) on investment."
       }
      }
     },
     "auth_ref": [
      "r836"
     ]
    },
    "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized Tax Benefits [Roll Forward]",
        "label": "Unrecognized Tax Benefits [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_RecoveryOfErrCompDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RecoveryOfErrCompDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1113",
      "r1124",
      "r1134",
      "r1167"
     ]
    },
    "cgnx_RepurchaseProgramMarch2020Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "RepurchaseProgramMarch2020Member",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchase Program March 2020 [Member]",
        "label": "Repurchase Program March 2020 [Member]",
        "documentation": "Repurchase Program March 2020"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_RepurchaseProgramMarch2022Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "RepurchaseProgramMarch2022Member",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchase Program March 2022",
        "label": "Repurchase Program March 2022 [Member]",
        "documentation": "Repurchase Program March 2022"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      },
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research, development, and engineering expenses",
        "totalLabel": "Research, development, and engineering expenses",
        "label": "Research and Development Expense",
        "documentation": "Amount of expense for research and development. Includes, but is not limited to, cost for computer software product to be sold, leased, or otherwise marketed and writeoff of research and development assets acquired in transaction other than business combination or joint venture formation or both. Excludes write-down of intangible asset acquired in business combination or from joint venture formation or both, used in research and development activity."
       }
      }
     },
     "auth_ref": [
      "r601",
      "r999",
      "r1023",
      "r1405"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchAndDevelopmentExpenseMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research, development, and engineering expenses",
        "label": "Research and Development Expense [Member]",
        "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development",
        "label": "Research, Development, and Computer Software, Policy [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1304",
      "r1352",
      "r1447"
     ]
    },
    "cgnx_ResearchDevelopmentAndEngineeringExpensesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ResearchDevelopmentAndEngineeringExpensesMember",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research, Development and Engineering Expenses",
        "label": "Research, Development and Engineering Expenses [Member]",
        "documentation": "Research, Development and Engineering Expenses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ResearchMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research Tax Credit Carryforward [Member]",
        "label": "Research Tax Credit Carryforward [Member]",
        "documentation": "Research tax credit carryforwards arising from certain qualifying expenditures incurred to develop new products and processes."
       }
      }
     },
     "auth_ref": [
      "r1360"
     ]
    },
    "ecd_RestatementDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RestatementDateAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement Determination Date:",
        "label": "Restatement Determination Date [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1114",
      "r1125",
      "r1135",
      "r1168"
     ]
    },
    "ecd_RestatementDeterminationDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RestatementDeterminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement Determination Date",
        "label": "Restatement Determination Date"
       }
      }
     },
     "auth_ref": [
      "r1115",
      "r1126",
      "r1136",
      "r1169"
     ]
    },
    "ecd_RestatementDoesNotRequireRecoveryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "RestatementDoesNotRequireRecoveryTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement does not require Recovery",
        "label": "Restatement Does Not Require Recovery [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1122",
      "r1133",
      "r1143",
      "r1176"
     ]
    },
    "us-gaap_RestrictedStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedStockMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock [Member]",
        "label": "Restricted Stock [Member]",
        "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock Units (RSUs) [Member]",
        "label": "Restricted Stock Units (RSUs) [Member]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RestructuringCharges",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Charges",
        "label": "Restructuring Charges",
        "documentation": "Amount of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r475",
      "r476",
      "r1307"
     ]
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retained earnings",
        "label": "Retained Earnings (Accumulated Deficit)",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r100",
      "r142",
      "r824",
      "r864",
      "r868",
      "r880",
      "r907",
      "r1066"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retained Earnings [Member]",
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r241",
      "r304",
      "r305",
      "r306",
      "r310",
      "r317",
      "r319",
      "r321",
      "r411",
      "r414",
      "r469",
      "r638",
      "r639",
      "r646",
      "r647",
      "r648",
      "r652",
      "r656",
      "r657",
      "r665",
      "r667",
      "r668",
      "r671",
      "r675",
      "r717",
      "r719",
      "r861",
      "r863",
      "r882",
      "r1440"
     ]
    },
    "cgnx_RetirementAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "RetirementAllowance",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign retirement obligations",
        "label": "Retirement Allowance",
        "documentation": "Retirement allowance Japan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueCommissionersIrelandMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueCommissionersIrelandMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Commissioners, Ireland [Member]",
        "label": "Revenue Commissioners, Ireland [Member]",
        "documentation": "Designated tax department of the government of Ireland."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue from Contract with Customer [Abstract]",
        "label": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue",
        "verboseLabel": "Revenue",
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "documentation": "Amount, excluding 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."
       }
      }
     },
     "auth_ref": [
      "r167",
      "r168",
      "r337",
      "r345",
      "r346",
      "r360",
      "r366",
      "r369",
      "r371",
      "r373",
      "r531",
      "r532",
      "r774"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://cognex.com/role/RevenueRecognition"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Recognition",
        "label": "Revenue from Contract with Customer [Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r195",
      "r523",
      "r524",
      "r525",
      "r526",
      "r527",
      "r528",
      "r529",
      "r530",
      "r534"
     ]
    },
    "cgnx_RevenuePaymentTerms": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "RevenuePaymentTerms",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, payment terms",
        "label": "Revenue, Payment Terms",
        "documentation": "Revenue, Payment Terms"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRecognitionAndDeferredRevenueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRecognitionAndDeferredRevenueAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue Recognition and Deferred Revenue [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenueRecognitionPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Recognition",
        "label": "Revenue [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources."
       }
      }
     },
     "auth_ref": [
      "r928",
      "r1000",
      "r1014"
     ]
    },
    "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "label": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 10b5-1 Arrangement Adopted",
        "label": "Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1185"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 10b5-1 Arrangement Terminated",
        "label": "Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1185"
     ]
    },
    "cgnx_SACSiriusAdvancedCyberneticsGmbHMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "SACSiriusAdvancedCyberneticsGmbHMember",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SAC Sirius Advanced Cybernetics GmbH",
        "label": "SAC Sirius Advanced Cybernetics GmbH [Member]",
        "documentation": "SAC Sirius Advanced Cybernetics GmbH"
       }
      }
     },
     "auth_ref": []
    },
    "country_SG": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "SG",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SINGAPORE",
        "label": "SINGAPORE"
       }
      }
     },
     "auth_ref": []
    },
    "currency_SGD": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2024",
     "localname": "SGD",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Singapore Dollar [Member]",
        "label": "Singapore, Dollars"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesReturnsAndAllowancesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SalesReturnsAndAllowancesMember",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sales Returns and Allowances [Member]",
        "label": "Sales Returns and Allowances [Member]",
        "documentation": "A revision in the estimated reserve needed for product returns and price or other concessions granted to customers."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesRevenueNetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SalesRevenueNetMember",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total Revenue",
        "label": "Revenue Benchmark [Member]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r373",
      "r1212"
     ]
    },
    "srt_ScenarioForecastMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ScenarioForecastMember",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forecast",
        "label": "Forecast [Member]",
        "documentation": "Information reported for future period. Excludes information expected to be reported in future period for effect on historical fact."
       }
      }
     },
     "auth_ref": [
      "r554",
      "r1222",
      "r1255"
     ]
    },
    "srt_ScenarioUnspecifiedDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ScenarioUnspecifiedDomain",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Scenario, Unspecified [Domain]",
        "label": "Scenario [Domain]",
        "documentation": "Scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts."
       }
      }
     },
     "auth_ref": [
      "r238",
      "r322",
      "r554",
      "r1209",
      "r1255"
     ]
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Constituents of Accrued Expenses",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Security, Excluded EPS Calculation [Table]",
        "label": "Antidilutive Security, Excluded EPS Calculation [Table]",
        "documentation": "Disclosure of information about security that could potentially dilute basic earnings per share (EPS) in future that was not included in calculation of diluted EPS."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAvailableForSaleSecuritiesLineItems",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Securities, Available-for-sale [Line Items]",
        "label": "Debt Securities, Available-for-Sale [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389"
     ]
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Available-for-Sale Investments",
        "label": "Schedule of Available-for-Sale Securities Reconciliation [Table Text Block]",
        "documentation": "Tabular disclosure of the reconciliation of available-for-sale securities from cost basis to fair value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Business Acquisitions, by Acquisition [Table]",
        "label": "Schedule of Business Acquisitions, by Acquisition [Table]",
        "documentation": "Disclosure of information about business combination. Includes, but is not limited to, recognized asset and liability."
       }
      }
     },
     "auth_ref": [
      "r64",
      "r65",
      "r653"
     ]
    },
    "us-gaap_ScheduleOfCashAndCashEquivalentsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfCashAndCashEquivalentsTable",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalent [Table]",
        "label": "Cash and Cash Equivalent [Table]",
        "documentation": "Disclosure of information about cash and cash equivalent by type. Excludes restricted cash and cash equivalent."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Constituents of Provision for Income Taxes",
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1362"
     ]
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Constituents of Deferred Tax Assets",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1358"
     ]
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments, Gain (Loss)",
        "label": "Derivative Instruments, Gain (Loss) [Table Text Block]",
        "documentation": "Tabular disclosure of the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments."
       }
      }
     },
     "auth_ref": [
      "r78",
      "r80",
      "r663"
     ]
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Derivative Instruments in Statement of Financial Position, Fair Value",
        "label": "Schedule of Derivative Instruments in Statement of Financial Position, Fair Value [Table Text Block]",
        "documentation": "Tabular disclosure of the location and fair value amounts of derivative instruments (and nonderivative instruments that are designated and qualify as hedging instruments) reported in the statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r79"
     ]
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reconciliation of the United States Federal Statutory Corporate Tax Rate to the Company's Effective Tax Rate or Income Tax Provision",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r612",
      "r1052",
      "r1353"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]",
        "documentation": "Disclosure of information about amount recognized for award under share-based payment arrangement. Includes, but is not limited to, amount expensed in statement of income or comprehensive income, amount capitalized in statement of financial position, and corresponding reporting line item in financial statements."
       }
      }
     },
     "auth_ref": [
      "r61"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-Based Compensation Expense",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r61"
     ]
    },
    "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assets and Liabilities Measured at Fair Value on a Recurring Basis",
        "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]",
        "documentation": "Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, 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)."
       }
      }
     },
     "auth_ref": [
      "r1374",
      "r1375"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible Asset, Finite-Lived [Table]",
        "label": "Intangible Asset, Finite-Lived [Table]",
        "documentation": "Disclosure of information about finite-lived intangible asset. Excludes indefinite-lived intangible asset."
       }
      }
     },
     "auth_ref": [
      "r453",
      "r460",
      "r463",
      "r464",
      "r466",
      "r775",
      "r999",
      "r1031"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortized Intangible Assets",
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment."
       }
      }
     },
     "auth_ref": [
      "r1031",
      "r1298"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfGoodwillTable",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill [Table]",
        "label": "Goodwill [Table]",
        "documentation": "Disclosure of information about goodwill, including, but not limited to, change from acquisition, sale, impairment, and other reason."
       }
      }
     },
     "auth_ref": [
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r451",
      "r1030"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfGoodwillTextBlock",
     "presentation": [
      "http://cognex.com/role/GoodwillTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in the Carrying Value of Goodwill",
        "label": "Schedule of Goodwill [Table Text Block]",
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule."
       }
      }
     },
     "auth_ref": [
      "r1030",
      "r1280",
      "r1281",
      "r1282",
      "r1283",
      "r1284",
      "r1285",
      "r1286",
      "r1287",
      "r1288",
      "r1289",
      "r1290"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://cognex.com/role/InventoriesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r104",
      "r105",
      "r106"
     ]
    },
    "us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Notional Amounts of Outstanding Derivative Positions",
        "label": "Schedule of Notional Amounts of Outstanding Derivative Positions [Table Text Block]",
        "documentation": "Tabular disclosure of the notional amounts of outstanding derivative positions."
       }
      }
     },
     "auth_ref": [
      "r74"
     ]
    },
    "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in Warranty Obligations",
        "label": "Schedule of Product Warranty Liability [Table Text Block]",
        "documentation": "Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability."
       }
      }
     },
     "auth_ref": [
      "r486"
     ]
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment [Table]",
        "label": "Property, Plant and Equipment [Table]",
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r728"
     ]
    },
    "us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed",
        "label": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]",
        "documentation": "Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree."
       }
      }
     },
     "auth_ref": [
      "r152"
     ]
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas",
        "label": "Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas [Table Text Block]",
        "documentation": "Tabular disclosure of information concerning material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries."
       }
      }
     },
     "auth_ref": [
      "r49",
      "r110"
     ]
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "documentation": "Disclosure of information about revenue from external customer and long-lived asset by geographical area. Long-lived asset excludes financial instrument, customer relationship with financial institution, mortgage and other servicing right, deferred policy acquisition cost, and deferred tax asset."
       }
      }
     },
     "auth_ref": [
      "r49",
      "r110"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTable",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Segment Reporting Information, by Segment [Table]",
        "label": "Schedule of Segment Reporting Information, by Segment [Table]",
        "documentation": "Disclosure of information about profit (loss) and total assets by reportable segment."
       }
      }
     },
     "auth_ref": [
      "r46",
      "r47",
      "r48"
     ]
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Segment Reporting Information, by Segment",
        "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]",
        "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss."
       }
      }
     },
     "auth_ref": [
      "r46",
      "r47",
      "r48"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r556",
      "r558",
      "r560",
      "r561",
      "r562",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r581",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table]",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement by range of exercise prices."
       }
      }
     },
     "auth_ref": [
      "r60"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Stock Option Activity",
        "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r19",
      "r20",
      "r144"
     ]
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted",
        "label": "Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r146"
     ]
    },
    "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Performance Restricted Stock Units",
        "label": "Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]",
        "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfStockByClassTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfStockByClassTable",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock, Class of Stock [Table]",
        "label": "Stock, Class of Stock [Table]",
        "documentation": "Disclosure of information about stock by class. Includes, but is not limited to, common, convertible, and preferred stocks."
       }
      }
     },
     "auth_ref": [
      "r53",
      "r54",
      "r55",
      "r56",
      "r57",
      "r58",
      "r138",
      "r140",
      "r141",
      "r142",
      "r256",
      "r257",
      "r258",
      "r339",
      "r505",
      "r506",
      "r507",
      "r509",
      "r512",
      "r517",
      "r519",
      "r876",
      "r877",
      "r878",
      "r879",
      "r1034",
      "r1208",
      "r1242"
     ]
    },
    "us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross Unrealized Losses and Fair Value for Available-for-Sale Investments",
        "label": "Schedule of Unrealized Loss on Investments [Table Text Block]",
        "documentation": "For all investments in an unrealized loss position, including those for which other-than-temporary impairments have not been recognized in earnings (including investments for which a portion of an other-than-temporary impairment has been recognized in other comprehensive income), a tabular disclosure of the aggregate related fair value of investments with unrealized losses and the aggregate amount of unrealized losses (that is, the amount by which amortized cost basis exceeds fair value)."
       }
      }
     },
     "auth_ref": [
      "r175"
     ]
    },
    "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Unrecognized Tax Benefits Roll Forward",
        "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]",
        "documentation": "Tabular disclosure of the change in unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r623",
      "r1051"
     ]
    },
    "srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule II - Valuation and Qualifying Accounts",
        "label": "SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]",
        "documentation": "The entire disclosure for valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r202",
      "r303"
     ]
    },
    "us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Calculation of Weighted Average Shares",
        "label": "Schedule of Weighted Average Number of Shares [Table Text Block]",
        "documentation": "Tabular disclosure of the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit)."
       }
      }
     },
     "auth_ref": [
      "r36"
     ]
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated Amortization Expense Succeeding Fiscal Years",
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r1031",
      "r1300"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "Security12bTitle",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of 12(b) Security",
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r1096"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Exchange Name",
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r1098"
     ]
    },
    "us-gaap_SegmentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentDomain",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments [Domain]",
        "label": "Segments [Domain]",
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": [
      "r167",
      "r168",
      "r169",
      "r170",
      "r337",
      "r341",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r354",
      "r355",
      "r357",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r366",
      "r367",
      "r368",
      "r373",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r466",
      "r474",
      "r477",
      "r839",
      "r840",
      "r841",
      "r842",
      "r843",
      "r844",
      "r845",
      "r846",
      "r847",
      "r848",
      "r849",
      "r1020",
      "r1023",
      "r1024",
      "r1030",
      "r1081",
      "r1408",
      "r1410",
      "r1411",
      "r1412",
      "r1413",
      "r1414",
      "r1415",
      "r1416",
      "r1417",
      "r1418",
      "r1419",
      "r1420",
      "r1421",
      "r1422",
      "r1423",
      "r1424",
      "r1425",
      "r1426",
      "r1427",
      "r1428",
      "r1429",
      "r1430",
      "r1431",
      "r1432",
      "r1433",
      "r1434",
      "r1435",
      "r1436",
      "r1437"
     ]
    },
    "cgnx_SegmentGeneralAndEngineeringExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "SegmentGeneralAndEngineeringExpenseMember",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment, General, And Engineering Expense",
        "label": "Segment, General, And Engineering Expense [Member]",
        "documentation": "Segment, General, And Engineering Expense"
       }
      }
     },
     "auth_ref": []
    },
    "srt_SegmentGeographicalDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "SegmentGeographicalDomain",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical [Domain]",
        "label": "Geographical [Domain]",
        "documentation": "Geographical area."
       }
      }
     },
     "auth_ref": [
      "r204",
      "r206",
      "r209",
      "r211",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r371",
      "r372",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795",
      "r796",
      "r797",
      "r798",
      "r799",
      "r800",
      "r801",
      "r802",
      "r803",
      "r804",
      "r805",
      "r806",
      "r807",
      "r808",
      "r809",
      "r887",
      "r891",
      "r893",
      "r953",
      "r957",
      "r961",
      "r976",
      "r983",
      "r987",
      "r988",
      "r989",
      "r990",
      "r991",
      "r992",
      "r993",
      "r994",
      "r995",
      "r1002",
      "r1036",
      "r1068",
      "r1069",
      "r1070",
      "r1071",
      "r1072",
      "r1073",
      "r1074",
      "r1075",
      "r1080",
      "r1087",
      "r1322",
      "r1408",
      "r1410",
      "r1411",
      "r1413",
      "r1414",
      "r1415",
      "r1416",
      "r1417",
      "r1418",
      "r1419",
      "r1420",
      "r1421",
      "r1422",
      "r1423",
      "r1424",
      "r1425",
      "r1426",
      "r1427",
      "r1428",
      "r1429",
      "r1430",
      "r1431",
      "r1432",
      "r1433",
      "r1434",
      "r1435",
      "r1436",
      "r1437"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting [Abstract]",
        "label": "Segment Reporting [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment and Geographic Information",
        "label": "Segment Reporting Disclosure [Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r170",
      "r337",
      "r340",
      "r341",
      "r342",
      "r343",
      "r344",
      "r356",
      "r358",
      "r359",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r373",
      "r1019",
      "r1021",
      "r1022",
      "r1023",
      "r1025",
      "r1026",
      "r1027"
     ]
    },
    "us-gaap_SegmentReportingInformationLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SegmentReportingInformationLineItems",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting Information [Line Items]",
        "label": "Segment Reporting Information [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SellingGeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 4.0
      },
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Selling, general, and administrative expenses",
        "totalLabel": "Selling, general, and administrative expenses",
        "label": "Selling, General and Administrative Expense",
        "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."
       }
      }
     },
     "auth_ref": [
      "r117"
     ]
    },
    "cgnx_SellingGeneralAndAdministrativeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "SellingGeneralAndAdministrativeMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Selling, general, and administrative [Member]",
        "label": "Selling General And Administrative [Member]",
        "documentation": "Selling, general, and administrative."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting period for stock option plans",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period",
        "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."
       }
      }
     },
     "auth_ref": [
      "r1048"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Forfeited or expired",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r577"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forfeited or expired, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "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."
       }
      }
     },
     "auth_ref": [
      "r577"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r575"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r575"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Nonvested beginning balance outstanding",
        "periodEndLabel": "Nonvested ending balance outstanding",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "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."
       }
      }
     },
     "auth_ref": [
      "r572",
      "r573"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Nonvested beginning balance, weighted-average exercise price",
        "periodEndLabel": "Nonvested ending balance, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r572",
      "r573"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-Average Grant Fair Value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vested (in shares)",
        "negatedTerseLabel": "Vested",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r576"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vested, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "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."
       }
      }
     },
     "auth_ref": [
      "r576"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected dividend yield",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate",
        "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."
       }
      }
     },
     "auth_ref": [
      "r586"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected volatility",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate",
        "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."
       }
      }
     },
     "auth_ref": [
      "r585"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Risk-free rate",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate",
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares."
       }
      }
     },
     "auth_ref": [
      "r587"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r556",
      "r558",
      "r560",
      "r561",
      "r562",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r581",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized",
        "documentation": "Number of additional shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized",
        "documentation": "Number of shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1049"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares available for grant under stock option plans",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant",
        "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."
       }
      }
     },
     "auth_ref": [
      "r60"
     ]
    },
    "cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable, aggregate intrinsic value",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Aggregate Intrinsic Value",
        "documentation": "Share based compensation arrangement by share based payment award options exercisable aggregate intrinsic value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable, Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "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."
       }
      }
     },
     "auth_ref": [
      "r566"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price",
        "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."
       }
      }
     },
     "auth_ref": [
      "r566"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Forfeited or expired",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period",
        "documentation": "For presentations that combine terminations, 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 or that expired."
       }
      }
     },
     "auth_ref": [
      "r1330"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forfeited or expired, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price of options that were either forfeited or expired."
       }
      }
     },
     "auth_ref": [
      "r1330"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Net of Forfeitures",
        "documentation": "Net number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r1331"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average grant-date fair values of stock options granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology."
       }
      }
     },
     "auth_ref": [
      "r578"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding, aggregate intrinsic value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding."
       }
      }
     },
     "auth_ref": [
      "r60"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning balance outstanding",
        "periodEndLabel": "Ending balance outstanding",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r564",
      "r565"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning balance outstanding, weighted-average exercise price",
        "periodEndLabel": "Ending balance outstanding, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r564",
      "r565"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested or expected to vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number",
        "documentation": "Number of fully vested and expected to vest exercisable options that may be converted into shares under option plan. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r581"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested or expected to vest, aggregate intrinsic value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value",
        "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."
       }
      }
     },
     "auth_ref": [
      "r580"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested or expected to vest, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price",
        "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."
       }
      }
     },
     "auth_ref": [
      "r580"
     ]
    },
    "cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total fair values of stock options vested",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Vested Fair Value",
        "documentation": "Share based compensation arrangement by share based payment award options vested fair value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Award [Domain]",
        "label": "Award Type [Domain]",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r560",
      "r561",
      "r562",
      "r564",
      "r565",
      "r566",
      "r567",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r574",
      "r575",
      "r576",
      "r577",
      "r578",
      "r579",
      "r580",
      "r581",
      "r584",
      "r585",
      "r586",
      "r587",
      "r588"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercised, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r569"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r568"
     ]
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-Based Compensation",
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r555",
      "r563",
      "r582",
      "r583",
      "r584",
      "r585",
      "r588",
      "r594",
      "r595",
      "r596",
      "r597"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "srt_ShareRepurchaseProgramAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ShareRepurchaseProgramAxis",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share Repurchase Program [Axis]",
        "label": "Share Repurchase Program [Axis]",
        "documentation": "Information by share repurchase program."
       }
      }
     },
     "auth_ref": [
      "r1320"
     ]
    },
    "srt_ShareRepurchaseProgramDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ShareRepurchaseProgramDomain",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share Repurchase Program [Domain]",
        "label": "Share Repurchase Program [Domain]",
        "documentation": "Name of share repurchase program."
       }
      }
     },
     "auth_ref": [
      "r1320"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected term (in years)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term",
        "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."
       }
      }
     },
     "auth_ref": [
      "r584"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable, weighted-average remaining contractual term (in years)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term",
        "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."
       }
      }
     },
     "auth_ref": [
      "r60"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding, weighted-average remaining contractual term (in years)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term",
        "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."
       }
      }
     },
     "auth_ref": [
      "r145"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested or expected to vest, weighted-average remaining contractual term (in years)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term",
        "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."
       }
      }
     },
     "auth_ref": [
      "r580"
     ]
    },
    "us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShareholdersEquityAndShareBasedPaymentsTextBlock",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shareholders' Equity",
        "label": "Shareholders' Equity and Share-Based Payments [Text Block]",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r139",
      "r143"
     ]
    },
    "cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total intrinsic values of stock options exercised",
        "label": "Shares Based Compensation Arrangement By Shares Based Payment Award Options Exercised Intrinsic Value",
        "documentation": "Shares based compensation arrangement by shares based payment award options exercised intrinsic value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShortTermInvestmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ShortTermInvestmentsMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-term Investments [Member]",
        "label": "Short-Term Investments [Member]",
        "documentation": "Investments which are not otherwise included in another category or item that the entity has the intent to sell or dispose of within one year from the date of the balance sheet."
       }
      }
     },
     "auth_ref": [
      "r978",
      "r979",
      "r980",
      "r1003"
     ]
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Significant Accounting Policies",
        "label": "Significant Accounting Policies [Text Block]",
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r129",
      "r291"
     ]
    },
    "cgnx_SovereignBondsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "SovereignBondsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sovereign bonds",
        "label": "Sovereign Bonds Fair Value Disclosure",
        "documentation": "Sovereign bonds fair value disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SovereignDebtSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SovereignDebtSecuritiesMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sovereign Bonds [Member]",
        "label": "Sovereign Debt Securities [Member]",
        "documentation": "Debt security issued by foreign government (not within the country of domicile of the entity)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign exchange rate changes",
        "label": "Standard and Extended Product Warranty Accrual, Foreign Currency Translation Gain (Loss)",
        "documentation": "Amount of foreign currency translation gain (loss) which decreases (increases) the standard and extended product warranty accrual."
       }
      }
     },
     "auth_ref": [
      "r1314"
     ]
    },
    "us-gaap_StandardProductWarrantyPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StandardProductWarrantyPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Warranty Obligations",
        "label": "Standard Product Warranty, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for standard warranties including the methodology for measuring the liability."
       }
      }
     },
     "auth_ref": [
      "r1313"
     ]
    },
    "cgnx_StandardProductandServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "StandardProductandServicesMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Standard products and services",
        "label": "Standard Product and Services [Member]",
        "documentation": "Standard Product and Services [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StateAdministrationOfTaxationChinaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StateAdministrationOfTaxationChinaMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State Administration of Taxation, China [Member]",
        "label": "State Administration of Taxation, China [Member]",
        "documentation": "Designated tax department of the government of China."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementBusinessSegmentsAxis",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segments [Axis]",
        "label": "Segments [Axis]",
        "documentation": "Information by business segments."
       }
      }
     },
     "auth_ref": [
      "r167",
      "r168",
      "r169",
      "r170",
      "r243",
      "r337",
      "r341",
      "r344",
      "r345",
      "r346",
      "r347",
      "r348",
      "r349",
      "r350",
      "r351",
      "r352",
      "r353",
      "r354",
      "r355",
      "r357",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362",
      "r363",
      "r364",
      "r366",
      "r367",
      "r368",
      "r373",
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r466",
      "r471",
      "r474",
      "r477",
      "r839",
      "r840",
      "r841",
      "r842",
      "r843",
      "r844",
      "r845",
      "r846",
      "r847",
      "r848",
      "r849",
      "r1020",
      "r1023",
      "r1024",
      "r1030",
      "r1081",
      "r1408",
      "r1410",
      "r1411",
      "r1412",
      "r1413",
      "r1414",
      "r1415",
      "r1416",
      "r1417",
      "r1418",
      "r1419",
      "r1420",
      "r1421",
      "r1422",
      "r1423",
      "r1424",
      "r1425",
      "r1426",
      "r1427",
      "r1428",
      "r1429",
      "r1430",
      "r1431",
      "r1432",
      "r1433",
      "r1434",
      "r1435",
      "r1436",
      "r1437"
     ]
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Components [Axis]",
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r98",
      "r101",
      "r102",
      "r241",
      "r281",
      "r282",
      "r283",
      "r304",
      "r305",
      "r306",
      "r310",
      "r317",
      "r319",
      "r321",
      "r338",
      "r411",
      "r414",
      "r469",
      "r520",
      "r638",
      "r639",
      "r646",
      "r647",
      "r648",
      "r652",
      "r656",
      "r657",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669",
      "r671",
      "r675",
      "r709",
      "r710",
      "r711",
      "r712",
      "r713",
      "r715",
      "r717",
      "r719",
      "r731",
      "r831",
      "r861",
      "r862",
      "r863",
      "r882",
      "r946"
     ]
    },
    "srt_StatementGeographicalAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "StatementGeographicalAxis",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical [Axis]",
        "label": "Geographical [Axis]",
        "documentation": "Information by geographical components."
       }
      }
     },
     "auth_ref": [
      "r204",
      "r206",
      "r209",
      "r211",
      "r218",
      "r219",
      "r220",
      "r221",
      "r222",
      "r223",
      "r224",
      "r225",
      "r226",
      "r227",
      "r371",
      "r372",
      "r780",
      "r781",
      "r782",
      "r783",
      "r784",
      "r785",
      "r786",
      "r787",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r794",
      "r795",
      "r796",
      "r797",
      "r798",
      "r799",
      "r800",
      "r801",
      "r802",
      "r803",
      "r804",
      "r805",
      "r806",
      "r807",
      "r808",
      "r809",
      "r887",
      "r891",
      "r893",
      "r953",
      "r957",
      "r961",
      "r976",
      "r983",
      "r987",
      "r988",
      "r989",
      "r990",
      "r991",
      "r992",
      "r993",
      "r994",
      "r995",
      "r1002",
      "r1036",
      "r1068",
      "r1069",
      "r1070",
      "r1071",
      "r1072",
      "r1073",
      "r1074",
      "r1075",
      "r1080",
      "r1087",
      "r1322",
      "r1408",
      "r1410",
      "r1411",
      "r1413",
      "r1414",
      "r1415",
      "r1416",
      "r1417",
      "r1418",
      "r1419",
      "r1420",
      "r1421",
      "r1422",
      "r1423",
      "r1424",
      "r1425",
      "r1426",
      "r1427",
      "r1428",
      "r1429",
      "r1430",
      "r1431",
      "r1432",
      "r1433",
      "r1434",
      "r1435",
      "r1436",
      "r1437"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementLineItems",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Line Items]",
        "label": "Statement [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r304",
      "r305",
      "r306",
      "r338",
      "r719",
      "r774",
      "r871",
      "r884",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r906",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r915",
      "r916",
      "r917",
      "r918",
      "r920",
      "r921",
      "r922",
      "r923",
      "r924",
      "r926",
      "r928",
      "r929",
      "r931",
      "r932",
      "r933",
      "r934",
      "r935",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r946",
      "r1088"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Cash Flows [Abstract]",
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Financial Position [Abstract]",
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Comprehensive Income [Abstract]",
        "label": "Statement of Comprehensive Income [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Stockholders' Equity [Abstract]",
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_StatementScenarioAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "StatementScenarioAxis",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Scenario [Axis]",
        "label": "Scenario [Axis]",
        "documentation": "Information by scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts."
       }
      }
     },
     "auth_ref": [
      "r238",
      "r322",
      "r554",
      "r1209",
      "r1210",
      "r1255"
     ]
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StatementTable",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Table]",
        "label": "Statement [Table]",
        "documentation": "Disclosure of information about statement of comprehensive income, income, other comprehensive income, financial position, cash flows, and shareholders' equity."
       }
      }
     },
     "auth_ref": [
      "r304",
      "r305",
      "r306",
      "r338",
      "r375",
      "r719",
      "r774",
      "r871",
      "r884",
      "r898",
      "r899",
      "r900",
      "r901",
      "r902",
      "r903",
      "r906",
      "r909",
      "r910",
      "r911",
      "r912",
      "r913",
      "r915",
      "r916",
      "r917",
      "r918",
      "r920",
      "r921",
      "r922",
      "r923",
      "r924",
      "r926",
      "r928",
      "r929",
      "r931",
      "r932",
      "r933",
      "r934",
      "r935",
      "r936",
      "r937",
      "r938",
      "r939",
      "r940",
      "r941",
      "r942",
      "r946",
      "r1088"
     ]
    },
    "ecd_StkPrcOrTsrEstimationMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "StkPrcOrTsrEstimationMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Price or TSR Estimation Method",
        "label": "Stock Price or TSR Estimation Method [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1117",
      "r1128",
      "r1138",
      "r1171"
     ]
    },
    "us-gaap_StockAppreciationRightsSARSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockAppreciationRightsSARSMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Appreciation Rights (SARs)",
        "label": "Stock Appreciation Rights (SARs) [Member]",
        "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock under stock option plans, shares",
        "negatedLabel": "Exercised",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r97",
      "r98",
      "r142",
      "r569"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock under stock option plans",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r98",
      "r101",
      "r102",
      "r142"
     ]
    },
    "us-gaap_StockOptionPlanExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockOptionPlanExpense",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation expense",
        "label": "Stock or Unit Option Plan Expense",
        "documentation": "Amount of noncash expense for option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r11"
     ]
    },
    "us-gaap_StockRedeemedOrCalledDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockRedeemedOrCalledDuringPeriodShares",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Redeemed or Called During Period, Shares",
        "label": "Stock Redeemed or Called During Period, Shares",
        "documentation": "Number of stock bought back by the entity at the exercise price or redemption price."
       }
      }
     },
     "auth_ref": [
      "r17"
     ]
    },
    "us-gaap_StockRedeemedOrCalledDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockRedeemedOrCalledDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Redeemed or Called During Period, Value",
        "label": "Stock Redeemed or Called During Period, Value",
        "documentation": "Equity impact of the value of stock bought back by the entity at the exercise price or redemption price."
       }
      }
     },
     "auth_ref": [
      "r17"
     ]
    },
    "srt_StockRepurchaseProgramAuthorizedAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "StockRepurchaseProgramAuthorizedAmount1",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchase of authorized common stock",
        "label": "Share Repurchase Program, Authorized, Amount",
        "documentation": "Amount authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership."
       }
      }
     },
     "auth_ref": [
      "r1320"
     ]
    },
    "cgnx_StockRepurchaseProgramBuybackExciseTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "StockRepurchaseProgramBuybackExciseTax",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Repurchase Program, Buyback Excise Tax",
        "label": "Stock Repurchase Program, Buyback Excise Tax",
        "documentation": "Stock Repurchase Program, Buyback Excise Tax"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share Repurchase Program, Remaining Authorized, Amount",
        "label": "Share Repurchase Program, Remaining Authorized, Amount",
        "documentation": "Amount remaining authorized for purchase of share under share repurchase plan. Includes, but is not limited to, repurchase of stock and unit of ownership."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockRepurchasedDuringPeriodShares",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Repurchase of common stock, shares",
        "terseLabel": "Stock Repurchased During Period, Shares",
        "label": "Stock Repurchased During Period, Shares",
        "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r97",
      "r98",
      "r142",
      "r879",
      "r946",
      "r981"
     ]
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockRepurchasedDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repurchase of common stock",
        "terseLabel": "Stock Repurchased During Period, Value",
        "label": "Stock Repurchased During Period, Value",
        "documentation": "Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r97",
      "r98",
      "r142",
      "r882",
      "r946",
      "r981",
      "r1094"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total shareholders\u2019 equity",
        "periodStartLabel": "Beginning Balance",
        "periodEndLabel": "Balance",
        "label": "Equity, Attributable to Parent",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r98",
      "r101",
      "r102",
      "r131",
      "r908",
      "r925",
      "r947",
      "r948",
      "r1066",
      "r1095",
      "r1243",
      "r1277",
      "r1389",
      "r1440"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shareholders\u2019 equity:",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shareholders\u2019 Equity",
        "label": "Equity [Text Block]",
        "documentation": "The entire disclosure for equity."
       }
      }
     },
     "auth_ref": [
      "r139",
      "r292",
      "r504",
      "r506",
      "r508",
      "r509",
      "r510",
      "r511",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r518",
      "r520",
      "r673",
      "r949",
      "r950",
      "r982"
     ]
    },
    "us-gaap_SubsegmentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsegmentsAxis",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsegments [Axis]",
        "label": "Subsegments [Axis]",
        "documentation": "Information by business subsegments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsegmentsConsolidationItemsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsegmentsConsolidationItemsAxis",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsegments Consolidation Items [Axis]",
        "label": "Subsegments Consolidation Items [Axis]",
        "documentation": "Information by subsegments, eliminations and reconciling items used in consolidating a reportable segment and its subsegments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsegmentsConsolidationItemsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsegmentsConsolidationItemsDomain",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsegments Consolidation Items [Domain]",
        "label": "Subsegments Consolidation Items [Domain]",
        "documentation": "Subsegments, eliminations and reconciling items used in consolidating a reportable segment and its subsegments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsegmentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsegmentsDomain",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationDisaggregationofSegmentExpensesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsegments [Domain]",
        "label": "Subsegments [Domain]",
        "documentation": "Divisions of a component of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventLineItems",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Line Items]",
        "label": "Subsequent Event [Line Items]",
        "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event."
       }
      }
     },
     "auth_ref": [
      "r716",
      "r735"
     ]
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Member]",
        "label": "Subsequent Event [Member]",
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r716",
      "r735"
     ]
    },
    "us-gaap_SubsequentEventTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventTable",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Table]",
        "label": "Subsequent Event [Table]",
        "documentation": "Disclosure of information about significant event or transaction occurring between statement of financial position date and date when financial statements were issued."
       }
      }
     },
     "auth_ref": [
      "r716",
      "r735"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event Type [Axis]",
        "label": "Subsequent Event Type [Axis]",
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r716",
      "r735"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event Type [Domain]",
        "label": "Subsequent Event Type [Domain]",
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r716",
      "r735"
     ]
    },
    "us-gaap_SubsequentEventsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Events [Abstract]",
        "label": "Subsequent Events [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SubsequentEventsTextBlock",
     "presentation": [
      "http://cognex.com/role/SubsequentEvents",
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Events",
        "label": "Subsequent Events [Text Block]",
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business."
       }
      }
     },
     "auth_ref": [
      "r734",
      "r736"
     ]
    },
    "us-gaap_SummaryOfIncomeTaxContingenciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "SummaryOfIncomeTaxContingenciesTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in the Reserve for Income Taxes, Excluding Interest and Penalties",
        "label": "Summary of Income Tax Contingencies [Table Text Block]",
        "documentation": "Tabular disclosure for tax position taken on unrecognized tax benefit."
       }
      }
     },
     "auth_ref": [
      "r179",
      "r1356",
      "r1357"
     ]
    },
    "ecd_TabularListTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TabularListTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tabular List, Table",
        "label": "Tabular List [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1164"
     ]
    },
    "us-gaap_TaxCreditCarryforwardAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TaxCreditCarryforwardAxis",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax Credit Carryforward [Axis]",
        "label": "Tax Credit Carryforward [Axis]",
        "documentation": "Information by specific tax credit related to an unused tax credit."
       }
      }
     },
     "auth_ref": [
      "r635"
     ]
    },
    "us-gaap_TaxCreditCarryforwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TaxCreditCarryforwardLineItems",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax Credit Carryforward [Line Items]",
        "label": "Tax Credit Carryforward [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r635"
     ]
    },
    "cgnx_TaxCreditCarryforwardMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "TaxCreditCarryforwardMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax Credit Carryforward",
        "label": "Tax Credit Carryforward [Member]",
        "documentation": "Tax Credit Carryforward"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TaxCreditCarryforwardNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TaxCreditCarryforwardNameDomain",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax Credit Carryforward, Name [Domain]",
        "label": "Tax Credit Carryforward, Name [Domain]",
        "documentation": "The name of the tax credit carryforward."
       }
      }
     },
     "auth_ref": [
      "r635"
     ]
    },
    "us-gaap_TaxCreditCarryforwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TaxCreditCarryforwardTable",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax Credit Carryforward [Table]",
        "label": "Tax Credit Carryforward [Table]",
        "documentation": "Disclosure of information about tax credit carryforward available to reduce future taxable income. Includes, but is not limited to, description, amount, expiration date, limitation on use, and related deferred tax asset and valuation allowance."
       }
      }
     },
     "auth_ref": [
      "r635"
     ]
    },
    "ecd_TotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Shareholder Return Amount",
        "label": "Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r1156"
     ]
    },
    "ecd_TotalShareholderRtnVsPeerGroupTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TotalShareholderRtnVsPeerGroupTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Shareholder Return Vs Peer Group",
        "label": "Total Shareholder Return Vs Peer Group [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1163"
     ]
    },
    "us-gaap_TradeAndOtherAccountsReceivablePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TradeAndOtherAccountsReceivablePolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts Receivable",
        "label": "Accounts Receivable [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r172",
      "r173",
      "r174",
      "r1265",
      "r1266",
      "r1267"
     ]
    },
    "us-gaap_TrademarksMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TrademarksMember",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trademarks",
        "label": "Trademarks [Member]",
        "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style."
       }
      }
     },
     "auth_ref": [
      "r68",
      "r1031",
      "r1292",
      "r1293",
      "r1294",
      "r1295",
      "r1296",
      "r1297",
      "r1299",
      "r1301",
      "r1302",
      "r1303"
     ]
    },
    "ecd_TradingArrAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TradingArrAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Arrangement:",
        "label": "Trading Arrangement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1184"
     ]
    },
    "ecd_TradingArrByIndTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TradingArrByIndTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Arrangements, by Individual",
        "label": "Trading Arrangements, by Individual [Table]"
       }
      }
     },
     "auth_ref": [
      "r1186"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "TradingSymbol",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Symbol",
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instruments [Domain]",
        "label": "Financial Instruments [Domain]",
        "documentation": "Instrument or contract that imposes a contractual obligation to deliver cash or another financial instrument or to exchange other financial instruments on potentially unfavorable terms and conveys a contractual right to receive cash or another financial instrument or to exchange other financial instruments on potentially favorable terms."
       }
      }
     },
     "auth_ref": [
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r393",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398",
      "r399",
      "r400",
      "r401",
      "r402",
      "r403",
      "r404",
      "r405",
      "r406",
      "r407",
      "r503",
      "r517",
      "r672",
      "r697",
      "r737",
      "r738",
      "r739",
      "r740",
      "r741",
      "r742",
      "r743",
      "r744",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r750",
      "r751",
      "r753",
      "r754",
      "r755",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r763",
      "r764",
      "r765",
      "r766",
      "r767",
      "r832",
      "r1054",
      "r1056",
      "r1058",
      "r1059",
      "r1060",
      "r1061",
      "r1062",
      "r1063",
      "r1064",
      "r1067",
      "r1215",
      "r1216",
      "r1217",
      "r1218",
      "r1219",
      "r1220",
      "r1221",
      "r1273",
      "r1274",
      "r1275",
      "r1276",
      "r1373",
      "r1376",
      "r1377",
      "r1378",
      "r1385",
      "r1388"
     ]
    },
    "ecd_TrdArrAdoptionDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrAdoptionDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adoption Date",
        "label": "Trading Arrangement Adoption Date"
       }
      }
     },
     "auth_ref": [
      "r1187"
     ]
    },
    "ecd_TrdArrDuration": {
     "xbrltype": "durationItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrDuration",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Arrangement Duration",
        "label": "Trading Arrangement Duration"
       }
      }
     },
     "auth_ref": [
      "r1188"
     ]
    },
    "ecd_TrdArrExpirationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrExpirationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expiration Date",
        "label": "Trading Arrangement Expiration Date"
       }
      }
     },
     "auth_ref": [
      "r1188"
     ]
    },
    "ecd_TrdArrIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Trading Arrangement, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r1186"
     ]
    },
    "ecd_TrdArrIndTitle": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrIndTitle",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title",
        "label": "Trading Arrangement, Individual Title"
       }
      }
     },
     "auth_ref": [
      "r1186"
     ]
    },
    "ecd_TrdArrSecuritiesAggAvailAmt": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrSecuritiesAggAvailAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Available",
        "label": "Trading Arrangement, Securities Aggregate Available Amount"
       }
      }
     },
     "auth_ref": [
      "r1189"
     ]
    },
    "ecd_TrdArrTerminationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "TrdArrTerminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Termination Date",
        "label": "Trading Arrangement Termination Date"
       }
      }
     },
     "auth_ref": [
      "r1187"
     ]
    },
    "cgnx_TreasuryBillsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "TreasuryBillsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Treasury notes",
        "label": "Treasury Bills Fair Value Disclosure",
        "documentation": "Treasury bills fair value disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "country_US": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2024",
     "localname": "US",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "United States [Member]",
        "label": "UNITED STATES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_USTreasuryBillSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "USTreasuryBillSecuritiesMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Treasury Bills [Member]",
        "label": "US Treasury Bill Securities [Member]",
        "documentation": "This category includes information about negotiable debt securities issued by the United States Department of the Treasury which generally have maturities of one year or less, are interest bearing, and are backed by the full faith and credit of the United States government."
       }
      }
     },
     "auth_ref": [
      "r1406"
     ]
    },
    "us-gaap_USTreasurySecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "USTreasurySecuritiesMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Treasury Bills [Member]",
        "label": "US Treasury Securities [Member]",
        "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)."
       }
      }
     },
     "auth_ref": [
      "r1015",
      "r1042",
      "r1044",
      "r1054",
      "r1406"
     ]
    },
    "us-gaap_UnbilledReceivablesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnbilledReceivablesCurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled revenue",
        "label": "Unbilled Receivables, Current",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UncollectibleReceivablesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UncollectibleReceivablesMember",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reserve for Uncollectible Accounts Receivable and Sales Return [Member]",
        "label": "Uncollectible Receivables [Member]",
        "documentation": "A revision in the estimated reserve needed to reduce the carrying amount of accounts receivable to net realizable value with respect to credit and collection risk."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_UndrlygSecurityMktPriceChngPct": {
     "xbrltype": "pureItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "UndrlygSecurityMktPriceChngPct",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Underlying Security Market Price Change",
        "label": "Underlying Security Market Price Change, Percent"
       }
      }
     },
     "auth_ref": [
      "r1183"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefits",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance of reserve for income taxes",
        "periodEndLabel": "Balance of reserve for income taxes",
        "label": "Unrecognized Tax Benefits",
        "documentation": "Amount of unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r603",
      "r623",
      "r1051"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Reductions as a result of tax positions taken in prior periods",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns."
       }
      }
     },
     "auth_ref": [
      "r624",
      "r1051"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Reductions relating to settlements with taxing authorities",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from settlements with taxing authorities."
       }
      }
     },
     "auth_ref": [
      "r626",
      "r1051"
     ]
    },
    "cgnx_UnrecognizedTaxBenefitsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "UnrecognizedTaxBenefitsGross",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized Tax Benefits, Gross",
        "label": "Unrecognized Tax Benefits, Gross",
        "documentation": "Unrecognized Tax Benefits, Gross"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "UnrecognizedTaxBenefitsGrossNoncurrentLiability",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized Tax Benefits, Gross, Noncurrent Liability",
        "label": "Unrecognized Tax Benefits, Gross, Noncurrent Liability",
        "documentation": "Unrecognized Tax Benefits, Gross, Noncurrent Liability"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized Tax Benefits, Gross, Offset to Tax Attributes",
        "label": "Unrecognized Tax Benefits, Gross, Offset to Tax Attributes",
        "documentation": "Unrecognized Tax Benefits, Gross, Offset to Tax Attributes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest and penalties, gross",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued",
        "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."
       }
      }
     },
     "auth_ref": [
      "r621",
      "r1051"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax penalties and interest expense",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense",
        "documentation": "Amount of expense 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."
       }
      }
     },
     "auth_ref": [
      "r621",
      "r1051"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additions as a result of tax positions taken in the current period",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions",
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return."
       }
      }
     },
     "auth_ref": [
      "r625",
      "r1051"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additions as a result of tax positions taken in prior periods",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions",
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns."
       }
      }
     },
     "auth_ref": [
      "r624",
      "r1051"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Reductions as a result of the expiration of the applicable statutes of limitations",
        "label": "Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations."
       }
      }
     },
     "auth_ref": [
      "r627"
     ]
    },
    "us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecorded Unconditional Purchase Obligation, Including Lease Not yet Commenced, to be Paid, Year One",
        "label": "Unrecorded Unconditional Purchase Obligation, to be Paid, Year One",
        "documentation": "Amount of fixed and determinable portion of unrecorded unconditional purchase obligation 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). Includes, but is not limited to, lease not yet commenced."
       }
      }
     },
     "auth_ref": [
      "r479",
      "r1395"
     ]
    },
    "us-gaap_UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecorded Unconditional Purchase Obligation, Including Lease Not yet Commenced, Total",
        "label": "Unrecorded Unconditional Purchase Obligation",
        "documentation": "Amount of unrecorded obligation to transfer funds in future for fixed or minimum amount or quantity of product and service at fixed or minimum price. Includes, but is not limited to, lease not yet commenced and take-or-pay and throughput contracts."
       }
      }
     },
     "auth_ref": [
      "r479",
      "r1395"
     ]
    },
    "us-gaap_UnrecordedUnconditionalPurchaseObligationTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnrecordedUnconditionalPurchaseObligationTerm",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecorded Unconditional Purchase Obligation, Term",
        "label": "Unrecorded Unconditional Purchase Obligation, Term",
        "documentation": "Term of the unrecognized unconditional purchase obligation, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r478"
     ]
    },
    "cgnx_UnrecordedUncontditionalPurchaseObligationRenewalTerm": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "UnrecordedUncontditionalPurchaseObligationRenewalTerm",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecorded Uncontditional Purchase Obligation, Renewal Term",
        "label": "Unrecorded Uncontditional Purchase Obligation, Renewal Term",
        "documentation": "Unrecorded Uncontditional Purchase Obligation, Renewal Term"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnusualOrInfrequentItemAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnusualOrInfrequentItemAxis",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unusual or Infrequent Item, or Both [Axis]",
        "label": "Unusual or Infrequent Item, or Both [Axis]",
        "documentation": "Information by an event or transaction that is unusual in nature or infrequent in occurrence, or both."
       }
      }
     },
     "auth_ref": [
      "r121"
     ]
    },
    "us-gaap_UnusualOrInfrequentItemDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnusualOrInfrequentItemDomain",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unusual or Infrequent Item, or Both [Domain]",
        "label": "Unusual or Infrequent Item, or Both [Domain]",
        "documentation": "Event or transaction that is unusual in nature or infrequent in occurrence, or both."
       }
      }
     },
     "auth_ref": [
      "r121"
     ]
    },
    "us-gaap_UnusualOrInfrequentItemLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnusualOrInfrequentItemLineItems",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unusual or Infrequent Item, or Both [Line Items]",
        "label": "Unusual or Infrequent Item, or Both [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnusualOrInfrequentItemTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UnusualOrInfrequentItemTable",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unusual or Infrequent Item, or Both [Table]",
        "label": "Unusual or Infrequent Item, or Both [Table]",
        "documentation": "Disclosure of information about the nature and financial statement effect of an event or transaction that is unusual in nature or infrequent in occurrence, or both."
       }
      }
     },
     "auth_ref": [
      "r121"
     ]
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Use of Estimates in the Preparation of Financial Statements",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles."
       }
      }
     },
     "auth_ref": [
      "r43",
      "r44",
      "r45",
      "r184",
      "r185",
      "r187",
      "r188"
     ]
    },
    "us-gaap_ValuationAllowanceByDeferredTaxAssetAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowanceByDeferredTaxAssetAxis",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Valuation Allowance by Deferred Tax Asset [Axis]",
        "label": "Valuation Allowance by Deferred Tax Asset [Axis]",
        "documentation": "Information by type of deferred tax consequences attributable to deductible temporary differences."
       }
      }
     },
     "auth_ref": [
      "r1359"
     ]
    },
    "us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowanceOfDeferredTaxAssetsMember",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Tax Valuation Allowance [Member]",
        "label": "SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]",
        "documentation": "Valuation allowance of deferred tax asset attributable to deductible temporary difference and carryforward."
       }
      }
     },
     "auth_ref": [
      "r1246",
      "r1247",
      "r1248",
      "r1249",
      "r1250"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesAdjustments",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Increase (Decrease) Adjustment",
        "documentation": "Amount of increase (decrease) in valuation and qualifying accounts and reserves from adjustment."
       }
      }
     },
     "auth_ref": [
      "r1251"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesBalance",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable, allowance for credit losses",
        "periodStartLabel": "Balance\u00a0at Beginning of Period",
        "periodEndLabel": "Balance\u00a0at End of Period",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount",
        "documentation": "Amount of valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r298",
      "r302"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Charged\u00a0to Costs and Expenses",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Cost and Expense",
        "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense."
       }
      }
     },
     "auth_ref": [
      "r299"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesChargedToOtherAccounts",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account",
        "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to accounts other than cost and expense."
       }
      }
     },
     "auth_ref": [
      "r300"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesDeductions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesDeductions",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deductions",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Deduction",
        "documentation": "Amount of decrease in valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r301"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesDomain",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]",
        "documentation": "Valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r298",
      "r299",
      "r300",
      "r301",
      "r302"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "ValuationAllowancesAndReservesTypeAxis",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]",
        "documentation": "Information by valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r298",
      "r299",
      "r300",
      "r301",
      "r302"
     ]
    },
    "srt_ValuationAndQualifyingAccountsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ValuationAndQualifyingAccountsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]",
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_ValuationAndQualifyingAccountsDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ValuationAndQualifyingAccountsDisclosureLineItems",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]",
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]",
        "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."
       }
      }
     },
     "auth_ref": [
      "r197",
      "r198",
      "r199",
      "r200",
      "r201",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302"
     ]
    },
    "srt_ValuationAndQualifyingAccountsDisclosureTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2024",
     "localname": "ValuationAndQualifyingAccountsDisclosureTable",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]",
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]",
        "documentation": "Disclosure of information about valuation allowance and qualifying account and reserve."
       }
      }
     },
     "auth_ref": [
      "r197",
      "r198",
      "r199",
      "r200",
      "r201",
      "r298",
      "r299",
      "r300",
      "r301",
      "r302"
     ]
    },
    "cgnx_VoteEntitledForEachCommonShareOutstanding": {
     "xbrltype": "integerItemType",
     "nsuri": "http://cognex.com/20241231",
     "localname": "VoteEntitledForEachCommonShareOutstanding",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vote entitled for each common share outstanding",
        "label": "Vote Entitled For Each Common Share Outstanding",
        "documentation": "Vote entitled for each common share outstanding."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "VstngDtFrValOfEqtyAwrdsGrntdAndVstdInCvrdYrMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year",
        "label": "Vesting Date Fair Value of Equity Awards Granted and Vested in Covered Year [Member]"
       }
      }
     },
     "auth_ref": [
      "r1152"
     ]
    },
    "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment",
     "calculation": {
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail": {
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effect of dilutive stock options",
        "label": "Weighted Average Number of Shares Outstanding, Diluted, Adjustment",
        "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation."
       }
      }
     },
     "auth_ref": [
      "r1257"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "calculation": {
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Diluted (in shares)",
        "totalLabel": "Diluted weighted-average common and common-equivalent shares outstanding",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "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."
       }
      }
     },
     "auth_ref": [
      "r326",
      "r331"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average common and common-equivalent shares outstanding:",
        "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2024",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "calculation": {
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail": {
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basic (in shares)",
        "verboseLabel": "Basic weighted-average common shares outstanding",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "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."
       }
      }
     },
     "auth_ref": [
      "r325",
      "r331"
     ]
    },
    "ecd_YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2024",
     "localname": "YrEndFrValOfEqtyAwrdsGrntdInCvrdYrOutsdngAndUnvstdMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested",
        "label": "Year-end Fair Value of Equity Awards Granted in Covered Year that are Outstanding and Unvested [Member]"
       }
      }
     },
     "auth_ref": [
      "r1150"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "16",
   "SubTopic": "10",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479405/805-10-25-16"
  },
  "r1": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "7",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479637/805-30-30-7"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "8",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479637/805-30-30-8"
  },
  "r3": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "SubTopic": "230",
   "Topic": "830",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1"
  },
  "r4": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r5": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r6": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-12"
  },
  "r7": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-14"
  },
  "r8": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-15"
  },
  "r9": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-20"
  },
  "r10": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "230",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r12": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "SubTopic": "10",
   "Topic": "815",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480463/815-10-45-5"
  },
  "r13": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "360",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r14": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "SubTopic": "10",
   "Topic": "825",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-1"
  },
  "r15": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "30",
   "Topic": "805",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(c)(3)",
   "SubTopic": "10",
   "Topic": "810",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1A"
  },
  "r17": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "505",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r18": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "815",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-2"
  },
  "r19": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r20": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2A"
  },
  "r22": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "SubTopic": "20",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r23": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(c)(2)",
   "SubTopic": "20",
   "Topic": "860",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4D"
  },
  "r24": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Subparagraph": "(c)",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(22))",
   "SubTopic": "10",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r26": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r27": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14"
  },
  "r28": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-5"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12"
  },
  "r31": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r32": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-4"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-1"
  },
  "r34": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2"
  },
  "r35": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-3"
  },
  "r36": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r37": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r38": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2"
  },
  "r39": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-16"
  },
  "r40": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r41": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-20"
  },
  "r42": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-21"
  },
  "r43": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-4"
  },
  "r44": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-8"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-9"
  },
  "r46": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r48": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "30",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r49": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "280",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r50": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "360",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "460",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r53": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481142/505-10-45-2"
  },
  "r54": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-10"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-3"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-4"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-5"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "505",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-8"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "710",
   "SubTopic": "10",
   "Section": "25",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483070/710-10-25-3"
  },
  "r60": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r61": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r62": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-12"
  },
  "r63": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "718",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481089/718-20-55-13"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-2"
  },
  "r65": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479328/805-10-50-3"
  },
  "r66": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "37",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479303/805-10-55-37"
  },
  "r67": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r68": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r69": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "14",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-14"
  },
  "r70": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "805",
   "SubTopic": "20",
   "Section": "55",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-20"
  },
  "r71": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "810",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-1"
  },
  "r72": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1A"
  },
  "r74": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1A"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1B"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4"
  },
  "r77": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r78": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B"
  },
  "r80": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4C"
  },
  "r81": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4D"
  },
  "r82": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-5"
  },
  "r83": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-7"
  },
  "r84": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-8"
  },
  "r85": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "182",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480401/815-10-55-182"
  },
  "r86": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "25",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480238/815-25-50-1"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-20"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r89": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r90": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r91": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r92": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(21))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r93": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r95": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r96": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r97": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r98": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r99": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r100": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r101": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r102": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(31))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r103": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(32))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r104": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r105": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r106": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r107": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r108": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-7"
  },
  "r109": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11"
  },
  "r110": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r111": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(10))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r112": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r113": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r114": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r115": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r116": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r117": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r118": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r119": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r120": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r121": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483613/220-20-50-1"
  },
  "r122": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-12"
  },
  "r123": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r124": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-13"
  },
  "r125": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r126": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24"
  },
  "r127": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-25"
  },
  "r128": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r129": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/235/tableOfContent"
  },
  "r130": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "275",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r131": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 4.E)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480418/310-10-S99-2"
  },
  "r132": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480581/330-10-S99-2"
  },
  "r133": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/360/tableOfContent"
  },
  "r134": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-1"
  },
  "r135": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-1"
  },
  "r136": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r137": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/440/tableOfContent"
  },
  "r138": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "480",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480244/480-10-S99-1"
  },
  "r139": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/505/tableOfContent"
  },
  "r140": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-6"
  },
  "r141": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-7"
  },
  "r142": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r143": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r144": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r145": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r146": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r147": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/805/tableOfContent"
  },
  "r148": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479515/805-10-05-4"
  },
  "r149": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479515/805-10-05-4"
  },
  "r150": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479515/805-10-05-4"
  },
  "r151": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "05",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479515/805-10-05-4"
  },
  "r152": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-1"
  },
  "r153": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "38",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479876/805-20-55-38"
  },
  "r154": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-19"
  },
  "r155": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "815",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/815/tableOfContent"
  },
  "r156": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B"
  },
  "r157": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B"
  },
  "r158": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4B"
  },
  "r159": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-21"
  },
  "r160": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r161": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(15)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r162": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(15)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r163": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r164": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r165": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r166": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r167": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r168": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r169": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r170": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r171": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-11B"
  },
  "r172": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-11B"
  },
  "r173": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-15"
  },
  "r174": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-6"
  },
  "r175": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-6"
  },
  "r176": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-6"
  },
  "r177": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-6"
  },
  "r178": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-7"
  },
  "r179": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15"
  },
  "r180": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "SubTopic": "20",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482659/740-20-45-2"
  },
  "r181": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "210",
   "Topic": "946",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-20"
  },
  "r182": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "270",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482989/270-10-45-6"
  },
  "r183": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "35",
   "Topic": "720",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483406/720-35-50-1"
  },
  "r184": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r185": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-1"
  },
  "r186": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-1"
  },
  "r187": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-11"
  },
  "r188": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-12"
  },
  "r189": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2A"
  },
  "r190": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-6"
  },
  "r191": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "SubTopic": "360",
   "Topic": "958",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477798/958-360-50-7"
  },
  "r192": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r193": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h))",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r194": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "250",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/250/tableOfContent"
  },
  "r195": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/606/tableOfContent"
  },
  "r196": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "04",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r197": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "09",
   "Paragraph": "Column B",
   "Publisher": "SEC"
  },
  "r198": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "09",
   "Paragraph": "Column C",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r199": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "09",
   "Paragraph": "Column C",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r200": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "09",
   "Paragraph": "Column D",
   "Publisher": "SEC"
  },
  "r201": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "09",
   "Paragraph": "Column E",
   "Publisher": "SEC"
  },
  "r202": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "09",
   "Publisher": "SEC"
  },
  "r203": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r204": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12",
   "Paragraph": "Column C",
   "Footnote": "5",
   "Publisher": "SEC"
  },
  "r205": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12A",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r206": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12A",
   "Paragraph": "Column C",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r207": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12B",
   "Paragraph": "Column A",
   "Subparagraph": "(a)",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r208": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12B",
   "Paragraph": "Column A",
   "Subparagraph": "(b)",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12B",
   "Paragraph": "Column C",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r210": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "14",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r211": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "14",
   "Paragraph": "Column F",
   "Footnote": "7",
   "Publisher": "SEC"
  },
  "r212": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column A",
   "Publisher": "SEC"
  },
  "r213": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column B",
   "Publisher": "SEC"
  },
  "r214": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column C",
   "Publisher": "SEC"
  },
  "r215": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column D",
   "Publisher": "SEC"
  },
  "r216": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column E",
   "Publisher": "SEC"
  },
  "r217": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "17",
   "Paragraph": "Column F",
   "Publisher": "SEC"
  },
  "r218": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r219": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column B",
   "Publisher": "SEC"
  },
  "r220": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column C",
   "Publisher": "SEC"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column D",
   "Publisher": "SEC"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column E",
   "Publisher": "SEC"
  },
  "r223": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column F",
   "Publisher": "SEC"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column G",
   "Publisher": "SEC"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column H",
   "Publisher": "SEC"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column I",
   "Publisher": "SEC"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "29",
   "Paragraph": "Column A",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r228": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(i)",
   "Publisher": "SEC"
  },
  "r229": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(A)",
   "Publisher": "SEC"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(B)",
   "Publisher": "SEC"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iv)",
   "Publisher": "SEC"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(i)",
   "Publisher": "SEC"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(A)",
   "Publisher": "SEC"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(B)",
   "Publisher": "SEC"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)(C)",
   "Publisher": "SEC"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "02",
   "Paragraph": "a",
   "Subparagraph": "(4)(iv)",
   "Publisher": "SEC"
  },
  "r237": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 11",
   "Section": "L",
   "Publisher": "SEC"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 11",
   "Section": "M",
   "Paragraph": "Question 2",
   "Publisher": "SEC"
  },
  "r239": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 2",
   "Publisher": "SEC"
  },
  "r240": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 4",
   "Publisher": "SEC"
  },
  "r241": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-6"
  },
  "r242": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479343/105-10-65-7"
  },
  "r243": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-1"
  },
  "r244": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "205",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483499/205-20-50-7"
  },
  "r245": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r246": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-5"
  },
  "r247": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483489/210-10-50-1"
  },
  "r248": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r249": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r250": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(13))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r251": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r252": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r253": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(16))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r254": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r255": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r256": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r257": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(28))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r258": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(29))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(30)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r260": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r262": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-3"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483466/210-20-50-4"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-10"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r270": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-10A"
  },
  "r271": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-11"
  },
  "r272": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14"
  },
  "r273": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14A"
  },
  "r274": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-17A"
  },
  "r275": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r276": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r277": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1A"
  },
  "r278": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B"
  },
  "r279": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-1B"
  },
  "r280": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-1"
  },
  "r281": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4"
  },
  "r282": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5"
  },
  "r283": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6"
  },
  "r284": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(24))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r285": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r286": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-15"
  },
  "r288": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-24"
  },
  "r289": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-2A"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482913/230-10-50-8"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-1"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(e)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(n))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-04(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-3"
  },
  "r298": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r299": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r300": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r303": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r304": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5"
  },
  "r307": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r308": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r309": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r310": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r311": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r312": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-1"
  },
  "r313": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11"
  },
  "r314": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-11"
  },
  "r315": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-3"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4"
  },
  "r317": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r318": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7"
  },
  "r319": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-7"
  },
  "r320": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-8"
  },
  "r321": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-9"
  },
  "r322": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480530/250-10-S99-5"
  },
  "r323": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480530/250-10-S99-6"
  },
  "r324": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/260/tableOfContent"
  },
  "r325": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-10"
  },
  "r326": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-16"
  },
  "r327": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-2"
  },
  "r328": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r329": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "60B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-60B"
  },
  "r330": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482689/260-10-45-7"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r332": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r333": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r334": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-2"
  },
  "r335": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-3"
  },
  "r336": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-15"
  },
  "r337": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r338": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-1"
  },
  "r339": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482987/272-10-50-1"
  },
  "r340": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/280/tableOfContent"
  },
  "r341": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-15"
  },
  "r342": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r343": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-21"
  },
  "r344": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r345": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r346": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r347": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r348": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r349": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r350": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r351": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r352": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r353": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Subparagraph": "(j)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r354": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r355": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-25"
  },
  "r356": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26"
  },
  "r357": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26A"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26B"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "26C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-26C"
  },
  "r360": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r363": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r366": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r367": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "34",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-34"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-40"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r371": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r372": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "41",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-41"
  },
  "r373": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "42",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-42"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476173/280-10-65-1"
  },
  "r375": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-13"
  },
  "r376": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-4"
  },
  "r377": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481830/320-10-45-2"
  },
  "r378": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r379": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r380": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r381": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r382": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r383": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r384": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r385": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r388": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r389": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r390": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r391": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r393": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r394": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r395": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r396": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r399": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r400": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r401": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r402": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5A"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r404": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r405": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r406": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-9"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-9"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-4"
  },
  "r414": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479654/326-10-65-5"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479344/326-20-45-1"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-11"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r420": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r421": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r422": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-14"
  },
  "r423": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-16"
  },
  "r424": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-5"
  },
  "r425": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479130/326-30-45-1"
  },
  "r426": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-4"
  },
  "r427": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-4"
  },
  "r428": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-4"
  },
  "r429": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-5"
  },
  "r430": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-7"
  },
  "r431": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-9"
  },
  "r432": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-9"
  },
  "r433": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479106/326-30-50-9"
  },
  "r434": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/330/tableOfContent"
  },
  "r435": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-1"
  },
  "r436": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483080/330-10-50-4"
  },
  "r437": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480265/350-10-S45-1"
  },
  "r438": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-20/tableOfContent"
  },
  "r439": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482598/350-20-45-1"
  },
  "r440": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r441": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r444": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r445": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r446": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r447": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r449": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A"
  },
  "r450": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2"
  },
  "r451": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2"
  },
  "r452": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-30/tableOfContent"
  },
  "r453": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-2"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r457": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r458": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r459": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r460": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-3"
  },
  "r467": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-4"
  },
  "r468": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-40/tableOfContent"
  },
  "r469": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "350",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476166/350-60-65-1"
  },
  "r470": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r471": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "360",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482099/360-10-50-3"
  },
  "r472": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "405",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477092/405-40-50-1"
  },
  "r473": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r474": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482017/420-10-50-1"
  },
  "r475": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.P.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-1"
  },
  "r476": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.b.1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r477": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4.d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479823/420-10-S99-2"
  },
  "r478": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4"
  },
  "r479": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4"
  },
  "r480": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482648/440-10-50-4"
  },
  "r481": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4"
  },
  "r482": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r483": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r484": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r485": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-4"
  },
  "r486": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r487": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r488": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r489": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r490": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r491": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r492": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r493": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r494": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r495": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r496": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r497": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r498": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r499": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r501": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1B",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1B"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1D",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1D"
  },
  "r503": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1I",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1I"
  },
  "r504": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r505": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r506": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r507": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r508": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-14"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-16"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r518": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-18"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-2"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.3-04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480008/505-10-S99-1"
  },
  "r521": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-1"
  },
  "r522": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479837/606-10-45-2"
  },
  "r523": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r524": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r525": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r526": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r527": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r528": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-12"
  },
  "r529": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-13"
  },
  "r530": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-15"
  },
  "r531": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-4"
  },
  "r532": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r533": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-8"
  },
  "r534": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-9"
  },
  "r535": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/715/tableOfContent"
  },
  "r536": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r537": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r538": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r539": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r540": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(A)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r541": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(B)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r542": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(02)(C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r543": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r544": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r545": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(o)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r546": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(p)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r547": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r548": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r549": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r550": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480126/715-20-S99-2"
  },
  "r551": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480266/715-60-50-3"
  },
  "r552": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "70",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480794/715-70-50-1"
  },
  "r553": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5"
  },
  "r554": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-5"
  },
  "r555": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/718/tableOfContent"
  },
  "r556": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-1D"
  },
  "r557": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-2"
  },
  "r558": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480483/718-10-35-3"
  },
  "r559": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r560": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r561": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r562": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r563": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r564": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r565": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r566": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r568": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r571": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r572": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r573": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r574": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r575": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r576": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r577": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r579": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r580": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r581": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r583": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r584": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r585": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r586": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r587": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r588": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r589": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r590": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r591": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r592": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.C.Q3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.1.Q5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r596": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.2.Q6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r597": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.D.3.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r598": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 14.F)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479830/718-10-S99-1"
  },
  "r599": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483359/720-20-50-1"
  },
  "r600": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "35",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483406/720-35-50-1"
  },
  "r601": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "730",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482916/730-10-50-1"
  },
  "r602": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/740/tableOfContent"
  },
  "r603": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-10B"
  },
  "r604": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-25"
  },
  "r605": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-28"
  },
  "r606": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-4"
  },
  "r607": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482525/740-10-45-6"
  },
  "r608": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10"
  },
  "r609": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-10A"
  },
  "r610": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r611": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r612": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r615": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r616": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r617": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r618": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12B"
  },
  "r619": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12C"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-14"
  },
  "r621": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15"
  },
  "r622": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r624": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r625": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r626": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r628": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-17"
  },
  "r629": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-19"
  },
  "r630": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r631": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-20"
  },
  "r632": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-21"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-22"
  },
  "r634": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-23"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-3"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r638": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8"
  },
  "r639": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482615/740-10-65-8"
  },
  "r640": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.1.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r641": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.5.Q1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r642": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r643": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 11.C)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-2"
  },
  "r644": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "270",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477891/740-270-50-1"
  },
  "r645": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482603/740-30-50-2"
  },
  "r646": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r647": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r648": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r649": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r650": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r651": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r652": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478666/740-323-65-2"
  },
  "r653": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-5"
  },
  "r654": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479907/805-20-50-5"
  },
  "r655": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479581/805-30-50-1"
  },
  "r656": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r657": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "805",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147476176/805-60-65-1"
  },
  "r658": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25"
  },
  "r659": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "25",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481231/810-10-45-25"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3"
  },
  "r661": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "810",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481203/810-10-50-3"
  },
  "r662": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r663": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4E"
  },
  "r664": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-5C"
  },
  "r665": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r666": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r667": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r668": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r669": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(h)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r670": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r671": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480528/815-20-65-6"
  },
  "r672": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-5"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480237/815-40-50-6"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "54B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B"
  },
  "r679": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r680": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r681": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r682": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r683": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r684": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r685": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r686": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r687": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r688": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r689": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r690": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r692": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r693": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r696": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r697": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6B"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "13",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482477/820-10-65-13"
  },
  "r699": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482736/825-10-45-5A"
  },
  "r700": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-10"
  },
  "r701": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r702": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/830/tableOfContent"
  },
  "r703": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481839/830-10-45-17"
  },
  "r704": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482014/830-20-35-1"
  },
  "r705": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481956/830-20-45-1"
  },
  "r706": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481956/830-20-45-5"
  },
  "r707": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481926/830-20-50-1"
  },
  "r708": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "230",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477401/830-230-45-1"
  },
  "r709": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-17"
  },
  "r710": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r712": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r713": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r714": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-21"
  },
  "r715": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-1"
  },
  "r716": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481674/830-30-50-2"
  },
  "r717": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479832/842-10-65-8"
  },
  "r718": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/842-20/tableOfContent"
  },
  "r719": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "12A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479165/842-20-35-12A"
  },
  "r720": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1"
  },
  "r721": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-1"
  },
  "r722": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-5"
  },
  "r723": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-1"
  },
  "r724": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r725": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r726": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(g)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-4"
  },
  "r727": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r728": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-7A"
  },
  "r729": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479773/842-30-50-3"
  },
  "r730": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-1"
  },
  "r731": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r732": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r733": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483550/848-10-65-2"
  },
  "r734": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/855/tableOfContent"
  },
  "r735": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2"
  },
  "r736": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-2"
  },
  "r737": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r738": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r739": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r740": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r741": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r742": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(bb)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r743": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r744": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r745": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r746": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r747": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r748": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r749": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r750": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481444/860-30-45-1"
  },
  "r751": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7"
  },
  "r752": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481420/860-30-50-7"
  },
  "r753": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r754": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r755": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r756": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(4)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-3"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r758": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r759": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r763": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r764": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r765": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r766": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r767": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481229/860-50-50-4"
  },
  "r768": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "910",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482546/910-10-50-6"
  },
  "r769": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478345/912-310-45-11"
  },
  "r770": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "330",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478411/912-330-50-1"
  },
  "r771": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "920",
   "SubTopic": "350",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478609/920-350-50-1"
  },
  "r772": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "920",
   "SubTopic": "350",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478609/920-350-50-1"
  },
  "r773": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "920",
   "SubTopic": "350",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478609/920-350-50-4"
  },
  "r774": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "924",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 11.L)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479941/924-10-S99-1"
  },
  "r775": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483154/926-20-50-5"
  },
  "r776": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483194/926-20-65-2"
  },
  "r777": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483194/926-20-65-2"
  },
  "r778": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483194/926-20-65-2"
  },
  "r779": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "928",
   "SubTopic": "340",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478859/928-340-50-1"
  },
  "r780": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478934/932-220-50-1"
  },
  "r781": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18"
  },
  "r782": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18"
  },
  "r783": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-18"
  },
  "r784": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-19"
  },
  "r785": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r786": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r787": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r788": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r789": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r790": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "23",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-23"
  },
  "r791": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r792": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r793": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r794": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r795": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r796": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-31"
  },
  "r797": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r798": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r799": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r800": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r801": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r802": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-5"
  },
  "r803": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-6"
  },
  "r804": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-7"
  },
  "r805": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8"
  },
  "r806": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8"
  },
  "r807": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-8"
  },
  "r808": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "280",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478657/932-280-50-1"
  },
  "r809": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "932",
   "SubTopic": "323",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478988/932-323-50-1"
  },
  "r810": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "940",
   "SubTopic": "820",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478119/940-820-50-1"
  },
  "r811": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r812": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478546/942-210-S99-1"
  },
  "r813": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(26))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r814": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-04(27))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478524/942-220-S99-1"
  },
  "r815": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477314/942-235-S99-1"
  },
  "r816": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477268/942-320-50-3A"
  },
  "r817": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478451/942-360-50-1"
  },
  "r818": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r819": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r820": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(15)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r821": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r822": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r823": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r824": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r825": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r826": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r827": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r828": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r829": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(11))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r830": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(18))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r831": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r832": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r833": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(20))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r834": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(22))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r835": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(23))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r836": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r837": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r838": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-04(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477250/944-220-S99-1"
  },
  "r839": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r840": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r841": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r842": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r843": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r844": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r845": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r846": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r847": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r848": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column J))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r849": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-16(Column K))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-1"
  },
  "r850": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r851": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r852": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r853": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r854": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r855": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-17(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477965/944-235-S99-2"
  },
  "r856": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4E"
  },
  "r857": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r858": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r859": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r860": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-9"
  },
  "r861": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r862": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r863": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r864": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r865": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r866": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r867": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r868": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(h)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480016/944-40-65-2"
  },
  "r869": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.W.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479583/944-40-S99-1"
  },
  "r870": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r871": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r872": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r873": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r874": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r875": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r876": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r877": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r878": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r879": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(i)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479886/946-10-S99-3"
  },
  "r880": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-11"
  },
  "r881": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480990/946-20-50-13"
  },
  "r882": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r883": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-21"
  },
  "r884": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477796/946-210-45-4"
  },
  "r885": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r886": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r887": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r888": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r889": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r890": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-12"
  },
  "r891": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-2"
  },
  "r892": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r893": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r894": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r895": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r896": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r897": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r898": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r899": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r900": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r901": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r902": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r903": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r904": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r905": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r906": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(16)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r907": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r908": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r909": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r910": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r911": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r912": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r913": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(3)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r914": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r915": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r916": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r917": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r918": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(6)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r919": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r920": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r921": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r922": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r923": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(9)(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-1"
  },
  "r924": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r925": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.6-05(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479170/946-210-S99-2"
  },
  "r926": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-3"
  },
  "r927": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479105/946-220-45-7"
  },
  "r928": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r929": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r930": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(g)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r931": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r932": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r933": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r934": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r935": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r936": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r937": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r938": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r939": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r940": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r941": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r942": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(c)(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r943": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r944": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-1"
  },
  "r945": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(1)(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r946": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r947": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r948": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r949": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2"
  },
  "r950": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477968/946-235-50-2"
  },
  "r951": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r952": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r953": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column C)(Footnote 5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r954": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "12",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-12"
  },
  "r955": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "19",
   "Subparagraph": "(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-19"
  },
  "r956": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r957": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column C)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r958": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r959": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r960": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r961": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column C)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r962": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SX 210.12-13(Column A)(Footnote 3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5"
  },
  "r963": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SX 210.12-13(Column G)(Footnote 8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5"
  },
  "r964": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SX 210.12-13(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5"
  },
  "r965": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5A",
   "Subparagraph": "(SX 210.12-13A(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5A"
  },
  "r966": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5A",
   "Subparagraph": "(SX 210.12-13A(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5A"
  },
  "r967": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5B",
   "Subparagraph": "(SX 210.12-13B(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5B"
  },
  "r968": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5B",
   "Subparagraph": "(SX 210.12-13B(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5B"
  },
  "r969": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5B",
   "Subparagraph": "(SX 210.12-13B(Column E)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5B"
  },
  "r970": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5B",
   "Subparagraph": "(SX 210.12-13B(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5B"
  },
  "r971": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5C",
   "Subparagraph": "(SX 210.12-13C(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C"
  },
  "r972": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5C",
   "Subparagraph": "(SX 210.12-13C(Column H)(Footnote 7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C"
  },
  "r973": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5C",
   "Subparagraph": "(SX 210.12-13C(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5C"
  },
  "r974": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5D",
   "Subparagraph": "(SX 210.12-13D(Column A)(Footnote 2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-5D"
  },
  "r975": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r976": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column F)(Footnote 7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r977": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r978": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r979": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r980": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r981": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-2"
  },
  "r982": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478448/946-505-50-6"
  },
  "r983": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "948",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-29(Column A)(Footnote 4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479628/948-310-S99-1"
  },
  "r984": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478785/954-310-50-2"
  },
  "r985": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "440",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478522/954-440-50-1"
  },
  "r986": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "450",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477850/954-450-50-1"
  },
  "r987": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r988": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r989": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r990": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r991": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r992": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r993": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r994": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r995": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "970",
   "SubTopic": "360",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478979/970-360-S99-1"
  },
  "r996": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "976",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477332/976-310-50-1"
  },
  "r997": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "978",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479230/978-310-50-1"
  },
  "r998": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/985-20/tableOfContent"
  },
  "r999": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  },
  "r1000": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)",
   "SubTopic": "10",
   "Topic": "235",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r1001": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(a)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r1002": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(b)",
   "SubTopic": "40",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r1003": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column A))",
   "SubTopic": "320",
   "Topic": "946",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-7"
  },
  "r1004": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r1005": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-1"
  },
  "r1006": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "8",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483467/210-10-45-8"
  },
  "r1007": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1008": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1009": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1010": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483444/210-20-55-22"
  },
  "r1011": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r1012": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r1013": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r1014": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483426/235-10-50-4"
  },
  "r1015": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1016": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "52",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482635/260-10-55-52"
  },
  "r1017": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r1018": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "31",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-31"
  },
  "r1019": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r1020": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(bb)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r1021": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r1022": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "47",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-47"
  },
  "r1023": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "48",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-48"
  },
  "r1024": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "49",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-49"
  },
  "r1025": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r1026": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r1027": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "54",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482785/280-10-55-54"
  },
  "r1028": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481933/310-10-55-12A"
  },
  "r1029": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479081/326-30-55-8"
  },
  "r1030": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482548/350-20-55-24"
  },
  "r1031": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "40",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482640/350-30-55-40"
  },
  "r1032": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69B"
  },
  "r1033": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481568/470-20-55-69C"
  },
  "r1034": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "505",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481112/505-10-50-13"
  },
  "r1035": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1036": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1037": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1038": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1039": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1040": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1041": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1042": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r1043": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480506/715-20-50-1"
  },
  "r1044": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480482/715-20-55-17"
  },
  "r1045": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-11"
  },
  "r1046": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480576/715-80-50-6"
  },
  "r1047": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480547/715-80-55-8"
  },
  "r1048": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1049": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1050": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "720",
   "SubTopic": "35",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483385/720-35-55-1"
  },
  "r1051": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "217",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-217"
  },
  "r1052": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "231",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482663/740-10-55-231"
  },
  "r1053": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479908/805-50-55-1"
  },
  "r1054": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r1055": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "100",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-100"
  },
  "r1056": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "101",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-101"
  },
  "r1057": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "102",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-102"
  },
  "r1058": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "103",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-103"
  },
  "r1059": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1060": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1061": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1062": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1063": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1064": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "107",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482078/820-10-55-107"
  },
  "r1065": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "53",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479589/842-20-55-53"
  },
  "r1066": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481372/852-10-55-10"
  },
  "r1067": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481395/860-30-55-4"
  },
  "r1068": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "17",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-17"
  },
  "r1069": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-21"
  },
  "r1070": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "29",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-29"
  },
  "r1071": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477215/932-235-50-3"
  },
  "r1072": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-2"
  },
  "r1073": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-4"
  },
  "r1074": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-5"
  },
  "r1075": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "932",
   "SubTopic": "235",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477916/932-235-55-6"
  },
  "r1076": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479401/944-30-55-2"
  },
  "r1077": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-13H"
  },
  "r1078": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-29F"
  },
  "r1079": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r1080": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r1081": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r1082": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9C",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9C"
  },
  "r1083": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "9E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480046/944-40-55-9E"
  },
  "r1084": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480078/944-80-55-18"
  },
  "r1085": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-1"
  },
  "r1086": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r1087": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477439/946-210-55-1"
  },
  "r1088": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1"
  },
  "r1089": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r1090": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r1091": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r1092": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r1093": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-10"
  },
  "r1094": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-11"
  },
  "r1095": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479168/946-830-55-12"
  },
  "r1096": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r1097": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r1098": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r1099": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-K",
   "Number": "249",
   "Section": "310"
  },
  "r1100": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Number": "249",
   "Section": "220",
   "Subsection": "f"
  },
  "r1101": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16",
   "Subsection": "J",
   "Paragraph": "a"
  },
  "r1102": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K"
  },
  "r1103": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r1104": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1105": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1106": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1107": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "b",
   "Paragraph": "2"
  },
  "r1108": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "1"
  },
  "r1109": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2"
  },
  "r1110": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "i"
  },
  "r1111": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r1112": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16K",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r1113": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1"
  },
  "r1114": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1115": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r1116": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r1117": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r1118": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r1119": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r1120": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1121": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1122": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "2"
  },
  "r1123": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Number": "249",
   "Section": "240",
   "Subsection": "f"
  },
  "r1124": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a"
  },
  "r1125": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r1126": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r1127": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r1128": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r1129": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r1130": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r1131": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r1132": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r1133": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "b"
  },
  "r1134": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a"
  },
  "r1135": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r1136": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r1137": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r1138": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r1139": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r1140": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r1141": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r1142": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r1143": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "b"
  },
  "r1144": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r1145": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v"
  },
  "r1146": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "1"
  },
  "r1147": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r1148": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r1149": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r1150": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "i"
  },
  "r1151": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "ii"
  },
  "r1152": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iii"
  },
  "r1153": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "iv"
  },
  "r1154": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "v"
  },
  "r1155": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1",
   "Subclause": "vi"
  },
  "r1156": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iv"
  },
  "r1157": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "vi"
  },
  "r1158": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "3"
  },
  "r1159": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "4"
  },
  "r1160": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "i"
  },
  "r1161": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "ii"
  },
  "r1162": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iii"
  },
  "r1163": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iv"
  },
  "r1164": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6"
  },
  "r1165": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6",
   "Subparagraph": "i"
  },
  "r1166": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w"
  },
  "r1167": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1"
  },
  "r1168": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1169": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r1170": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r1171": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r1172": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r1173": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r1174": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1175": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1176": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "2"
  },
  "r1177": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "1"
  },
  "r1178": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2"
  },
  "r1179": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "A"
  },
  "r1180": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "C"
  },
  "r1181": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "D"
  },
  "r1182": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "E"
  },
  "r1183": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "F"
  },
  "r1184": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r1185": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r1186": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "A"
  },
  "r1187": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "B"
  },
  "r1188": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "C"
  },
  "r1189": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "D"
  },
  "r1190": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r1191": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106"
  },
  "r1192": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r1193": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1194": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1195": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1196": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "b",
   "Paragraph": "2"
  },
  "r1197": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "1"
  },
  "r1198": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2"
  },
  "r1199": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "i"
  },
  "r1200": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r1201": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "106",
   "Subsection": "c",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r1202": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Number": "229",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "C",
   "Clause": "1"
  },
  "r1203": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "A",
   "Number": "229"
  },
  "r1204": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Number": "229"
  },
  "r1205": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii",
   "Sentence": "B",
   "Clause": "1",
   "Subclause": "i",
   "Number": "229"
  },
  "r1206": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r1207": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "405"
  },
  "r1208": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "272",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483014/272-10-45-3"
  },
  "r1209": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-10"
  },
  "r1210": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483399/855-10-50-3"
  },
  "r1211": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "SubTopic": "740",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479176/718-740-35-2"
  },
  "r1212": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482861/275-10-50-18"
  },
  "r1213": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "SubTopic": "825",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477351/944-825-50-1B"
  },
  "r1214": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r1215": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "a",
   "Publisher": "SEC"
  },
  "r1216": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r1217": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r1218": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "b",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r1219": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(i)",
   "Publisher": "SEC"
  },
  "r1220": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(ii)",
   "Publisher": "SEC"
  },
  "r1221": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "c",
   "Subparagraph": "(2)(iii)",
   "Publisher": "SEC"
  },
  "r1222": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "11",
   "Subsection": "03",
   "Publisher": "SEC"
  },
  "r1223": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12",
   "Paragraph": "Column A",
   "Subparagraph": "(ii)",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r1224": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12A",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r1225": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "12B",
   "Paragraph": "Column A",
   "Subparagraph": "(b)",
   "Footnote": "1",
   "Publisher": "SEC"
  },
  "r1226": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "14",
   "Paragraph": "Column A",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r1227": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(ii)",
   "Publisher": "SEC"
  },
  "r1228": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "13",
   "Subsection": "01",
   "Paragraph": "a",
   "Subparagraph": "(4)(iii)",
   "Publisher": "SEC"
  },
  "r1229": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Staff Accounting Bulletin (SAB)",
   "Number": "Topic 5",
   "Section": "Y",
   "Paragraph": "Question 2",
   "Publisher": "SEC"
  },
  "r1230": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1231": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(3)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1232": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1233": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(9))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480566/210-10-S99-1"
  },
  "r1234": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482790/220-10-45-14"
  },
  "r1235": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-4"
  },
  "r1236": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-5"
  },
  "r1237": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482765/220-10-50-6"
  },
  "r1238": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r1239": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483621/220-10-S99-2"
  },
  "r1240": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r1241": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482740/230-10-45-28"
  },
  "r1242": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1243": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1244": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1245": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-1"
  },
  "r1246": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r1247": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r1248": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r1249": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r1250": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r1251": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480678/235-10-S99-4"
  },
  "r1252": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "23",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-23"
  },
  "r1253": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "24",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-24"
  },
  "r1254": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483421/250-10-45-5"
  },
  "r1255": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-4"
  },
  "r1256": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483443/250-10-50-6"
  },
  "r1257": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "260",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482662/260-10-50-1"
  },
  "r1258": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "270",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482964/270-10-50-1"
  },
  "r1259": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-18"
  },
  "r1260": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "22",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-22"
  },
  "r1261": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "30",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-30"
  },
  "r1262": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(ee)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r1263": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "280",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "32",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482810/280-10-50-32"
  },
  "r1264": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481990/310-10-45-2"
  },
  "r1265": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2"
  },
  "r1266": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481962/310-10-50-2"
  },
  "r1267": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481569/310-20-50-1"
  },
  "r1268": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481830/320-10-45-1"
  },
  "r1269": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-2"
  },
  "r1270": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-3"
  },
  "r1271": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5"
  },
  "r1272": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-5B"
  },
  "r1273": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481800/320-10-50-9"
  },
  "r1274": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r1275": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r1276": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479536/321-10-50-3"
  },
  "r1277": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "323",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481687/323-10-50-3"
  },
  "r1278": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479319/326-20-50-13"
  },
  "r1279": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "340",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479483/340-40-50-3"
  },
  "r1280": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1281": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1282": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1283": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1284": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1285": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1286": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1287": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1288": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(h)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1"
  },
  "r1289": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-1A"
  },
  "r1290": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482573/350-20-50-2"
  },
  "r1291": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-30/tableOfContent"
  },
  "r1292": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482686/350-30-45-1"
  },
  "r1293": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1294": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1295": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1296": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1297": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-1"
  },
  "r1298": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1299": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1300": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1301": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1302": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1303": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482665/350-30-50-2"
  },
  "r1304": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "350",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/350-40/tableOfContent"
  },
  "r1305": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "405",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/405-30/tableOfContent"
  },
  "r1306": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "410",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481931/410-30-50-10"
  },
  "r1307": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482047/420-10-45-3"
  },
  "r1308": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/450/tableOfContent"
  },
  "r1309": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-1"
  },
  "r1310": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-4"
  },
  "r1311": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483076/450-20-50-9"
  },
  "r1312": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480102/450-20-S99-1"
  },
  "r1313": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r1314": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r1315": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r1316": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482425/460-10-50-8"
  },
  "r1317": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r1318": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1A",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480097/470-10-S99-1A"
  },
  "r1319": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "470",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481139/470-20-50-1B"
  },
  "r1320": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "505",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481520/505-30-50-4"
  },
  "r1321": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-10"
  },
  "r1322": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479806/606-10-50-5"
  },
  "r1323": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479777/606-10-55-91"
  },
  "r1324": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1325": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1326": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1327": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1328": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1329": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1330": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1331": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1332": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1333": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1334": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1335": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1336": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1337": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1338": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1339": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1340": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1341": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1342": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1343": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1344": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1345": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1346": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1347": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1348": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1349": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)(v)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1350": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480429/718-10-50-2"
  },
  "r1351": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "720",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147483384/720-30-45-1"
  },
  "r1352": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "730",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/730/tableOfContent"
  },
  "r1353": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r1354": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12"
  },
  "r1355": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "12A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-12A"
  },
  "r1356": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15"
  },
  "r1357": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-15A"
  },
  "r1358": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r1359": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-2"
  },
  "r1360": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-3"
  },
  "r1361": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-6"
  },
  "r1362": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r1363": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482685/740-10-50-9"
  },
  "r1364": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479360/740-10-S99-1"
  },
  "r1365": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480060/805-50-25-1"
  },
  "r1366": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480027/805-50-30-1"
  },
  "r1367": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480027/805-50-30-2"
  },
  "r1368": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1A"
  },
  "r1369": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1A"
  },
  "r1370": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-1B"
  },
  "r1371": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480434/815-10-50-4A"
  },
  "r1372": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480175/815-40-65-1"
  },
  "r1373": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "54B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482134/820-10-35-54B"
  },
  "r1374": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1375": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1376": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1377": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1378": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1379": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1380": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1381": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(1a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1382": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1383": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1384": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2"
  },
  "r1385": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-2E"
  },
  "r1386": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r1387": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-3"
  },
  "r1388": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482106/820-10-50-6A"
  },
  "r1389": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "28",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482907/825-10-50-28"
  },
  "r1390": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147482014/830-20-35-3"
  },
  "r1391": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481694/830-30-45-20"
  },
  "r1392": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479424/830-30-S99-1"
  },
  "r1393": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479041/842-20-45-4"
  },
  "r1394": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r1395": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-3"
  },
  "r1396": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478964/842-20-50-6"
  },
  "r1397": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7"
  },
  "r1398": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "852",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481404/852-10-50-7"
  },
  "r1399": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r1400": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r1401": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-3"
  },
  "r1402": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r1403": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r1404": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481326/860-20-50-4"
  },
  "r1405": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "912",
   "SubTopic": "730",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479532/912-730-25-1"
  },
  "r1406": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477268/942-320-50-2"
  },
  "r1407": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478777/944-210-S99-1"
  },
  "r1408": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479432/944-30-50-2B"
  },
  "r1409": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477363/944-310-50-3"
  },
  "r1410": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r1411": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4B"
  },
  "r1412": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4C"
  },
  "r1413": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4D"
  },
  "r1414": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4G",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-4G"
  },
  "r1415": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1416": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1417": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1418": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-5"
  },
  "r1419": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1420": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1421": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1422": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1423": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1424": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1425": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(b)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1426": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-6"
  },
  "r1427": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1428": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1429": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1430": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1431": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1432": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7A"
  },
  "r1433": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1434": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1435": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480081/944-40-50-7B"
  },
  "r1436": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r1437": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147480109/944-80-50-2"
  },
  "r1438": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "205",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478009/946-205-45-4"
  },
  "r1439": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147478795/946-210-50-6"
  },
  "r1440": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(4)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r1441": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-09(7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147479134/946-220-S99-3"
  },
  "r1442": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477802/946-310-45-1"
  },
  "r1443": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(ii))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-1"
  },
  "r1444": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-2"
  },
  "r1445": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-3"
  },
  "r1446": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147477271/946-320-S99-6"
  },
  "r1447": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/985-20/tableOfContent"
  },
  "r1448": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "985",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org/1943274/2147481283/985-20-50-2"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>140
<FILENAME>0000851205-25-000012-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000851205-25-000012-xbrl.zip
M4$L#!!0    ( / S35IX<\;O:!P  $Q6   <    83(P,C1I;G-I9&5R=')A
M9&EN9W!O;&EC+FAT;<U<VW+;2))][Z^H]4;L2A&4+,F6NL=V.T*6Z#&G;4DC
MR>[MIPT0*)*P08"#BVC.U^\YF55 @1?+L]$S/7ZP)+)0E965UY-9>/7N_L/[
MUS^\>C<\OWS]ZC\.#LQE$3=SF]=F:G-;1K5-S'AE?BW*+^E#9$9Y; X.\,#]
MZ/[]\'5T<G3R/,VK-+%E749)FD\719;&KY[J]S^\>BHS__#JS?7E;V8\C8NL
M*']^LIREM7V"CR]'GTR4I=/\YR<Q%K6E_["J5YG]^<D\*J=I?I#92?WBV,Y?
M+M.DGKTX/CH]??E$Z=U%PM'1\>'GQ52I#69<1 G''-3%XL4)9N2"HP]_-E49
M__SDD<F>F#JM.4F58<3Q$R/D_/R$]#PQ,YM.9S7^>G9VZK;Q^M7;ZZM[4Z5_
MQT,8[VB8%'E]P ]?'"_JE\*3%XXE(UW<W.OJYH;+KXSY9,LJ+?(7YMGAD<&_
MBV*:VZ_X42X*G!*^PH>['C[&,S?7[T<7OYGK-W\97MR//@T'YN;C[<WU'7ZY
MN[B^P8_;X=OA[?#J8GC')X[-]?BSC>OTP1IS/[.F:/\L)J:>I96?'K_5!7:?
M+4Q>Y =VOLB*E;5F;N=C4,WAF]3^UW_^='+\X\O*C(NH3#@F24O,7^"!/7YY
M<O3RTG\B?Q^_W!\8#)RD\<Y935&:*#<1!F4I9'?'*+_ M9NLFS_*$^,WL&N-
M?W"1H9]NX):11>IB:NL9SFJ9UC/C"1D8]Q#G*]*DI<S$!:99Z6@GH,9)J#%9
MM*S<K'H.B](^4(?Y/\[*FFBQL%$9Y;%0F\X79;' #&LS'8;+VZ^>WKF-\FK;
M%KEDQX<=_#HT%*<3<]/@HTJ$J9.=Q%9QF8ZMG_Z_*S/-BG&4F84.P(Y Z[P
MFX4%J>Q!V%#9N"G3.L7#P@#YL+35 D(CSS5E/(LJJZPQ593M/-)N*J7VF;F+
MP: ^K>!AQL4P=91EII5.F=X?F!X#3$%ISCUC$G.#LRWR3K*=HK;'>]A;*(9Y
M2//&+;7@N>,7K]V5F1195BQY\CQ:&,UYFCOQGYBJB6=F(>NU.E;9\@'RQ5D@
MNRK?8N.%98X?#1;-0/[*? #-98HSN((ZWS1C$,75)T4YUV5PCF!KI:XA6-"
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
M"_I?@H9I.??D>0)<T">Q*7[LI?MBM%D)MDM!2%J06&MD>RF&.*EJ<7(1UD<
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
MGR#*%]<?;MZ/6#%]&91+/XVNWY^[2NE/2+Z"CHCU/DK?4BH](]3.@<!A>B?
M:E C\7G5QMJ=*+@$<E>SA).W@6D6:C23 -99>W-%UU<K.SLQYSY_[I&S?O5!
MWOTQ7O7;&OJ%26F-EZ;@X)4878F?,7)7Z9++_8^=JGM1!&-9MMOKO5YR@;%!
MS0<_LV+)'<JF0ZA\(>**:(N;S[!'_%\+^(GY'J1W@K&[QAQ=).3.?ZK1#._O
M43XB5G&D.M.UCPS:%EWA7%NOK+:VP[MRF?9D?T>+.4\\RBH)K[*V"ZW/<A?Z
M^(;[@G3, QX+D[NK'8\6".]=38-LE[4K:[_TV!W#JGA>\E#%N(CDMHS@:RU<
M8,342$&IG1=I6JAI>ZN93Q RFX1;);]CU[22:*C5SMC!JC\=/M/[;ZM>PN3-
M;BOJH:(YTSRQB4B(7(JE317QG[)=,U?A[^U'@GWI#/?%V#Y-/"E^W&:BX6LN
M7)U."SLS&SP5WJC[=LG'^<JU1HK3HY\.SDZ/#IX='1UI%Z*\2$;: ;231EQP
M)-=WTV@]>@R[Y]LWZM1V*OG?NZ)F$VQ[HUW+""W 8,8%P_P9,A=W#T$:S7-I
MG(5JY"MH7!74Z3PXN[=<+@]C(00_YD]GNLZ^Z\_U///:4482.&K#8UW[ZX3*
MJHCQ<HM;G,,<UOU>)P(S6RJ-X)+<())V"#!^_<EVZL$6MS<PU]BB>X'-98FT
M>F"N\ TO#7\X-T?'/YX=P?+^"3[E_/+#Z&IT=W\K+H2?'?L)F<"7'H5L>_(4
M41LH K62$X5?MK7U^.!#]T:&4*H]J*B7D9C?_,D!["I)EZS U/ZFTWJ0+ 8R
M812%K"> @H+K:^>N5U#?S;0U=V!T4KL6IV0;O#DOH >^9O"@8>3&0M!G]GI(
M5*)W+?D&#&Y9[Z\$@P?L@F/R2QM"E%-66=\P.S]O;H;(B?['G+\P[W$<6_L&
MY:J&O!%$WO\A%2OJ)>_M=-?<-E]E0A?H6?;8:XZTH]+!ID[A_4M(-G%B;2]P
M5SEB"8ZIQ,%%HM^#HHX[;U[T:G'F[N+=\)+5..5-6-CY%_)'D<Z-ZM*_C#W^
MWQ^8/Y[]GOGCV6;^>/9OEC^>N?SQ\OKBXX<AEH4!O?B%X;B?Y8IUJUTKN)]N
M(?.)"Y$=_WMI8[E:U0[1M]/U;1ML5^<H_,!SETUIBG7>-4[+"ZXD^BW*+.'U
MV/:9ZV6.I3;LK__Z5HH)YJTTBN7X8 B3N(*JE7! OR$SZE:_AG^0&'>HZ!-,
MXZ6\>>DO#3S1\<D VSL^:8>_9]!3RP+JHV1LN_GCLX&PPW0CWJ54$;!.AGYX
M>OGT-[(/ZBAP,-V;?W&:NV)[=/;T^.2I+/N)K\7<HF97V%W[YLRCIR<_8OC)
MD?G$=Z!]B,HOYJU%D@A6?EPDFOFWKRJ45YGVK@$N6,824!;[?7I\]E1V($?[
MR%QPI8SI_FY= C')F&"U?DA?CN60P_#?/U7?UW[PK:[RDE>^1?;_ %!+ P04
M    " #P,TU:1BQK=']6 @#UYAX $0   &-G;G@M,C R-#$R,S$N:'1M[+UK
M<^)(MBCZ??\*7<^>Z>X(< %^N[I]@K)Q%=-5MK=Q=4_?&S=V""D!=0F)T<,V
M\^O/>F1**0$NNPI,BF;'.3UE$*G,M5:N]^/G__,X]JU[$<5>&/SR0W.W\8,E
M B=TO6#XRP_MWGFW^\/_.?NOG_^?>OU?[VX_6A>ADXY%D%CGD; 3X5H/7C*R
MDI&P?@^C+]Z];=WX=C((HW&]SC\[#R?3R!N.$JO5:!VHQ]2WT>FAW;<=IWE<
MMUO]H_K^R<"IVT=.JWYB'QRX8O]HS[:/:L/3?JL_:-GN4?W@^&10WV_"OXX/
MG&;]I-$:'.\?[[?$X+CFGAX>B>9>L]]O.0>-?;NU=]+8<P<G!T<G)R?'3J.Q
M1^\=)7!F.'<0G_I>\.67G5&23$[?O'EX>-A][$?^;A@-W[3@Z3?X==^.Q8Y\
M/(Z2[.F!'??I2?@0GF[MJX>\QV3^DEX ZPF$XYLDLH,8P60G 'C\>:/>:-6;
M+6V1>BR<PD+P]^XPO']RG>9!O7%<WVNJ=?#EKI<MHQ_O\ U_J3_J/0$,+X@3
M.W R8#C#X#%[W F'@7C<=<(QP:+9RK>0QO6A;4]F 2>_* #/F;K%S:I#PQ>%
M!UWAS7\0OBBA8]&9FGL:*#,HQ$48/.PI"#3?_.O3QYXS$F.[7H:%%X?[K>;1
M4]#C)^0/YKVB"43ZYA&)4ZTJG 7 @"^*4$NC"*[M= 'HY+?%GX1ID$2+?L%?
M%GZ0)M'"XYV\@6\S",Y<JL(!\5MZ]-2W@<GLB*#^N;=S]O-(V.[9SV.1V!;^
MM"[^G7KWO^R<AT$"#*=^-YT M!W^ZY>=1#PF;PA6;\[^Z[_^Z^?$2WQQAB19
M5_3W\QO^\.<WO'0_=*=G/[O>O14G4U_\LN-Z\<2WIZ=!& C8@/=XB@^*B/_I
MN:X(Z)_P_15PO<AS^/V/R:T8_++CU('$ WN,*PGOM U\T47>>.G;PQW+ ]0-
MZGN-G;.![<?BYS>%A5ZPKF*YEU[LV/X?PHXNX9,X>T-SYPQ/O*P7W,#CH5M\
M16OG[/*/;W]!)P!$3,_A%9'M=P-7//XJIMGB>SMG#?B_XX-FJW'P[2\Y)R+7
MH-0)W L043L6L\=?=H"EGKKP27T,JXSJKIWO87_GK-EZ@R0S]_67D>T@?[72
MP..7QR,[$O%.:4-[.Y8K'&\,"/]EIS$'!.$8WMU+0N=+CQ:X3A/D(RAMB_L,
MTG'=#9.Z7&['PE,)6E1N^0"V?'A2.SX\J!TU,^RKG2[>>1J[Y6VWOK+MF[3O
M>\ZE']K)2W=YN'-V7 /666L>-6K-X\/OVF=3WR<"FS<JQ<CI-:@A$8!X$HF1
M"&+O7G1!DQF+CV$<7X:1\(;!N>2$=R@V?9*9;??/-$Z0_N_LQ^+Q!MZC<.O_
M$5&8G6Q/G6R_>;)S]H^_';>:K;??=:A]DP[5:BSG4 =&':KYU4/-YR][)^6-
MWT3A1$1P(T!T)>W [8",FN"./L=BD/H?O8'(7HLW].;@96QSO_E=;SR"-[9>
M^,89Y%QZ@%CQ$9#B=@-@3D.O[XMV'(MYKX2?O_R0!]_WRF^!Z]'WO1(!>_BR
M5QYDC!25$L2CFSK)[W8$! WH)"F;O>  2/2FN>@%RV".^>6!"_8Q#(9W(AK#
MR44$%V]B!WS1^#WQE4BN!S.7[*O<?O\(A5*M==0$EM]8'E=LK.<PA\\XS +<
MM[[I&FO[0]OOU$VC*2@R^8Z #%NOR$^.CE_.3PYF*&\Y1P=I^S+E\&!_)1LY
M;KP4!P<S[&XY&VDNALCL%0-R[XOH29[1O;HL<*Q/]J,W3N%:W0N^:]>#<[Y=
MW>#&CI) 1/'(FV0W!]5(M;>6MK=G7IEGL<NO @7$T2(E_EGOO17W(DC%C3TE
M/0/82CSWK9KQL'\,UL->XT5OG1%'%_#0/6@Y]RR#>@G8*0QS$%1VX'A@F(6Q
MAW#L/":H,X&XZ@2X..E&:C,G+0#]4WZ6OY'N12^)K\* 70/)BS9_N+K-[ZU\
M\T] _J-G]ST?[)WO.,#^<PZ@7N2)%:!@&:<X>)U3@/U:/@>9Q>_L6+C(:V"/
MK/DC%QC28=Y-\T?D+6T_V)%+__D-.!68TLPMFNH\S0::-3?[+_1@',T(\15M
M#E7HO9=N;D:ZK6AS!]^RN1D=8$6;._P6M,Z(XQ5M[N@IR'VOA,[O_< +<.-!
M$GG]%)=$K:(SGOCA5$2?[,09P>X*WX.63%R!OIPCOIO-0[@O!R]0X&,Q1* \
MJ<3/V?P5'?EZ<"LF8938P(UZO- <F0O@>0@C-Q;!K*K>W =&<A8&XF4J1^LH
M8S_"<4_O *%1=)$J9OBTU&\> )6?[1W.ROTW1>=Q) 8"/1DBGN/S1E_X:4PA
M!=B41;[QTV0Z@2W%'N 0XPOTV2BB/>ON[=U',)O>\/ORE\AWQF$:T5\4U#E%
M3-'&T=12'XZ%':>1.).1B=//O8N?WQ2_4G_C[V?6DC[0\G+\%W_YHO5@;T";
M=-6R15WOWG.%_N@5RZLP^L9CS/P>/[P003@&(3EGV><>I[#$F^+NGSJUO/?S
M7SN!?[X(ACX\)/X7K6"X#G CR\N2DEMZZ&5(__=@=M4TB4[QBY>M-%Q,BKWW
M+R-%D<Y"4*W5^7S[HK6<8+IPK?.K/UZTUO@Q6+C6IW]=O6BM43I8N-:'SY<O
M6FO8GRQ<Z_V[FQ>M]>=D,;S^>?,R>#FCQ6<\__"R,SKV8OHZ;[^,ON[#1,R_
M2[_!-R\#?12FL\"GM>BKE]TA*7CG+B>%Z7,6E(*1X09*A_I<4/Q'_06\#/X>
M>"*R2&:)N=D)Y]U?BQ&]\H^S'117GY &I?Z*$SM*,'Y'P<UZHPG_3_TN_R[;
MIIL_VFS5]YKY*_@;];=ZR9O"N>>#H64 &#C/()% .*RWCK.%Y#??<K(]LTYV
M@.AM'2[C9/L&G*Q NGO/)]V]Y9'N@6E@:#T?#*WE@>'0 # 4;G#A9-]#YT=F
MG6QO>2<[-NMDK>6=[,2LDS67=[)F8]5'DVR#-1K^TX67/4Y\S_&23P)M*,OU
MQNC5# /-MZ.<H!ACH00<MGGB]J,'IJMZ3$O,X;5^?C/W%1DXLIVL#^8KU])6
M#/.VZY(OVO9O;,_M!N?VQ$MLOS+P7[EZN&+XWXK$1M]AQXX"+QC&E0'\RK77
M51.^XZ3CU,?T^46)4)7!Q<KU[2HS?@,TX.;*+8%-D1(F(&OE]DKE18H)6%JY
M[;6)\L<$Q*W<M*RRL%J-S=M<N=&[*?)G-?!O5=TR?U4K99F K[QYOF8K99FX
MJ+JI_GI6RGK"%:W*F_1KL5+6A*RJV_RO;*6L"4N5-_S7;J6L"7%5=P*\EI6R
MQ)ACJ_(F_1JLE&7"O^J6^:M:*<L$?.7-\S5;*4O$Q5[53?77LU+6DP^X5WF3
M?BU6RIJ0576;_Y6ME#5AJ?*&_]JME#4AKNI.@->R4I:8\[E7>9-^#5;*,N%?
M=<O\5:V490*^\N;YFJV49>+"6%-]85>5=U/L'5G$R+O4\['K7F7 ;IRA'D?)
MZ2U6R#-@\<]/7H =8[X"T]4BM LW*[RG.UD9_K9OG.4_#[G<#FB+W)<BUSBO
M@2$WEVI441*FB8@^V)'[8$<"'NZ%@P3_61D$&^=I,.3V;@R"C752+&YB&;^;
M?K+_#*-SWXYC'1UIG("V&5%#&-L!135P;P7W5\5N;E]CJZMC+N:@VUC71D70
M_2Q68PZZC?6J? .Z0^P9!%;FG7!&0>B'0T\@RLGH+*^QO>G[QCIT*HCZBMUZ
M8UU*+T)]UDDM1"?2!/#?'D;B60;27^%^&^NK,AK)%;O)QGG&O@O)=Y'MBK$=
M?:F,@^.@$MZK57$N V*Q!Y7P,*V*JYB @$IX@-;HG,^^K Q/,\[E8XA/K[H8
M-<ZK8]@=O4PC4%=2\M!>>H_XK^JH(,;Y< R[KI5&KKE>&MN+?K/]5+R;9O_\
M "O:D3.:?A3WPB]A03W4#29I$M,3S671@[:93]SI%4]S&8E_ISA';<%.M$?C
M6X%#'"J4%'%@KA-G"931VE+&MU.&N9Z?)5#&WI8ROITR3'87\9">+APO2O'7
MY93E:!)&8*2^"P.WAX"GX3M5@?RA<7XBHR&_Q,JR0^,<1,^&_.?>743L9OK.
M\_T*$KUQKB&S0;],JC?.A_-LT/?">T%3D"]$/ZD@T1OG:S$:\LND>>,<(<^&
M/ 7&WMG.%U%%W<9<'X5Y<%\FO1OG :!DG'QFKAHG5^(RHS!*>&:U>O"[(_E&
M*[/+O&K&F?;FHSQ7Y2J(;^,,=O/Q77']\<@X3X'Y**^T^G1DG(/B2833EQ_#
M8+@5X=^&;N.<(F:CN\KB^\@X+XS9N*XV'S?.\6.^X*YX;.'(.(^3^2BOM,OE
MR#A7E_D(K[A7^:A:7K:UR_"JL_1J>=C6CNY75\^7B>MJ>=?6CNM*B^[C:OG5
MUH[LBHOM8^.\:N:RU"4:P<?&>;?,!?LRJ=TX1],W56I\M .W,I1NG+O'3) O
MD\J-<[>8VWYSF6 WSNGQE^NC>&R<$Z(:*%CF+3#.,?!M_!Y4'#$*?;>2U\ X
M@[TB.%CB/3@QSHY^>5_."O?C/#'6KC47_,ND?F/MV\WN8'&R&0;NZ\!]F?2^
M&59NE5M G&R&U?OJ*%CF+3#. L:>*MG\E?<B'$;V9.0YMBR@=\(T2*+I:>_]
MRH#;.*SO-98"7.-LV^\'[@J4IO;Q,1RR]^\4M*7+,$QN(C'VXI7?H>6AV3C[
MV4PTMXZJC6;C3/0MFE>@E#0;QKD!_N)X+K0"I0O]O%:@I;O_/:U FPWCG!-?
M(PK"D0U;"MZ+:&P'T^I<0.,\$0; VH!^N,V&L:Z*=VGL!2*.VP[PJ]@K)1OU
MVN<]+_+2N.W>VX$CW/,IK!.(Q'/B]^/^A]6SK.=B:V^9V#+6P?$TMCZ%D0?G
M4-FV\.6&WB9CO1^O/Y#((.%CG$/DN^8.7&!C05#I\ODQTUMO.*I.8+39,,Z)
M\MK3/@S"A7&>CJJRK"6Z<)L-XQP3%619RT1(TS@/0A5FURP5 \:9Z]^%@6^9
M]F80,HRSYQ5</PAWZ 7#"Q%[PV!.=2D(:U=^)U:02VR"%=(TSJ9'9\MY&D5Y
MJVI'_G7:>W_Q_2[.-2-]1:I9TSAK_Z^#QZ4R2^.\ D_@L?/Y=I/PN-3[:)P?
MX:^#QZ7>1^/<#T_@\?SJCTW"XU+OHW&NB[\.'I=Z'XUS=CR!QT__NMHD/"[S
M/K:,\Y'\=?"XS/O8,L[3\@0>/WR^W"0\+O4^&N>D^>O@<:GWL4K^G/?O;C8)
MCTN]CU7RYVP8'I=Z'ZODS_GGS4;9'4N]CU7RYVP8'I=Z'ROES_FP47K.4N]C
MI?PYFX7'I=['*OESSML;%;=:YGW<JY(_9\/PN,S[N&></\<\>"_UWACG=S$/
MWDNE;^/\(X; VX22E3WCG!XF(J?U?.2TEHD<(ST93Y3EX=?M,1S1L5==E;JF
MY+T](YT29J!D72S,2/^"&2A9%^,RTE7P%91T4JS$WU"V9:3-;P)"UL2T]HTT
MWDU R)I8UKYQ5OAS6B"\CP0\$)V/O,#>3,ZU;YRU;AA>UL7 C+/J#</+NOB8
M<0;]<_!"Y7;MV-M4)E8U0_Y5D;(N#E8U4_Y5D;(N]F6D,7\3A6[J)-=13T3W
MGJ,W90-\!:X=N?(1&^=4TC,;Z@#;-]*T-Q%!ZV)K1IKZ)B)H32SNP$C3_PD$
MM2?X0PK!A /5Q*4W$0Z\SNF%?DH-7#:3W1T8Z18P'5EK8GT'1OH*3$?6NMC@
MRAT(SP!$GO+0/*XW]NNM?*'O27DX,-,(']F1N!63-')&=BR +L' &&OD.//=
M)QO^!+PW5IILTJ@WD LL!_)F6MHF0=Z(RV^F[?W-:&JM](*T\((T]I9S08PT
ML(V"O!$7Q$@SVUPTK4OC--+8-A=-:[+B#E=N<J^6K8"&U%H.(%9NSKX<$'BZ
MO6=>W(8&L^\#Q,I-Q9=SL *:G[X:C9-ZZV0Y@##!#"OSB!-MB,BK\0CC;+9L
M0HQO!U?V6'<<G(?#H-"P'PFHEX3.E^L)I4H';C=P\-7W G^^XF*!QL&RU--#
MX^RW%V*A":!O-1I'3R!CY?.WEH<-X\PTH^]$62,%/.R_.ALSSKXS&F4KJC$[
M-,Y\4UAH/]B1.V>8\'CBAU,A-.!7!]C&&6%+!_97WXAFWZT=#$6>K?O)"[QQ
M.MY,B^[(N""J&3BW'S<8Y\;%8DU@JD9@QKC ZU<P<R.B08AS QU!SK*OJ>1;
M_EO&N''IWU_!^*V(D\AS$N'2;?P<>$E\V_N\Y<$OQ+NQ7I+UXWVC[[NQ?IEU
M<OB-ONG&^GZ,T;;6%'0\,M;%8PQFUA2U/ZJ:VZ<D'5?LF%Z>R^>H:BZ?E0/:
M!)%Q7#6GS&N2_S(]GL=5\X1\FQ9>4?E\7#5OR'JPLR89??S7\%Q45814S;_P
M4CO3'!WJ>---^JI>@:H9WJ][!9:J1U7-DG[M*[ N#:IJ=O1KXV5=NI.Q9G<W
M<,*QR)IG? P=K64LY1K),LSS,$ZN![?B7@3IAC;[.S'6##<22VOB<2?&VO!&
M8FE-'._$6%O^22QIMJ/ TIXVP #0Y(<3?+;S.('5-I7[&6O?&X^Q=7%"8VU^
MXS&V+JYHK.O@Z[*K)WS?"X;O12 BVP>DM=VQ%WAQ@AGH]YO*%(WU*9B.L'7Q
M1&,]$Z8C;%TLT5B7!2/LSGYLI\DHC&!K1?EU&4;"&P;G81HDT?1[TZ06OS6O
M_<DE)UD.Y^%X[,7X<Q'%W4CX=K#J@2[K8L.&^T],)!+B-#H'"8/K ?R$_K6Y
MC<];#<.].";1BL.O.OWGXJ'85:4"P[U$)E+!KYM'!89[H193P05\&R>>\SPR
MJ"IZ3.BAH;4R/%E>B+35,-PYLR0&] V4MYJ8- "IJ@!?^5U?%<0-=XX80>)+
MS#QJ-0QW;IA!XDN%N+'>B=]L/V4'DN^'#YA \6YZ(08BBH2+>(ACD>CC+^#8
M\'@P_!C&\;D=1=-!&&%.QNH4S,V0*L9Z'EY( /#1.7SC)5OD/QOY36-="5OD
MKYSU-XWU(+1A!=?#)O?WHB><%$#NB;CSZ/BI*]S+*!R?A^-)FDB?7\>. F#\
M\8V(*,?NW73^ NNN/5R3$=HTUD>PH7A>3V2PU30VOV5#\;R>@&*K::SCY57P
M_+H%L^NZR\;Z>C80Q^NZQ\9ZES80Q^O2O8QU:+T*CO\:54FMIK%.M(W$\KKN
MLK&>LHW$\IJD<LLXE]C7AC_+Y(;/O4V[<"WC'%3/GL.=?]>.Q(;FH;6,\RNM
MY::LR#7?,LZ;\Q7HXM>=- HG*\CC7A6,C?.D/(?!O >.DHAH11FNJP*U<0X-
M8WCYJB!NG'MA_8K,FNS#EG%> &.(WPCT&&>^KUN166:8N66<V6R&(K-,&.]5
MSFA]545FJ:#>&J6O#?&MG3DC*=?D'-NKFE&Z)D5F7>BIG#V[:D6FM4P^5#43
M]I44F:7"N')&ZZLJ,DL%]=8H?6V(&VEG?K+_#*/S-$["L8AB?0:K_*RUK#SJ
M\Y!&MG*I_JT7?WDWG6V8J=XZ\_ *=_%.!,YH;$=?2@T&;%_$LA7%E4@V,XJS
M9Z1YOB5*,XAR38KLOI'^C"U1+B+*MD.:/-"E([Q[N^]O9K>TUKZ1SI^OTF7S
MKTJ7?PUF:9Q_K-"A"7_S+HV]0,1QCY?0:50UR=0Z9+8#MQ,,X0< A6 H^V5N
M:%+AOG$>M2HB;TV!PWWC_&U51-ZZV*9Q[KR7($]^E+?2G,7;AC),XSR$U4+;
MNEBE<=[&:J%M74S2.)>E0IO"5MOY=^K%7JG3\"=LTR >S\-H$K*=L.IP=Z/>
M/%Z*EWC?.(><.2 O<;("T+_"R?1'O^M*'!CGFS(4/R]2$!I[RV)9!\;Y:,S%
MSTE]K_':"MR!L>Z*)>/GV>^]] )8^:-W+]QN ()CZ/5]01V.XG=3=N[Y=AS/
M][+="I\V$X^\R<I'C"Y-R!T8Z_:H!!&P=S<<3WR1"/=..*,@],/ARGM/+0__
MQGI.*H%_]:.[R'8%NKTK=/.-=;M\#M(XM?WKJ!L,(O'O%'[=!<NPU.O-BS;4
MU#LPUK%B"F+6Y#HY,-=UDO9CQD?G'OXS&PHL/;!2)G50;^!U6 Z3,M;M,=L7
M,VX'+KKRHWL1SV+@<^"$OB^<!,5)'IZOS##ZUH&Q[A!S46&"G_[06#>)N7A;
M427PH;$>D4J@8IDIP(?&.C_,184).MBAL?X*<_&F7:'F,J^0L:X#<U%A@GUY
M:*SA_U*\R:S")(T"?##_5664ZD-C;7V#<6&$5FVL+\!@Q*U*K=X8)\%Z<+%4
MO7ICO 3K8FAK4JR/-L9-L)Y+M$S-^FAC_ 3KND1K4JV/-L:K,/O\]: \]JDZ
M:O;1QG@-UH07$U3NHXWQ-ZS_<BU3_3[:&'_"^O&R3%7\:&-\"R8PO76IY1OC
M9UC_Y5JJBKXQ/@<3+M>ZU'7CG!7"<4^[@>O=>VY::+?TSU!$PU]3 ;O9T'3T
M8^,<$(@,3.ST@F$[BA8@XS;U1?Z0'0RIA.T\'(_#@.9IW:21,[*_6I=F*FFL
M2&D\-L[%L1QLH\/C+XMI[_$TTJH@+#MRHM O8A!_LAM&PS>M1F/OC7SBS<!V
MDOH@#),@3,2.-8C"\:T8Q+_L#.K-QI&%_SVF_Y[L6+X7?+E]>EE:$Y_;L9)0
M+A34FSM6&+DB^F6GN?,&=D_;C4.XGR+F/T?"=@EZ /RSG^$_1*[>X9%H[C7[
M_99ST-BW6WLGC3UW<')P=')R<NS ^_X7B3G_39Q,<7=C+ZB/A#<<):?[K=VC
M@TGR]L%SD]%IL]'X^PX]>O9S/+$#]0,G],/H]&\-^K^W X!J?6"//7]Z^D,[
M\FS_AUIL!W$=!+DWX*]C[S_B] 06IK\>Y,O@QW!VH5X.%^3O;Q%!=5<X,EG^
M- W@H/@4;,1>[P:L420&O^S\[>M@!EWX#@/S5CBPSI'H@N3G-S: 'J&H,#"+
M!SL: BJ2<'*Z!SNEC=B^-PQ.L7F-B':6@H5FLP2%HSE0V#G[?-6]ZUQ8O;OV
M7:=7W+BVY?7NL=<Y_WS;O>MV>E;[ZL+J_.O\0_OJ?<<ZO_[TJ=OK=:^O#-WX
M[S:PG6"8A$'-NM@]W[5 -.R?O/9F6ZUG;?;R^O:3A2PS"(.K= R+.);DI+=X
M'QSD5X&- M 5WNE%Z*3(RE&!WR&V!.QPYZS9J/]*K"M?Y<R:.?%2SG6LCD7+
MG'H)@,[YZL7?.?OQDQU]L:X#\=/3F/ "E-ZGK7WBE2_$A?4Y\)S0%=:GWG-I
M:/YN7XZ1=A" F+X5DS!*0'3A:+X$A :<"+25TWX8^GT;3*ND'SXJQ+5VSO[Q
MMY.C_<.W9=PI$"T37T^>U[(L/H 5T0FL21K%*4A[D)Q6#W.BPN ??VL>-MXV
M]T!\6LV#']V?D $G(V'E(PJMSB-HN: /66TGP:^;)WO[" QZ;N#%#KQA*NS(
M B-!N-] ^#>D='38Q"C ^=2%3^J@@24C_%G=M:=U?%5=! K@>SMG%\)A36NO
M6;-0QYFY-F&TF00*"FO !70O(M)]2:3[,T1JO3Z5YF=8)9TF^5M8QR5-]+6/
M^Y2RQD?\GO^^.NZ2< N_[X'?[FLK,.5MS==?T.CU8K18K4L/=')@#LA=5PB>
M>?MXTK!Y-J?LD%F,Q^!3*!9X@$Z&9GUOOX5%MZ\FJ><#?%:M6[76??3*"+@5
M0R]&'IQ<P3<*"8= :]?OKSK_ @/D]J:,ANO;]MT:+))O5H8[CS8('CPY2I\H
M.[%EQU8\$0YZKUS+"RPOB2T051%L>;'BK-FV!PMLVX0L9OE\GQP@=4QWMR>Q
M.%7_>.MZ\<2WIZ=>0'NF'[V5J_?#) G']()[$24X"$"^A-['7TO?QD&SN7O0
M(.THB>#_N^K-TO6QB]^]F?/%'BM5\[Y:^)O%BQTN<;7606NWM;35C@]V&R\^
MS_= [0WA(5+?9M3(.'+A5OI(7+_L[.VH9R:VBQ[.TX;5S!9_XK'6Y!$?G*6^
M,KDPI;R2D&J\3%EF#M0-G+RC!#6D.^?)..>@NL_JS3$^,8G">UPGMS:.=LX^
MV7%L.Z,T%DD2+Q(=;Q+W&V#KB\',17PI9.^\,>C"5^+!N@W'=O"M^@G!N*@6
M?=N9JDHO=_9C5\8<'**9HOYP#/K#/N9S[AT=+50@G@&Q["+.O\RMQO=?9BD9
M4)+ <U8<^IYK*2B;@;GGBUK"Y8]T?]$6#'%6C?4GF("QZY&E"++WYW[TYLS3
M[SL]&@WMP/L/_?W37_2>;B I='=O=WN[5F<\\<.IB CWQ8MK786[+T%X\4J^
M(87I]=3/<LAEOL7P4F[6=MT(.R[Q_WR$]9J*DYWLG%T'POK-(X/O(O+NQ=?=
MSE4&PCG\\SJZ"Q\RJ=YL[)Q= :TX7\HGK\FK]6UO(C9U'=V &@'LZ/E:1K/Y
M%37CNW9U$\)K_?_7F[#F(U_9 H'6/#ILE%]5;S4.7CW0\CS\__A\ "#.<9!9
MX<A[.V<'C1GA_=,+/-@?0^"&-Z,P*'D7FOL[9X<'C?H>G/K[+M-KVWC2('JA
MC7=TO%P[:HD&X]&^J5M[#M 6:(7-;]4*3S99%9#\K68!L_53/(#U'V]B86RF
M9MF!:R7"%Q.\K59 U[6F-$7YM T<0CX>#JQ)!-]X$]NWQ*-PT@0$(WP,6H6(
MEZA.O**[68N5L'=*1,)](MK2^K&?Q5G:3G(Z)_C\NNSIY&3WJ''T]\7<Z>_S
M+M/>T>YAXV3N5XW=YMS/%RW5/-D].-I?RE)[L%3SZ,FEY.5?FM$-=WTU%O>\
M^_B4]_C.2SC5IP,:CD5--ZOF9'CQD3FUT.I-Q_W0__%%'*1Z"+Z23O L) N6
MQ>\C#Y!]FS&> @ J3>HOL40D#YXV6WVZ!9G&>,!Q-P 499O6K(D=6?>VGPKK
MOW<;C1:&K:UX!")JN3Y',Z[.2T HKQ+?I Q^&$MZ?_6OUP".\<2EKAW'VLI&
MIX!O2_8FIE^"D+]J]R[:_\,$:&%NETBLCQ_/GX3I5VZN$OWP<['81?EM3U50
MH1H6%"KK"DZRXI2^)P^ N>@.NE+[4\L9"< Z=KJV/-ZB%L+T8LNV'H3OU[\$
MX0-L3M@Q[-V%+^(4%&F,<;IBX 4<X<1D>FN_<3 G2P?./9OV4 U%LM7:/6@\
MK;(]]_/6;G/_<#DJ*6QJ[V5+K7Y38":?O.S=KP"HH]WCYLMT]]5O:F_W:._8
ML#T9B;S&;F-_*=;2MT>^*QOU>>),$:Y7&?V&W=B_@QCZ%:503PJA+LF@3)DY
MWCG[0VPC\Z^I^2\C!5J>2^;.;QZR7HRR+:?Z*J=Z?3/U*MS29L78R?Z6G9@5
MAWB)U1F$B84#:3RTK,&@'F!".M>)Q%\K%"E^I%>-;(W0K1&Z-4*W1NC6"#56
MM7ME(Y0LQLW3$K8J7860M;40-\%"?*D[Z[?03X/$CJA(,8HS-]8)&YN;[\7:
M:$ZU]655P_A\& DJ)2E9H#\V?^*SCNR8;$_7LGT_,T!UR[0OY .P\/=V+7#A
MVV!(CTXBX0A*'6JV+.J$$5L_PGK8V"!.G9$5CT*L)%5M#9*1G91/\6#'LT8T
M_5@>Y"?.C_RQI9VV+P1@).W_"6?!']'S\$O<BEP,6U#$68N%B1TGUDG#<NUI
MO+6NM];UUKK>6M=;Z]I,M=CP$.]Y&D4@6[BI$>;Z)7:29JIQJ[&-\&ZU8O.0
MM;7?-\%^WT9X*\=.MN[ 2AO9:&V"H3GVD@3L4X'C>J,P0%SX4TL 7J96%RG/
M=J@&[\).;&Y,5C*_\S7TP+">BWPKABEWL;9Z];M5F]F\G\QP%O%/6[-X:Q9O
MS>*M6;PUB\W4-@TWBS4IB$)06LF96=S<FL75UF.W9O&646W-8J-ILTKL9&L6
M5]HLIII;'TP\8=F. V9Q9*-MBY8D%MP&<S^U0/+7YWX1C\&>AK=$RJD.,!O#
MR:<U#$\+4!:&^.$P"A^2D?INU^H)01NCZEYJH!^C)?V/OQVW6G#&!=NCKYMO
MU6-??6#AYM1S&)[>6;#)G:SDN-GJUULJR*Y'UG>M'\\)X&$@?C*]D<UBH^)H
MK[44HV+_8/?D<#GV? .,\+VE;*JUVSI:TO'VP9![VOSZ]H8CR^"*&ZH[OKY%
M1#ESY\!7AF$TG=/J@AXBCN/(A_*N%ZW6SMG'^?QK&0U]MWJ$6:35GD6R=JB-
MXP>;@;2K>=K,7_8VOI0[]E"K>I?&L% <%P=K#;Q'X<(V_3AK0=7:6S@6:A-(
MJ<<J)IL/F9[)?TI%\ELXPC,I;+F/;2B]=J1^_Y[4^W.EW7^-;A>/,]L$NNW,
M-WIF:76MENT #=(%]ADV9'UFQ2^&@BD #+P>2W^3T$IC-D !+SQ@<,XH-S!@
M\5W^%%_^X,&KX;56(![0M(W$O1>3[ CLP$'Z!HF"LS_P81Q_[-J1&UO8AMMS
MY_?OLII[/]H_S3<L7S@MZG=X*Q)<_%WP#N>8L/P!=K0UL*78$Z%_F5:OIO\!
MM-'8MY-$8'MTA#X@ F<FC>W YK'<Z!5H'KV-+3N.0;3A1PHY8C 0%"%!F8<?
MXB\]Y(T!8!Y94!3Z5@C76B.(W.U 32PSM.\W]K4>N#T[ZMNP;/WZT1=32MC_
ML7E@?=[MX43:H]8A-LS]"0^>GU)VA.O[P/\TLAMXT9AS"";P;AL? DJE9FHN
M[=A.72^1^]J=-_;5)(?%-FU@(R//V[2!"B-OFS:PL6D#VUKUC;-_NLX@:J/(
M#Z-VKOA<^O9PGOF31&EN_1Q\=>+X)A')-IE@FTQ@*FHVE8T9XT\V &4&)1,,
MK#@O(P<3\BL]R*WR/)>%;AG=5L]M9)I5QA7?X6RG-IJAP\V_^6>R3GS@4_DX
M?.2$4234B$;R%D415HZ': +?>V$:^U-E <][ZYH\+<^7X1>AD^).+[V@EXR3
M#A[O/#OT(EE>=&4>DFMG@1BOF*L'77!$*6$L)+)S&E 4JU$5N4.R^@GT!SDA
M%7_8@>U/8X^].0%R2.]>U/LV.O70[2>"F/U$6,,!7U$+ANSM.IUF?J/R1*<H
MUHM!(N&+>R3K; O2T:A?*V0=1V];^V!.-2[J3;A;6U]@OK-FZ]ORG>*1\'WE
M.+9^G#-68&&.S[:Z9NLFV[K)MFZRK9O,4#MSZR9;/V)>U;XLC_%=4E8+J@C/
M3@XX,C@YP"1[=D, L'6/&8N:#65?QF1?&X"QKWC'U.,KFAK_/'.Y/1R"T8E6
MZ9@G'/*033 H[T.9$H3C#T'(D!^!ZFD&Z,^"G\QS?=GTX3_30#"X6L<UJ]5H
M[9]:_RTEVR75[(:!E08>R[4T=G=*@JZU Y:NXXU!>/VRTYB5>C>40W+IAW92
M%'I!.JZ[(4UBQ5\#3H"$!*TA1>#QSMEQK=%HUII'C5KS^% )0K6O%XZD?S5,
MR7FH\5?FH=:L,$THCPNQ)]%A!ZD=325&#@DC!Z?60H300G$9)WM?P0EOD,9E
M]FB!ZWPC+T72R<Y9\_"D=GQX4#MJ[L^BB'=H)J(NKL\_?^I<W?6L[M7Y]>W-
M]6W[KG-AO?O#NNU<=FX[5^>=V9HK(W9^5W9C8XYAG/5(M:T+6?9V+ZR;*'R<
M6CWEL"PVF<D;RS3WVY2"Z*''O<$4B"U1LP2UP%7_''A(!M94 &ES;N.%< 1.
MIN>?[369E>Q:-YB>)DOOJ)],>3/H3?4")XPF(6?* ^N*Q$!$(G#P&^O&CA)>
MM=OM\@:\6"68+42.!-9^:_<('6"3D!,O3R.!I[T7;Y4938J\]D/I-6OD/['[
M<>BGR>Q/%GLK]?_BVGA5O,,CT=QK]OLMYZ"Q;[?V3AI[[N#DX.CDY.38:33V
M_A<T?OF;490+J*&H]R-A?P%F#C1V:OL/@!,45=JFQUY0+YUX_F:_DS:_JEBT
MGAZO_;.]W@U8HP@9Y-^>A8L[\L "P9TC;PV2G]_8<]&\>I;0;)2.?31?[%R_
MO^K\RU*,K'M]]=J\ZYD;;5]=?6Y_!!X+^[RSKJ^LR^O;3U:S4?_5T W#_JR[
M#QWKCT[[UNI<78",N.B<=SZ]Z]Q:BM<MUD6D/SX))Z?-XWEFP:N>I0O;_]=J
M@BO/N9TS]NX3T (^MO/:D1#@F*"E-5X:"FGN[S8;+W.F+UKJJ+5[<+R<I=!+
MW'RZ-'FY]8/L*5T6/7V=HALKEC??NX/G"YQF8^?LI@WLL#M'SJS-'3:? Y.W
MZ;68UF:AN+D NZNXAJM SWRO2_>N _)[=_FNI!7SDWFG>5UB>^$.7D!L>SMG
M[S[WNE>=7N^;.,I+,?3*?&+#4;?)?**]910F4=OASMEMM_>K==D^O[N^W3*+
MZJ'O<&.9A1Q$]6[+,4PBN9.=L\]7MYW>]<??.A=6[ZY]>6F=7W\B3_J6?50.
MEQBUV5#^837/MZS#('+#UF7G?[SKW/8ZYY]ONW=_;-E%Y?"WR>RBM>46)E';
MP<[9S>WU3>?VKMO9:A;50U[S8'-9Q=Z659A$;<<[9Q\[[]L?+6 8YYW.1??J
M_99C5 ^'S<WU95C[6XYA$+7M-7?./G6O.E:O?=FY^\.ZZ/;./U[W/M]N-8T*
M8O)K?*.4%]B4J27KZ)"ZS;@P(QR_MZ\R+K8I%YN,X^;1YJH4!UN5PB1!= 0J
M1?OVU\X=9K1:MYWWW=[=;?OJ3K;OZ%&4Y/K*ZOS/Y^[='S5XXB,5'/3NKL]_
M_7#]\:)S:WUJW]UU;GLUJWUU875[O<_PV<WGV_,/[5ZG9UU?RA];TH.Z=8Q4
MD4HVF2<=;GF20=2VW]@Y^__ ING<_M:Y^/^WK*)RR&N>;"ZK.-JR"I.H;0_5
MEZOV^PYF<F0Z"SI&/O=Z7=!;4"6!!S[^T>N2*G+9O6I?G7?;'T&QN;KHWJEG
M@-]\_GA'CV#TAFJ1MFI*]:AA@WD/9Y8=;7-13:*Y@^.=L__Y# 93]PYXQF\=
M8B;PP4?UM^:DM=KOKC_?6=+>P@S6+8.I'+);&QP@/MZR%H.H[;"Y<Y:K*SW@
M)QWN_( LIO?YYN8C_=V^_<.Z:-^UM[RD<MAM;;!/Y63+2PRBME9S?^?L_$/[
MZGT'.\<0"P'-I/W^MB.9RN_=NP]6^_S\^C.P%/P #2/^LWOUGGZ0,Z-<J=ER
MG>K1P>$&JS G6_/(+'H[PBXO5W>WUQ]9<:%DMXMMSDHU4;G1K&-;LV<4O;4:
M.V?7=Q\ZMZ"P8+LEV1]JRS2JAL3#339S-J%:KWFP;GI[>@<OH;?#G;/<.L&$
MEO8M9M9C>DNG^_[*^N?GVV[OHGM. 1[K[D/[#E22SF]@ P&;Z=UTSK>1GRJR
MF<.OLYEM0NTVV7*&;DXXHS9KU[K-J]UD5&^P)B+[CC0V0!W9(+FTUT)UY+9#
M?8IJ5N=?G?//%!:^OKSLGF=)LUDG;^O]]6^=6W2S;CVK%43UYO.7;<M$LXCN
M8.<L9RKGUY]N.E>]K:.DHIC<?/:Q[59B%M$=[YRIOD;6]>]7H)!\Z-Y@$BSH
M)G?M[I7UKG/5 4T%@[[\/>DK><ZM3)Y=6!2T94/5HXC-9T/;3BA&$=U^<^=,
M,1SB)>B"!4;4*W 7K$OLM=D_6Y,9+&Q963@AX@:G7&SMIDHB__!XTSG.MI.*
M642'G11NNU?GW1O0;+0\M\M.1R;8=FY_ZYYOLU2JB-FOL9-M)&@;'IBAFZ-"
M).BW;2!HDS&]^0K'ML^*46+IH(&.V@_==UU9P#.GLL?JG7_H7'S^N%4ZJHC=
M#68I5G/;(<4L>MNC"9\\@=3J??[TJ7V[;4Q?020>/MFNX W-!%6?:]"7>ZG4
MK&B<);@=%KW2#6SVL&@U:U3?XL(IO#I#^S.-$V\P?2T6):?=>['5#H+4]JU;
MFOQNA8%U&49CYMD.K&![06P-PNC!CMRZ'X9?@"'#[N2<^5B-ML?Q]6-A!_BM
MFF8O .6P<BR<-()[+&++MQ_B77B5#=_$E@/G]%Q8!<Z-OXC%4R_J3ZTPC:PT
M%NH%#V'DQA8VU&DUWHK'B7"2N$9_-M^JCVU8W?$FL,K,5P( /I[W15_XGKB?
M_7P2A7_.>X>'I.G./NX#:LH?/GB^7_YL;$_+'\4C>_8Y)TQ]=_;)PJ=VX%JQ
M!Q1B1Q(^^$D(X(IT8 ($[>RY6 2QV+6N ;J#-$DC844B3GUX#'9FN=Y@ #]&
M2"'%^5-K$(5C"W :P5+9H_@:^B(9A8 B"2OA6I(XGL"L#?]/KH,;^Q*$#P&M
MEP;\[\B+O\3R$P=D/M DDE-.20P$:P+;G=BH$Z1X+CM!E@'<QTI"I.780X+$
M#V++%;$3>?U\?T"E]*AC3_!_X0L)X%MXN75I.TD8Y=BT)Q-A1W@.^/D-O%)Z
M9/A_ZE87SB9MW#:3ZY,W;=?Z7<";4]I!) \5A EN',C($7!P-T6\^)X=X)^3
M$$$TM>+4&3T!VYKU,/+@B1BV^P5>"=BS8W5_7'@*\.H*>KWKQ8YO>V-:-NP#
M4[(5[.*T'XM_I[ @_#X2]][3-Q5^ 2S>!X#2:T*':<6ABYM?2"!+N,Z!_@'<
M.J+.R'*\R$G'L"C\#%"/8C??,QU:)Z!(GJ,B?/=SX(LXIO,@BX7-\ U]0,!&
M &D/;D-MEL>=A\- /*I#+F&_A[L'SQ'FLZH; K*^MSMG]'O?C@4K&D#_1_MO
ME[C;9T(WNZ0(OPQR8WC_#)M]$.5/0,24/TKC G?-'P3DT:KJ6R!ZI-+08CS!
M_T03J?_0+ST@561#H>^Y1.YXKSS7 T8"S&R6=I^ILN[M/$WP)Z])\/.U(K;/
M3ZU\<K)A]W3^ME$B2LHQ;L?S:?\R1$6;A%KSY+A9FT>*/TH*QNMQ7J1@8+P%
M5B,__PG68\Z,9 Q4/Q:1 WN%C0$7$\XH@$,-4<%+1G9B@=4>(7^+PW&FJXW#
M.+$<5 .!50"S#M(!B-241"@N"M(G 7G,$M!![4<$0Q3Q()F0O=N6#V(1GQ[Z
M81^6  7C'N4YOF!L.Z"#"@L$$_X<OG)31^Z6#$<2^;0W;XP_%)88#$#J@%":
MTE/_!L'L)5.$FPTJK0MLV(;WX^+]-(:UXQC%D!.%<"[0*R+8//!!>-Y-<>.P
M(5 !82/1%Y'$K$OE;P8;!KZ<C*8QG;ZTOT'R@"=$'05T#U2_\',[L/WI?^A,
MJ#1X 0C<,2&P9@%TP@>$!7Q&T 7-(>0O&1Q/0C>Q49O"GSJP=\ 1Z!H@9GP7
MS[UK?5H$3-@8*-\N;E2^3S!J"Z^#90MOP]<CN+Y(RP#5C$C 3SV0WB#D2):#
M3C(.^QZ8>I,1Z%[P,;TA)!@CEX4/29O!U41=4B \#>N"<0Y?@'7@APZ (!C6
M,J."_PABM SHW_ASL%)BWBIL?CQS7M#3<A42U)U[VT_)"$6 @=KG>XY4(8%6
M6+D:I0 "[?=> +H(4%1"2!T+D2BASNH*KH27&O:#JI'M3&L(-MBF<.E?L#+L
M6NH^#Z 8"!(5":I*0 L.WJ78OH<S,%K"/JK$B)I1%*;#$:$E$H@W21*^W8=U
M<6FF?U?A55%^550GR<] Q_!)T<Q)&( 6"$(97(_L8@H-3T72DUJCHEU41Y%:
M@19C,>[#,OAR!-F8X*5 :Y=8%;D8\#&\Q&"&*$L*J <(,]$WTB?E600ILS1$
M$K)- *)3H/B:)?EL$*=P-$N@*AV% 3RF+:=4>[@,?4)^)"; =G$_+A)J%#Z2
M>0LG.6S\'8D 598D3(""U#8 -*U&:]\\Y"^6QUT& +/M3\1OK>L)6E1I@!S<
MN*/,I^-9KD.\E>3//2J$<!1 F48]S <R:3O%WR#')I/,@6L!;W?)E@[PE@-
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
M CXHA4&D+)YMXX Z VG=\L!Z6KY* :0\$+VKA#ZJAY(\*3[F<\< ,$8&:-"
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
M>0.KO+5D>?946JSWR)@O6WI*H??FP5IZ<NB>9G"G=%_B^R.;>AQBK@L@E$1
M' Z2!YHF93O<SOX>Z!*^CL>4>BRB* 0=9JSIEZ0R,CO+,M]LRYGV\2HG\(KB
MN,&,\;(!R],_R[/BBL%?K3\O2A/0BGUO("/%W*<7M&,\N\-&5#06>5JK&M(5
MIJS7/H21[\HV^@I.8]B0@E,RPI0^F;XV!T-:&K3*8W,%>:$I$8T5:.+="N(5
MX6$[9^>(LPPH #=A)ZQ"T*1T-ENU <#%87V4U!Q1'1;*6AJ*2_A'4+$!@RM@
M7AH^2FH J"," .[&F0: %E$X9A+$U4=9(KND$9HT$<-KV5"A/6;S^^26*2MS
M-FFKV'"VV*)FFYRU,OLWZSM;&&Y?4Y,ZX6+R[ LJ^=8:'6C]'?-%XII4Y.>D
M_,NFO0LZ:$KL:TU_MRA?93Y>S!-HRAEY,K%#R]9;(#"ST8];%^7J\#3(2OKF
MM[G034&I&N1]/3'!57;VPI&4JCNF:MJLA5GS BJZG1.T &V*S&_#KZO&<FYK
MR98":FKI(+)3+L)@*I A(3721[H%2_T'Y"A44E]#V4^:G8XRCLNZJYR((C6
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
MV4$GA&PM4X3LL[5BL%>P#21TM7X/5ITEZ(JN13[9]EF)8<H""@5_)P_+:*$
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
M%@U:Y>Y,)+<G"BM?$I,V88E6Y_B@@//26G>7"H=453?$5CP;?55]7W$6>48
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
MH<,39^O/X>TW,U%.=-C;,/,I?!42$_GDTN*<E*\1Z'2CC02TG8GL0&"@>2C
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
M&B)<"]VPK)\D;V--<X7<$O\>F?N[+A%C50N\LGT7MAR(NRE"1 J?%BE\G=9
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
MHF&IIG5B7:B;I4M=C$:PI3  $3PBH";#>5<K@#<P2M3#67&W>&< :OL=@=V
M<O>+/<./\M"GTQKTC6S[Y,IUI9T7V 46W<].G-N@_9S"I+G#2UN.Q'<1#M^0
MG357]+"T3=7L['5<W(E[6)J-L/N7K54B+([:TMNJWBT]-*1>3HFZ.OE_=Q^=
MV8R,@6\_$W>9J2ALMEZY=V8MP!?C_LXJI(5#%+0<9US=&;4T@AK"J*M#UH[6
M&AAJ6SLQ:Z>N3/K:!=X<>CX8J&4:TM0/Y??.GP7DWD E*8SD.%:JTU,[.999
MW7FR5)X;PI-+(:B!(S@,U<CI\R:5Y3V<^ZU/%K8S5LCK@KCH/T*WA\?ZB:62
MDZ0678A+<[A>,;!>N&/:X.:"@G)7#<5L#;JF:O9D4$'JTWOBW?M VS:@;5_5
M<B+-S=>L3>VP@U2V0PC>7:D\_VY&W[+#^[-+T4,'Z$$'/MYMK Y>BR8B'Z,G
MW^%=WZ5PNPNXW>NKEI7%[1JBVJ&S\PZ($3>>>S:J=1X>K'"T(Y;U6@.SW5$U
M,R=\>\1<O!([PL35CJ;VK&P&V$'3\?:0\9:$2G;C5J7,J_+U=369E'<PM>JG
MYSX]$']^'?.KHH34U9$U:&K?RDYPJ;MR)8WDAJA(5> IMLENMU4CIU5HHZWB
MFEG"M[ZW@ 6 E%S,;#=4*8/&NK\%'AL=BR##3P4=FPRBMPC/"W=\)8"Y@[>_
M:[8&5E]MMYN7(2"C40UAUI7B*^9$:QVUWR[MRZQ7=*IF7'L()V:'V%-M1NR
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
MO9)UL(G=EMX:M#NJ:79+M&615"6IJO9R:N^JGX5IS6I':ZN]3B-4OY//*CC
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
M=L]R:!BC3D*K%8LT_OJ6L#8NDWZZ^Y0[8YBPZAN"V+_%@0' 4R<$=D4=AZN
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
M]>03GNJTU2[!9 B<UZTWF2D/K&Z3?5@)ZK#O%LJA?$$9Q<)K[Z_5VM]:K=:
M]7!>4Y%V[9Y190@U)X%X;R*?!ACOA*[D;.:PNO05#H#)P2Q.E;XYPF85N1N3
MS"S[CFE *VP.-8C\K+&F-"$N[N99A650B7W$'[7..OKAT>9QZT\TT3TNT0TE
MZ=%-JV,LU$YGZ[QX9T%(%HI )YHWF3&;J&I'K_-<4'3_<+%?@\AX$DOE+29(
MP%76=_::TJ>Y1$M$?C%'-*MEIN.7/"LRE1-%LS'Q&)8T1A3$1E'BW9%.ONZ%
MF4Z1V1;/>59*M#&1G<3/CZ51(^P V#3A4V3-QU"%;]A#,@H]M;!$^U .\=7>
MS9N +:P-FD,6=RVMT!%^S_L2W;)^-G^'Q8 R\K:BS7:VS>ZLM38K-J<,XPZ#
M#>1W+VP;#"NBZ<<L6V&"HH=2%H@2,@KY""56%\#R,SW_C[E-M3N68,4:V&)9
M*FS9P;I/Y% X5VX++:&CMP; 6+;5$CKIF1>K2$>7LI6<[1CORMF8N=!D4<RR
MP%D)*4M1='!B>7GQ' ^1S)<JU(ZT8[I4YFLZ5R*$2K:LI'8 %TGC1#^GN-%=
M:DV!0YM*YB24QUU\N ?N#SK^Q)F+SG4<$58Z.<88@0^)0^:L^W$\$"'.,PBB
MY_)!68FTIEA-B("7Z._+ O:T.& VP46RYYPG*8P*1WL6>$(Z4E DNOUP*9*"
M2B2;HVD0:X4T$,6(%U:S Q7S QX)=04PD;<VDR $L*+J%?? Y$968IMT+%BE
M@WBQJH+JXC@JRN/3CD?.^OSZSDET>$EMM2&L]Z<7B,;@?.&L0F,T@F.($U!H
M"X,$">=2&KOL'2K#X7-/<;O#E6*K6+>=Y2]JBR*F4HC['2YZ9E5\:Q$U)Y;2
M:9_&1+-X^TIB'.G[\*TM7J\+(-'#2FXU,>PLW6<BK[_O+SSI[7[*LH17NNVG
MHQ]9!_IJSE,4H9F2,=[(9F?F3KV%#UY8@TV1JI[I7_QC]1[:@.03$M/GHM-Z
M_L[[@B73@8G[9#^Q=\U9OAT?7Y;L##Z.(1O5QT3YY[2-*#-G?$Q0>V->2I2>
M4YOE'CZQ' 5LO3\BO*=I@"D*+@FI'(P</>*QU.$9/Y+9*WS. -PDA@J@]P20
M\XQ[^D573/3JLY0W9L.(U_ 38Y;:,^$->Y^B)M"\I6;^&L1XU\A0XSKK6J3C
M2V# C2'%YL.^;7%V= [A#V8\!]SPXC>+?.S5Y>!G%.]P,CJ9GRN_BC:1*@\M
M)KJZL.XI445RHG-)XK&I.1"Y>V7::'K*72J_EA=Q%]MRQ6&0.U3&EN2.1;3P
M<6NE02='&G1.0QIP*"@),#0D2S%I32;"DC[?D)/M87018[KP& 3PB'$\GNW3
MQ?WE9Z6K=57!6@1\*"U=1ER9/N]2V#;G@OM0?N!12N?]D1"%X:'X3)K@FFS'
MG%PJAO]=4=0X)@MGQ#F5*"OA'8OF6';%.RUCOU%>'Y]NF.JXB3Q8^D2?3&9$
M/#)59HAWQGX<F2&V,4.L+S/$9(98 S/$F,3*D6/&._.P,'\L+ZNL6]\<8330
MQ2"=!8F]BFATAC.F>Z6JKEF%:X:E,NUNXH/2@.Y&-CR+)6^([M4KK%[T[V"5
M,+P$_$W$NK-ZLF#8K!1F]?IDCE;2-1<E7;''L?H\D80F;DXDI;!F_ZSN#0?
MC)@*EGM5U+0[_]V\=*;S.36+48@Q6EKY"<MU@L_O[H &BN#W '7#[:)UA\$J
M^IRO-"5MM$V"QLJ)769.6&@(VVS1/#[A)%6JJ(-!D#!&Z<;2C=GC@#RSC^@@
MX)1E1WL2B(D%$1:(W*NX52,Z,9E%[;'"^,A?'2\ ??VBP!7M=S](IYRE2J;M
M!,WQLE]J?]*1S3R2,(J\F$S%H\F0:-TYA"?G\>4+2Y%]Q<SRJ,F#FC,:*_EM
MBOZGO'8<ZVOMJ .,:._#YRTE*O#3ZEK"/;=M/5'-R.0VP1:&6<8FJ*C9-+.6
M]P5"BV=F=839R'F%JC^F,\0!57*$DK!<XA!)LD]6MEC.)T_+F>WC$  RFP7P
M+Z P']/ LQ\C>F8^7=KN@U$#3P5C5KKC8V4[KH:- :=?85T;QMNBH=[H-/"
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
M],I4*49=<;JW\Z3JJ]"SA[7:YOV HU'NC*8L3#BV(YQVWH1U!(H37%"DUN3
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
M8$:5D.^6>J!<Z4M%T904F+)SFQ%"B9F_6T,'/3/VW-Y -64-X]$KS1NXX^&
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
MF70@W[A3]-Z(L5$_O=O4+R=;IGEL:T34V1T/H*&]NM+AQX#I;N:+ZQ^>/\%
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
M=K65BDT13C5.M4&@YD/&J?4&05BB2FW[ *F9O91B>"[1/U+7*@._>LAY0Q2
MHQ7,3HG#=1H,M%.6X'GPB]:7<I*!L\#D#;AE3H)1C/P[#B<C9->8+,F*$.@>
M>(U"C-*7@MA\DT" P&K@16_]92!0G-N0V:,>FVU.5G)19:"@3,3,.RI#_!^$
MPWIR53IW%S\#E.P6[PG$_6*^_I8"ND>C0M@P5]8D]W,<)6.8P79</8'8^?W*
M>X8AOO,FK]Y;C"=0_GB!LX4_W'3ZN'"K<ZYE9NX.$V-GVP@)CV[M.SBU2817
MP4"\TPY &D?(_'_P+9NHNOKTI U-Q? TW57TT;-KVJ[K.D-%T?]I]P:/5,H#
MUZ#C!'%Q__)G;["\9>FZ#B@6RYHOCZX54G*ZN?]\]_$?TLW]]V_WWZ\?;^_O
MI"OI[O[QXX/T> \?WSW<?[G]</WX\8/TZ?;N^N[F]OJ+]/ ('WS]>/?X4$:+
M*TS*)9BI*B N$UG+E9T5X:JNBM/O7'GX[/D!BLK[X#8#'*8K_0AWOY^$P]\S
M20E"F8#Z.$-6C1:DMTZC<D^J4:EF)<#F/R50S:D^]0)KPG":,V&.-U!<9J"_
M5<&^#6*YR@HU"\8,XJBO,)%4!8W9U/JV4A7;=MWGNE,/YJVJ]TVU&D3T^L\=
M36_?H$R]_"7[#$K;O.@[ DMN@?;:>)EJM@-[<T<C__^(%TD? ]3=\EK;/G"<
MAZS:8:6&K5E-U'5WP9?;*QNY<VM4[EI%2T"LT=8UTDZ!M7>"J7XN45+V(H_#
M/=O;L1K/T7>]PZS;Z)VNXH-1#_'!Y$V*$C>S;?0&Q=J7CD6L=D(I;7%,JBN<
M6Q,J1U<X]_ *MX/JD+9Q+J:AJ@=WX1:<)#BI YQD'I.3L 667A?>TU$YZ7P;
MW:PHTI-= > OJ32VAD2'@BX9PZCAM_T8:DTEK(VMO@[I\R6*J=M33%W086J@
MF&JI,#9%'%&L0S)A!$6UAZ(*9_E19)#;&^AJ"TCF?'U?=V2^&I[[A9W;A45N
M;W)G.^V#D^=WMLR :%#S2>1*%GE'LR'^0@F[1- X2ID'K<$<S6Y9Z&?#HO6:
M\-UGT095S2TL6DV[=%3: <H\:066X&'!P^?!P[LJ]Y6/66S4YA2A-3K&I%VN
MA_B^-A6/%4!@L0!\ZP=2+]M5_#R<DEZ2KG<3!G1%::G#PQS^H<F-F,%W/R,L
M%S7N2]\B/XR24H@DQ6\UHUK.UUL4!H7IW^R.E=1 60K <L'G>3]EZ95$),L
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
M$0PG7AS[SSZ\VX,#--E,?DE?NH'1P.F7W#+UZ!OH1^&,C6$>2K"\!#2O,))
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
M+[A'K+"=CL-ZFV_6L2RB06<57E;/I4%G#:1SI  \_HU;[ <+CZUL+JK)%\#
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
ML/T?9 )R#/@LX4/:<PO^PRL6DWD)\V9%+LA3"=,BD<*KKY@<I+4C^#;\*")
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
M-2NFV6@-EA"X"M:MH%DLW(B71'>EPK91NC/QN+5-07/"C7B(K&RP;,%5K-[
M6B,I3T]#%T$#I7*K41JPF9(H<A*/WH7HU8]CZ1-BPERV"W$X+@F?-%@_X"HL
M?-)%_5 8XS7JAXW2G(LT9^C%"L%+I#GA0MQ73M97KT A :_^0Z*PA%Q5!<G$
MT53MMY9XCRYN^TM%5E/;K[9M^\_7>7CC!=X(TQ!%<TIXK5="] T6#KBJQOV'
MW3NGA0U>HV[8*,UAL8JLBW)FX3L\1$[J#=8IN"K6JLB&+3R'+5(/FZ4 $RE
M50_N>=.,Y_#TS>A%%W\Q63'9"Y_LGREN:8*46@#77L5&SV.I\G/!0)33&0>B
M?4?1W$&@9^"F_[4,.LNA497L%N\I#B>+^?I;<C*7(38VBDN+(71^<K UROT<
MI]A=,^^%7#U%Q/O]RGN&(;[S)J_>6XSKG(>?]8/DX:;3QX5;G7,M,W-WF-@F
MR+*_>*<=@#2.4(/X@V_91-75IR=M:"J&IX%)HH^>7=-V7=<9*HK^3[LWH-#'
M" !]@\H'A8CW5F#ATW4=_.4I^O.Z+X]N]E%RNKG_?/?Q']+-_?=O]]^O'V_O
M[Z0KZ>[^\>.#]'@/']\]W'^Y_7#]^/&#].GV[OKNYO;ZB_3P"!]\_7CW^%!&
MB^M1[[548:L,0)WI9CF$EMO@8>[-*=+\_?.G!#L^0:'^Y/D1!0)\)"M U"ZV
M/^P*$/5MP!1/7,J(O'@1!9TN!QS?#$O]ZL4(=<-0K LHU1< 4JV:?<W>#)>\
M\Z.TOJ94>U0#R-):WW:<]@U*-UN'P:WTG3:N5$NW;_.@SC?X4&ZJIW/$[M_;
M)LEE(9=NE<!D6X.33MTA4@Y [6CPQ9>RHE]\[\F?^/.WM:M:#L:K&L= XXU
M'=C5-;@O,G)KEOZ]-P$]D5#5^V%,@+"E+^&0ZE='1XPNW0#W A8==?'#4;D%
M'6^F8T'(IR+D<FFM'45:'_O^SN_1!S(DTR<22;HJ2YJB&:=AA_-:ZG6@NLM+
MK1]3O O"%X3?#<*O&+BYJ#C/)5Q5OJ%61UPB]#GM!5;O3$G3QV$8A%-_*(UA
M#4C1(;^7=.[,[+]%9.:!5"<_9R2(@3:\8"2%\S'(S.$BBH 0@#QB4L\RY,^A
M*DO7#O3:0Z'#RR;6^1Q3O5J;R[@L!\ON#734@KJ6-]J>FB+!3.?!3-4Z+Y8R
MD],;J%WL ]L>9CJO _YZ.(P6)#O@Q3DN1,]!YW@2%/-)J?S!$F%5R!_!41?/
M43L?YILY2E,0!:C8'_E2.&J'C.-*V8KWS\^@.\UA2$R)HJF@Q>1#[-^_:_)A
MHYF&CYA32),#:88AR^A;3&%$\)"8)AC"/L1@R0.=_,#DA><PDKS)!*@QH3AN
MTU-C?Y)1G_0Z]H=CZ95$1)I%)$8W[D@"0O>D@,RE)R_V8_P3WW$3!M0?3#U(
M/,HIT0AG+(T61)J']#*ZN9CX&-)EEU[]^5@B'KQEB/4Z))IY$0QQGRQ''K9K
M-*71=?NV8E?.:'3ZJE)7RIBC6?6DC.E]T]+:-RA;<6M+KM/K&93==]3ZLDAK
M&E2=VU?;H+2^[FY>J5)'\BX)9>V*-ZU1$/*O@H<,K_R?5V-_-"+!.SQ3M.V7
MZ)L2^9;_.45:WSGL@K']$G-;\E]Q)_;-KSU]!'?;P[L3!:XQX'Y9"U=?WDB=
M:].69[1CCP1QMR<WI,,.X<_,.*3M$F*TS"(R#%\">,+H1*'>G4GIK+Q=N\^Z
MZZZPG5L!I[6@^4I2J@V7^<6L;H>-JPC0-KJA!=>>-]?NW%BV&M?:W8Y/MYUK
M+T=7R?FMA<(B1%][%);4<50F_IQNA\?;+OX$YUXVYQZFM&SD7+?;8?BC<N[Y
M]I98U4 PB'VT $PW>WXV>-Y2J^(&@_IS$GF3^R>8'2VE?@R_D_DB"FZ\>,P2
M/"HTBM<WX 2TGKUK:CPJR/CPUK75H%CJ)^/Z\ Y:2%3B-+D,-FSP-$G5O8P5
MO^,[D0N'$\^?[L>&FCA-!!DW>)H<B8SUMITFYQN2O2-S?BB@CY/GYJ8)N"?R
M;O*T6!UV:A0N,,DVF?Y%.U'J6):+.6'7EBGJQED$;VL@AG8[2L]&")1O_N4*
M@::MW5(A8);'@B^4)<]9I\D7&0G%1B@V75=L-I=LZM991'F[*THO31(([>;D
MWI<UDL NCQIWD2_K+L3> AOSV?.#+V&\#CZ&1-25%0Q+:K=UYQR 8V#'R9!J
M3[G";3];()D697-,&8:#](;WDI^S,%Y$1$Y*M8?Y4NWG9 5A>GQ9SPES9K\"
M;4WMNUH]2!R:UG>4^H!4:JK+-?MV^XJ%S;Y;6U5\G8-2-[]\#>:#5M9%O$JO
M^_;;=%N 5CH\WS7X'[Q1/TA=*3UYI/0XVIAWO,]*G'55]O\1+Y(^PC$UDO*E
M=T>'4VGSFAS:_?N(&1.MJ=-L2[_ZEJ^1)EJ;G^ JL7!BX<3"=>(JL7!BX<3"
M=>*JTH73C(Z$1>ESV@O,T4+K>TVRM.<'L?3+)(QC$O^:+_T%<SP!IPAGA"'!
MUX)VVM[%^!1&\&<R[^&;] *KPQ;GU[JMHVWW; U#M"] =FBH?*^9=ST:KJH[
MMS!.@C7W0?;9W6J^<;"87HW"^15_9%FX#(LL9=<PNQ<ZWX="3I1:?X;\?6@
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
M4U34%C7]R+6EAX@E+0G,LR;VE!8E_;VAKG;Z@U"PP9O&\X:M4<S1D0-,),;
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
M #_:O[ZPM2)%$RJNX'"7'XNNX1VMV)/S>?QCBLE+;3S#Y?QM7,&-Z];FC1]
M+$ZX9>P %C6U /H_D9[LW,F5<*:=0]G7UBO74O]M)TJV$R5W#]T.-5%RPYQ#
M.7_.H5(Z.Y.#U9X.!M.J"J,[%D2&X7S*7BO";=>TW7';>?" Q[83L.$E.0/W
MDCDHH%N)/9S$ Q*$&7C'A U(P1E7RPAAOAA$M$2(?TU@<VV6I0+_>D'$K1CP
M)T1\UW2I+.*[IG9-U:@+,MRR-D.&E\$Q5^M9E-*5U/K U6M<5"5P]9(U!INR
M8X3(AJRN"NJC,P79NB&OPKT_M;T=09'+9&D6>Y*T73;%"\+SOX@=S[&ZPM&&
MJ[4)BP%7U2"=]^LXX/B(SP/<>Z5]XKWCG^?SP0J$=TNB A+)IT-\/UYN_MX)
M?UZ, \+RKE6 [\X<P<&+*YUR9L$M<QKU71A] ]^9WORDX@(\JV]P5-<H(N 9
MW\.)+;(9&+TL @4L;^BVH VG9:6_UGW!?<[26!+)J4@:=1ZET4!IS*85WX=L
MY!]L*QO'EPV#1]DPP=7J5H9X/F/9.&HC_#%[X.-*@63RI_#F$/?<0# /X6.J
M!Y7<Y%R^QL=2++E6I]_K&GKSG,PZ( _Y]R-;T,\RKB(G0J7W4*AT+F9M\.\.
MMBQ>QN/CA<4E9'$UV\SZKEC\3+.)"Z_NQ<?*%M>)WLYLEL8A/+KZ&J8V2>;?
M%T=2+)MTY$[S/+HZ,,?X]^AJRGYP*%2'\.CX$2HE5ZC.AL4Y3/"=+XL?:%!I
M5197@<7K&E':4!8_]SQ=1(*I\,'QA/HFS',AF/NTXQKU->1NDKQ=&VQU#2^8
MC$,#9S7VB#?JWJ(CUODZ8ISWTCTX-MK[.F*#KR.F;?*;N^1SFE+7/[ZIT+E6
MRM/G?'(B.-WA#@7A!85&_/=Q!BL+IZUN]/P%\-=L(0J('<)1"HX71L$<.4)X
MG?@A8083/PUL%SIA1-^)^^TH*\8P"NR#<?LMJX[?M<WUQ$>Z[0Z/_[,=SH,
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
M*8:[["$)_?GSA)X,4'>*T:D/L0P]WU^P*(\%KT]O]-LTE^"!'-[#"7AS(CQ
MA.,,B?"A<WW_T/E(J?MB0S@\#ZF-)SEE/\NS2A8B*646DCP_^V1DF3$3@C6A
MAS<8$Z69SZ?S2'!!*87V1%R'8%2=_B1&Y","S!IS-0WL&,^R6-R>CYPD@ #N
M!PHE2G%9I8$),_JQ.&"/,P6XYH4S  ^<>\M_I@#7_7D@@"31.!U^:."]+1,
M$,3X0X>F/UBI%7(^_:TX-[&B]!:YCCGH8Y?NTPG#.0US6-76(MG"GN'@BN.\
M76/$X'I[_C$OSX/YESH2!E4R=7$VH;S^QKM<45(+,MI.8M-*[6_OENT#[(_V
M:?<4>=/^8M^KU![W1I\\P!XQY)4+<JULA_):EJ<=Z=/I:V8[TN?("VA'^M0U
MTD?-'^FC\3P.YM(.)\+,=D;90KG(CVST(>HTHPM=2\([^-$;$I77K,"&FB6:
MZD;E6K-YK&/=)JQ;%W6IX,+V8&:OCK4CNK(A]B2]C$'CE.DW*>,D.A=PNM2
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
M5=HMBT4/62.VOLO\JM)_$3L0KCR\BTOR*6SCBB2N[+UJLVO5(G..:8B9S+V
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
MTZ:=-M3.+J@^;>A0*BBI5LI71:1\C9YE+=#)VLE%U2<OK".K<MUBF(^;(BY
M,U9+1AC:0+2X$Z<=_C%4!\6;Z5ROHQ5T<EN_O\0 61RU]3]0K*[CPZOS1(-B
MCJ G_412(S<8"&5.IS_(BC!VQA$AGH#(-R%#:\KGJ*+G#M<FA-"G>@A\$C^2
M,B(\=HT9=U]B-$%D3_JTK@ >W"K"19 &B'(0S9Z"#2%?8]"*N9_9/)CYNT#.
MEX%4MQ:0ZCR!6<N[@EG3J/32CFS$EIE-<IJPM5X.;C6\F,6MQID^P@>TB'!<
M;Q\9',DW.)F]L*OCG\C[98ZQJRG.\__.@3D-,9X9D@>@PA"ZWNCNT'(+*:2B
M@/)]X""TSTBP$>60(N@Y>(]&&R] ;U][(Y" T+$1NQ;/[HV*T<J(!1"J.</J
M8'!(:1B:,I@=?-%W$[_(%(8N0_84 A!%(7214:FV9 HGQI(DY1$)M2WC;% D
MOH$8I"2L-,B+UL/AQSW1,*R"(3PQ\AN;PY&"?L-],M#PU,E31>RG2AKJVS55
M)A3\LYY]8X6+*2I*T;X1O0;XB6YV#%M!?##'"^<!=55F@0]Q]2CID$6DH@0?
M*>:+_PE3'Q\B5B5#+*R7!ZZ3GX@UX\Y9[C0I%,3\%C4]'^BG*S"V5PK8/EC\
M<DULKQ]ARVJG3Y$3MS-];>NG#)RS^"3PNT8@H6 ^PU\HOR&<7B=J15A-Z*7L
MR;)@#Q+?CX*N+A'4G-2"A:%K.]/R$[M*4PN$/UHT=$+02Q-K/Z@N*D\T'=/3
M)8F6 K:RT_!D)(I<AE^%WW/18TT4XUM*+<9J,XV3A>"5X=R-$I<3Q::;M9HY
M6*V[^9$R,@>'?J12=BC*P_PI)'_.@:97+Q2*-\>?-/*\.B/K3RZ?);"'[>E'
MXJ-+P^H<U6'\1IZ".?J#DDR]1DU<D_DOOAW0P0!?@?&&P*\8X( \4_9D8#"P
M/V>$P)O;M.'=_V_O6Y@31Y)U_TJ%3]R[W1L8(XFG>X]OT!AW,^L&#] SNW'B
MQ D!A=$V2*PDVNWSZV]F5>D% @0(+'!-Q+AMT*,J*[]\5686M7O86'(5YY4P
MSEOMA^7%O1>O\-*%ZLS #)X7 ]_JU5TA7ZC&0'=.18-+WLG6'[[A9XN1;[H]
MG!!%XS1AH@V<.W;3Q)J.L&\H\SA1RX6Z-V('9J;4?#%HA4BL<L.\)+O6K7:M
MT](X9DQ5%'G,V'GUNLM*4SOF'RN?$NH<QW9#K>?P,!WO<-#?%X"A,;K$7H+C
MII.Y2H5:G$:JQ6BDQM?F_??')FFU_+'^47_\SD=?;]^3W[_7'UL/_VRUOY!Z
MH]'YSKKO[:6U:ANT5HD9 Z?M_%:KY=5R;=?&;UHA7U'B&[RM:_RV_O.2EDX+
MN6J^6%'EF,YT3#5E<_>_I$]2\Z7J;K-(CTXG&=.6)VU)%SAR5D#?F(&/U:8O
MI&O-='.-*JD>L .Y84X%G)&@C9PZ.S]O^]2Y07K,/?WE*<=OZ==AA&R;2RYX
MDJG+.<DYR3GM,J?]%6-61.0]N"VVP:*^)Q&269FWR%+A:ZJ[K''[9PJ>#IZ/
MP?X"-_B)G>63'EVBF4S1=*6-N4PQZ4Q9)&IC LXB'7&BNA8C(SNM D/F[*_F
MML*T%6)M)H8D.!*<D=:U"-L^87]XP8S3\>X94.O>.U5L%[*<IV*ZV#7D+"Z7
M[TR7+T[M-ME.%/LU1N%N*U5(04MLOFS'=V6"^&NJ;%KALT1VHG)*!55 NM/6
MP^,A*BP! K?Q&S8=&2YY%+E.)O&;3@1-V&^3X' ;-;:I4GF_O/\L[D^I3HR5
M7E3RE5+V) 0>.;P7Y)=F&B;Y+M3)1FW8H2?JQ$TLBW6FNR6S;:GQ"K:1/2WC
MU$VOUMH1EDY,459)*5S=E:I9Z2DE&5XRO&#XVB$,+V(1?0LC/GBP  _UQ )
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
MH*CD*ZS);'"XF _8U8-XDU"U5C@Q#?MK#H]@QQJ$Q=43.**DU6(MZQ3E4TC
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
MR[>3$\<.=[Q'&^)W:4-(.;&TX5'$WTO*C;_%H5S/W:6MS^4Z1K_ 03<7F.S
M.U$5MY4V/.F+*;G/D[XU>I[LD 0!LJ"38J\\&*BT&NZP>$Q:#5(:Q$B#BG(S
MHJ9I.&,ZL:]M.K5X12-8$%YS?N^CE1+G<(<\G??;Y/TQ>9^\8M(RJ'LV /(
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
M6J<[)"?'&P  Q3\! !$   !C9VYX+3(P,C0Q,C,Q+GAS9.U=7W/;MK)_[Z?
M]4M[9JK85N+&R30](\MRHE[;<BVG/>?I#$5"$FXH0@5(VSJ?_F)!@J0$D@ E
MN6%*=::Q)&(7N_M;XL]B ?S\S^>%CQXQXX0&'XY.7YT<(1RXU"/![,/1YX>K
MSOG1/W_Y[KN?_Z?3^=?%_36ZI&ZTP$&(^@P[(?;0$PGG*)QC] =E7\BC@^Y\
M)YQ2MNAT?I%D?;I<,3*;AZA[TCU3Q=13]OXG9^*X[NEYQ^E.WG;>O)NZ'>>M
MV^V\<\[.//SF[6O'>?OC[/VD.YEV'>]MY^S\W;3SYE1\.C]S3SOO3KK3\S?G
M;[IX>BZ9/O/WW)WCA8.$:@%__\P_',W#</G^^/CIZ>G5T^M7E,V.NR<GI\?_
MNKD>RZ)'25F?!%_62C]/F*_*OSZ&QQ.'8U7<G07/:7&7S@+\_,JE"U&X^^:T
M^_I4E0,NI((O"7CH!&[*UPM9)UPM,3\M)A+/C^$Y5'32.3GM=->J\L*4+%_/
MV7'\4*O%7$FW<_*Z _HX8<C() KQE4#X$D^=R!>51<&?D>.3*<&><!\?@X.L
M%<@]#ATVP^&ML\!\Z;BXTGR_?(<0X$D62\I"%&A$4X=/I+"<A9+L",787U/7
M":5+0TFN+*&5/\9^R.%;![Z]>N;>T;%]K1'OS!QG6:OF/$U<>_)+'0FJ7*A(
MC$(2^-91=!WXJ7/:%2AO+4/V>M230='M*$/A6U$&BHE2?N>[BI&^-[7%2"AK
MB5'\LEMBH0@ A+,Z%7+LOIK11_$"1T'(5C8O0Q&)^E+G-5AG%C$FNJYZ N1I
MTF_;B[#R.LZTPZ-)+2%67E)_2KZU!!XF=:I6Q>'#UG5BUZM3IRH.'PKJ=(*
MAI(>?DE^6RY),*7Q#^(G:##>JU;C'D]5WZ=UWTEG?_KNW;MC^53T?9+882ZC
M/JXN?+QD=(E92##/=_V2P9SAZ8<C& !T5'?UGR7#KX0DJHA6P7K3!X]%#9B+
MSE+J>YTII%C V__AB L<?!R;J,GZ>WA:5W]!0@+RM]#>=R9UM1<DV/_F%7<=
MOZ[B@L2-_&V\'L@?Q'-$O ]'?2IF+G?.3(@'OW^^'Q8-)V6-65'%3W',7/"7
M$_G?*>IDTYP.DI0(2'\^WB388!5Q[(V"7^3GS3<[(4Z*5!!NV,::;OU5*B1+
M?E0VK+!L+_)(. Q@'B<E,1M8HS#:N;MN9\D Y3BTR-S]T>UX=#V\[#T,+L</
MXM^;P>W#>'0UNAO<]QZ&XJF%AYMY5$#R[MU9]_0,7'\LC(B5[^=XHHPI&EVA
MC.T!IZO^Z.;N?O!I<#L>_CX8WHJO@^T!*V)F1*YKC]P:?Q17<,"PR.QWCI@/
MA',<$B'Y7@%=YVQ$]_5NZ*(?UNK[1TO1ONA=]V[[@_&GP>"A9H.Z3FK$ZTT5
M7@DO%#,[8/$PWN$]J^!C1.G,'J7#&Z2W:KWQIZOKT1\[#$TR%D:L?JK1 @JN
M2+(]H'0U_M03O<'H^G)P/Q[\]GGX\._MX2K@9<3MK3UN>?;?H[B" X(%5M_3
ML,3$V(CM^6[8MKA-'4>+A<-6=#HFLX!,A?I!V'-E!)P$LSOJ$Y=@;H;6DH\1
MR7<P%2?<]2F/& 988\:(3E&.-<IX(\6\1:C=XJ<[1@-A 5>ZO 5 .HD)BY].
M-K$0/- ZDQ;9_,HA['?'C_ -=L >EG8O)C/:_G33]L '248HSZE% /0=/H?_
M!W]&Y-'Q07LG\(;!(^:A)1AF%D9@NIO  +\?Y;\HQ_9')!BC'.<6 05:!R%E
M5AU'OK#1^*\WC9^C;I&![^)ED=6=+[I"X6?@=TOP,K.YRTF-QG^S:7S%ZT<D
MN<4NGS)L$1[7HD'&//[7#,%:::/5SS:M'A,F?UIDY(^4>D_$MYAFI"6-QOUI
MT[B*M$5V'4([,",3'_<XQS:]J$9AM/-;O=U6+%#,HT4&%U,7%F%O\+S$@56#
ML4E@-/?YIKD3#DBQ:)&U^W2Q(/$03'1/?2KGC#BPF]56$1M1T*:R.6ZRJUSC
MUR)(AH&'%_%,'CB*8<0C@:QOJZ:GC-0$QUMM-KO!"V7,6H3%)69BRA*21SP,
M>,@BRXE4,9D1 VU6F_%!.48MLO\]%A.8"-]CL#"Q2W IH#%:7INV)DQ0CDN+
MS#Z>.PS/J>]AQF'&$JXL0IPZC='LVH0US^1[%+-ID]U#ZGZY$#,7T9DN8"QB
MF=-50F>TOS9GE8PZDA/*LVH1!H/%TJ<KC,?.HQA]<)B[FP$H(C):7YN[*BXH
M82,#!RTR_3 0!L4/SK-=9"PK;#2U-I.-J9$D;Y&%_\"PP0][O4?,G!F6S:V%
MK8O)C%;7YK6*#TH8Q>U]FP 8XQF,X<3\YB.F,^8LY\2ME;YK8F $19O])ASE
MG"OCV=($WXN(DP!SWG/%V(-+KA;O1R&5$0EM!JS8H#R?%AG_FG(^971Q19C%
M3H&UTB9CGVOS6R!'0(^ 08NL/(XF'/\9"04&CW;368W":&UM)INQ0#&/-AG<
MG6,O\O%P" O44AC1UOXFMUJOQ#@O2=:P <*6DQ$@;<*K6*/A4'Q+V<M>(:M
M)9:T"CZKW)U]YP)9Y@2=G9T6O&NV.4'H!_6I34E=A3DG#\[$MT&OBM@(E?;6
ME:2MH!]BCFU"Q9A\8HN0+2,C6EITRC*7I8WHY3)-;''228R(:/&J'(\V6KTT
M7<46 Q,#(R):#*LZZZ6-(,6I*+:(K)4VFE^+:R7I+RTTL\I-L37T1GFCJ;5@
MEF+01F-OYKC8M_F%=$;C:T$K+4.FC2AL9+[8@E!,9L1 "U=MILVT$8+"E7Y;
M(*J(37!TM8!6<;) &T'1,P!L$2FE-,*AS<(+,@C:B$7QTK0M'I741DST(%?)
M\G8;@<FMG]KWWILD1@@*MB1D"Z]M-'OA4JHM %7$1BBTR7/):FP;43&LJEHW
M5U9LC$AIDVKS$FT;02M:=;5%JH+6"(\VZ2Y<MQ6_MQ 3N\6-GN?)"AT_Y\*7
M.'2(Q?Z5W:LP(JS-]6LLJ8AY45KU^AL:UW[PADVH-H,"L9WVMI)6QM[H!7JF
M3!TO*(A0)#4?/& 3HC\<QL2#U9Z1WV1K1'R'XQ5@/)54=P"Z%!&[4OHL?,^.
ML:L8)D=ZK05G:CA2+9\KC#(<W*]T4/ (Y^6*T=JL3_G>>YHR]D9WV26% \8;
M:;5(UGOP@%*((.K#\!P'7$9=(1:Q9R>HJ,'H!WK JHX?K-6L BUM=(7"')UX
M$"9FT-?$F1"?P+'9R7//"5,2,6P7;6G$F##NA<,)MYV6O$2E1H?1PFME"44=
M-0B%$$).&%7*0TZ8)X;,/Y3*A*10;9S!&).)X*6C 7RB4V-A6U]ZD5J-SJ0%
M"(OSG;1TI[CEB<6!ELJ2[.!-.E0[!49VXF[T#BTH:>T=AWB(/?X+*D9R_X7E
M+AZ&-.T@]N<"U148O4"+?=I[@:I9CE%12//=S<$7=*@^,LKYYX!AQP>SP7X5
M#$52S,2KU'L45H,@L_@\%DQ>HJ_9CQQ&S])BKM:>)05$F80H%E&6S/F8$ VE
M<G;$MPY(>NB2#/#?)U;]Z)  #$L##=Q])&5;56-T(BUD:YNR#9&4Q'M  O0#
MR/ /& 87^$>K)E-&Y ;3*78A[>C&"2-&PM6E$V(Q+OTKVJ;MZS:ZDGX^D6U[
ME J%E%1(B@5CXT,#M.E?N13^W$=;#ZFD-F'\IN#0HVP_P<;N@O8A4[HYH/2!
M+6I;<S8BJD52#?L1S!L6#KBGQJB8/^ZRUZ22K1%Q+6:Z :@&>/5TM%5]>[Q;
MQ!K!]>)&9+3@I-J<TEI+JTW6='KGK.H-H$T,C&AHT;T$C=S6;S$^46Q;"9+:
MT=.?.\$,<P)77O0=QF#G>QRGGZHBMCU=?99&(+5 7+H128Q1XVJ0F,&(BI"J
M207UI[E-2^WKUS83@=*(5'&&4/W=3":&1F@+CJG:3"+*!])*4XS:C.HM9.'
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
M@STYZC0;>U5KL_SF; +C@3W:(\_N+[6%O V3"QD7SB_?_3]02P,$%     @
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
M2M+3'RJ1IHR!>2B8(V,Q%.9;)P!W,&V[C7X0M$ZA1 E&:XKF:Z<D"N81:G^
M6(Q,SG?1&*\/9KD[%MQFC+>:Z68,_Y6<Y:^_AND_<?YR,<XW'0 6$ZUB!;Q>
M.:R*J<W<B@.-/%E:REZ%UHKP 4A]L*6'8T9+^71J,;,J/C#!H91E&;]G$%2T
MP)*PA<BLLFJ=5>L@EMG48;ER3;.SS*I(3HJ/CI:M5 PBR@"&%TDV3C+$UJ?>
MMD?9)W6Z+WMV=3)WE-FQDCSK,UFU0_AL/I]<;I=VF,]YX)4=IVZV&7"CRPVN
M4^=[PGP'Z%F8#6<#K;B30CI RT-MPU[ N8 @4K;>2>E3:GY/ZY886ZO :^]+
M:7%>)8_YE^ED-OM]/,4PJ@!JK=HS+)-IK?$8J.RLJUWJC5;+<^X97$YU^YYC
M](7I4 X\49L![Y.B[)2=#VG1[L7>6;YH4^CU>,@WZ#E+\M-HWM#6[C!)DTW@
MD0-CP8<LK-:F^3UC+8#WJM_8HZ#L[G(_>(ISX$(I"ID"48^G*$9?!54LD&/O
M18PZ6MZZP'%3;'W(3O6"=TV$=RPW\Q9UCO4CE^X7K9/+ 9?5@ ^SN]@&6<=.
M:P?3U\BWO;8$KG'V>\AO)K/A<N5^TYG+;D6%QZ0S$Z01T9%N]/52$<P@=62&
MH[(96WMQ#6#O?S3S/@BU8GXX7DP6L]O!O,;9[/U9&'/Q*WWR;'9]3M'*HI,V
MD'CMK1R]@6B5!F4P!LNS2*;U+<Z=#JA/'O.A.7_S4&E?F-/PG/(^0[H8RNFT
M9GUP>GU(-A=IC&"0BR,+:;*NE[5+<!A%,49YYELGSSH=4)^2TX][,;1DSH$6
MP^T#&4C.3(P":_=\!LI%K*YF@"I4:[.1/+3>0=L%9[\4Q8 KKDMT A"EKIF$
MRL&DEO<0(/UGLFF]G]!V!(_=+F[%VV[7_E9DZ(GENV[,!\DK,M;.@K/&5X7E
MP&52JL[HPE706:G6_37;CN"QV[8C$GHO,APK,["ZPV7XZ?+0QW,ROK-).4XV
M8'<T'6< &DU31SM:=^:FK$V>":M U 9:JB"#$'(-)IS--D?G?-?I[LT2BZWG
M8"TF^JZ>>1^.3\?X?S%,+Q,V R%*R.0^@N*9U2+$""$'";6&P\J@* IK[7GL
MA[A/GD8G_-LN =M4P&V.G6\*^&F9XW2-=[U#\7E2OYE]0Q\8E]XF!LD524,0
M]=(>H:$$79S.7K@@']*VK4'UR37HE(%'E>81N'@!> V?^(37!F"M#<K3.I(>
M13TOQ<'[VL/5I&*B3R6%T)Z.#^+J\^;4D1G95J;'(.4EY-407DX6TVLC8#DY
M8VP!*7FA$=2;I4RRM,IH:K,L,AK3 2L?!-:G>WGZ1LNV4CT"+R\1KP= ,<&U
M 4A73-:)@S7,@M)8()3,:R=;E;((B>G-NLJTQ;7E'3Y_)%:VE>DQ2'F!>#6
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
M5,"E1[*:.J?89]-R<T1]Z*'T1UDJ>_*I3450RP&M[^EY.9E>O1LED"=IA?6
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
MT<*"Y)&$4K(!QU@![2SCP2ORNWUCXJP)<??T:1R?Z%,E/5@?=\&=*&UE4D$
M\9>V06D1(B-L@7-+=K2TKK0^:NZBV#T/>E7<G8#$5E+OU^%X?QK&.'DUF5Q@
M/G%T(C(M$A2=-2BK$$+R"4*1M-OIR"/KT>VX">6X&=%"_CW8)#- <RC/+\9D
M*[W%\6"4_Q'.+G#V=V\^51U,7GS!<1I,"+#U&"7G!5Q6Q&/K%'CFR*_2A?[*
M6B%DZ6/W6 ?D<5.I7YWU8,6L #Q_#Y8CCC9HSAQ"CISL+A$U1$D'ME#DM'EA
M(JUF-RR[!^5W2;-66KO+,]6$9^_PT\4XG9)P[KX=)^3>>VY) %%KHK](9,YS
M\@5]CD4RI:4.I@]:W0?J.V!1,YW<)8WNDS1SKI\49U14F($[16>T8!:B(W^3
M&6^,$5EF;!VC>QC5]TN;#;1RES=F^[#N?UU,IM6OG'P8K8@XSI#61*Y<(PPX
MG,SRP]XAB6HRF.)[''\>))ROZAW6/(W9I\S?"QVX0",9O0W! WD.='S+DD%'
M9.2VIE1\\R!0SVLZ;LX>%"/N,MYNR_CG@\^#C,,\N>'+/ N3TQ,?+;=H&6!&
M1D:EXN"T-A"B(0%R9:,/C9FZ"LMQ,ZR)!NXRPVW+C-<XG4=-?QU-)B<H37(5
M@A"%U15:H!,^@_""I2@*.2.V,1V^ 7#<'-A<UG<5[[=5_*KH^>]#DL/9X'\P
M_YUD0"?W+R3&"OC-\#TF.LNG YP\&=.>-_QX\VBGQ;TI'\*7$UMB"BDKD.2R
MTE87$!SM=5!#)<Y+%Y1J'9;J:RW'3<>#8,"2>.G6@?-5"ZMK>/(Y#,YJUAI)
M\'TXPQLKNK(!KA?B!:=MV0 RB:#(*X:8E 2+'K,/+A71.M^O%?;OD[J]:G@)
M5;>.[=^W$#(BS\)D,BB#>7'*-?R7)/PG;YZ]NESAFW*]QJN5I:BMM2&"%C*0
M> OY6,)KD,*3M2&$S':7W-UJ,=\OF7?'@27LWOJ*XKZ5$6X<?!P^NQB/<9B^
M?A@'\JC2;(W#//ON[-:*KY:E7$"3HP!FF"63V6<2=M%0HG-1BVAC;AW4Z6<E
MWR^O=Z3]):1N<R7R[06QL?7BSP=@V690B1Q[QZ6'I+@Q"GG.1N_X6K[=-;/G
M3&%F'GPL#I21&B(F!B&'F+QW EWKP/N]U\S_^O.MM^57^G;]@K#W%^?G8?QU
M5-X3#V?[ZW#Z)*71Q7!:+=K1V2#-3(9%+.C5L-;<SDCYO.:H=:C&O%LGMOU#
MMRH?:[SF1E5E;\>C3SB>?GU[5N$,<Z7SIV^S?KSDSA@N@6-(]04C7QF9 W2"
M)^ZM2J&U,?,PJJTWDG2*^:(>W2N?-:^O\9SV#P((MC@/*CJ$J%(F([48*[C0
M@3<O.^J(;5>5:HTY<N?.H@]5'$I-V\HE/?WZ@3YB5J7!:3,WRD2@99'+SEB
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
M#K[4KZZFWL4HT4H'U@1?,RPUA& -).-1NV2LDZV/_]5HCH\(C22_LDBAA\#
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
MU^-]F5#9&L4=,!7J\!7FP#D;P%G-M ].*MVZ7<8.[LN2LB9KM,!G#$\J@\-
MQA7G07L;,Q']>._+UM'I0_=EZTCRP._+1(@RD_T.UA9RY^ALA%B<H6W/98R*
MUA=:'S>'?5^VEFZ[W9>M(^-=7HUTP?4]WY>MI;>N=R2;"'V7I/"Z.&M8;8N'
MM6;)<>(_!M#!8Y ^&5-:7Y@\AONR7KBPCJQW=%]F:,.S*EBP0J<:WG/5R&:0
MF=6NN&Q3;-W/\K#OR];248?[LG4$W##\,!E/3Q;AD!FAC77).#K85,FV#CH4
M$+))A(/SPDPLT7>R!NF#;RB9OKM6\.UG/N8C?BOY-;SK2I<83IZ<G5WB&>!D
M<;?; 5.' WV"Z:\?1Y]_7CQKKM_%=]?ZO0_+;@_R[;0SZDFT+2NM[L/F2C&&
M*06L#J17AE!&4P.<T?),G@ZF<-_MQ.&J>\51W;^VUY%H'UI^\?N[$QDL1\LE
M<,;HX-'*@%,^@^!!)HTY(+O/,UM;J_3,W1V[[:1_6YWKBJYE8Z<%AO_W]C]/
M F=2%LT!A:K=IDL&7[  X]((K72B_[94'SWS&-2WKNCZ>/M^^X_7)RPRKA$=
M),,X8="2; 21:S%G(K-!UV&4+=5'SSP&]:TKNCXLHU^>OCU11G"?DP&32P3%
MN(60; 86J_6-R4;=5'WTS&-0W[JB:]FC:('A[[^_/!&:,:-% C_+2;75V\ZT
M"$G4,CDS6>[MV+VV^NB9QZ"^=477L.O0%89G3YZ?1)3%H#.0N><U;R."*ZD0
MABR2H@T\VOM*9==6'SWS&-2WKN@:M@RZQO#Z/T^D93H%>JC@F7: ; 2=O[J
MMR8YD83VZK[2_/75]_HH3)=U17=7?69[]?W]Y0G3(LC:M9+E&JJLLRSHJ1IB
MY,P@"SSI^[*>UU??WX]B\UQ7='?59[=6W_M?GI^H4((.)D.4,8'RA,&%)&D1
MW!1N$TK>5'WTS&-0W[JBNZL^U^["?59V?2OS**0893 ,L@J.N"7)+!8&P<;L
MI)$FI="Z!^>]@ XCJ:?-M?RV\EX9!.@SH>=I. O#A.]/$:>_5G+52X?&F3SW
M/:-]"D_G%37/W9F\#(/Q/\+9Q0UJ.6-9%HIV;T1)U$H( ;D KE1AT6>96'\O
MW!) 6V>H+SYQ<N,QRT3^]$;"Z\UT[:=?[]YRS6]$O"7'W/D,=+Z1U8G,U+I
M"1BSH?/0UGX6K?/;>UO-[K.,MF7?G:3XP]#T@:<N>9^SSD* %M58*]Y#+4,
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
MTQ*$N2B?G,'2//V\K\&=RL0Y#9;V/Z'VH-@IG5?N>DU02"V"5[4?M:!Q>IZ
MS$@'+#@6LS-)*#R;J72V=TLO:28=0+"NCCH[&>>](@S.,,YY9""=BF0G. U.
MUDN:15NA;'9!Z;.92&=;N>.2)M(!!&O8+:W[<2YO(W]7T"1DPVCS=<X%TD?M
MI5 "(S^SQ)1URK%Y1+W'X?V83D>93H?1K&%CN2,8L]9'%T("$66ME"(X.)T8
M;<0>D:409#J9V\Z'^4LGJ84GZYO=G3QD)15FB8^TW!NRE\A4"CY%2(@N9]16
MJI/I=-Z-"$YE?;STT%%GM#PK?WA[<0R\,T$6,KX,:G)E6*VYPH,'PSU7DF7T
MX7SJ,&T_[E.9CV="_A.<R#LQ]ZQF[\Z%1(MDPFD!GI/KI#1C9)6F!$8B#TI:
M%?W)Y.@_X_JUSVH>=\GA,XZH;=%R465?DC50[]B!XER!8[6)/$NB:)F3\.<3
M)MAQ\#\F\VE.YBXY?(Y1O6MRH9Z6 L_&8ZI]4WFV-?F#%C=;."UI0G KJY%R
M/D[O+B/_,8U/<QIWQM[SC",^+8.(FDMD"*44 4H(0^M8=E 2Y[2&9>T=.YL9
MO*MOW,NUM,=^V-5MM"W>V>$EM%U'W.CNV5:=8Y9MX>BKMV5M%YG;,*#6M,.K
ME"%HS* 4,EKA5+WQ&[(5OG#9O/I@XR&TNVW6!MCB@H@JTBC#!(2D2EU[:WEB
M2]M'5C9Y89EMWRNCBX'T=;?LF+S>?*GL6(PXE;MD;T:T&M):1[M*?=RORW'.
M4_NSDMJEPL ZQ\DV0D/CR0589C99:37:ULE9C\ Y_CVSHW%EW(W..@BU;H"V
M2MO? EQ'M\8>!7:<ZU_-U+@=/0[00>]$(6N^%&X<H:KE>BI(IPR'8*T4W@8=
M5>NV.T<@R!/WK([#CUU$WY 7\PX1[R;C?)UF=9FLB^=7'%WC\GX.D\5SC!("
MJRUE2U'@BY2 T@N3'!?H^%/.QA/OZ#\8TE 3X_9B[*::)M(#/[T8Y5>$ZVK\
MI8Y[Z5,M(4:GR'(C0\X+YFC8D?9(+<FI#[RF;ND0?>L2/EO N@1R=*6%ULO
M![RB[W_\!4<X"5>$\D7^3.*>SB8D@:\KA#YDI[33D&L:JK(J@N,R@G:,9.)"
M\"%LM2)L];I+T']'PNW@D&_+KO="8\PL<8@27>W+F2 Z5R"$) UG4?K[?9L.
M+WVQ%;+^V7)*WG4'VNM@+VK4,SQYM-9D"9(C340K.7@C(A3N2S9**1]:IW2<
M:Y/X4^+H$;3?>IMLV6+<!.6<L $"UES1E#-XK@O4:6@3B[[H+3O@G7/#^%,@
MZ%%5NW$K[_2(:15A&Q<:2!E//H=1PGME&OZDUTX7IR[3=@=-.[^Y@^.FPT9_
M.CWM',,H0F:0>#V+]C*#(S,2N$TE1(=%F7(J1[ ='"WM7^=D66\L"L\-^>,N
M\]KG@M76+2J!B3KEDKBE%:.SXZ0#P9]13[M=6-I=3[M=E'TJ)T7?EWW"P()1
M7H"M#6!5+@R\M8R$J6I-'LE$;ITR=195!SOBP*,%!G?1Q;D4:-MF3#\*#.Y4
M8' GFO11J6T?'9\+?[//A?85!,;JE9=(+J(WJ?[CF0E.<(Z])Z2=#&]W*C!X
M<K3=1;4=T/6.E["X(KH,V:J2BXF, X9$EDVDK<1%4PAE*=)JGAUO?6:Z <H)
M9A5WKN=Q>R6==8VT(GA)F&O;OEHN1&D#P1@+#(L.@@LETOG4HSG?&FF-')^3
MI,UYSH^G<]FQ^!@ETJ"3KVN$5A Y(NB$+@A11$BM%_)3&/>/677J9#OCJ]D#
MXS E3 :X= 54JN?EC"?(EG9SCC8R>3[%$\ZVT."I3YP#2'-65YUWO?.MG5*&
M90\BUPI.M5Y54#D"9]E%RX-U]GPJWEYNW8+SFEYM:7=6MY/OU5:,7EGF<X94
MD@.5 X+CF(%9DS6W0I+S>3;3ZVR+=Y[Z[#F -&=U[7?7&@81 P:M) W?TRZM
M5(*8B@&I5/$!<Y;L?.[^7FX=CO.:7FUI]W#^Z=.=?P\KE>8L1-0B@LLET3[,
M:D]7$\#Z''-!PW/S',<>A_=C#IT(=1[.$G/RLV2[$AU":RT]*D TM%8(X\'K
M*@II?8S)Z^#/I\W!A1:8.9.YU9YP#Z>=/=UI=__ @!80@5+5TMFRMNEDOK:R
MUQ"L#+JPZ%WS*R!'.F<Z22T\S40;#4O(.)@@:PZT4N!K!?!D@Z+%OQ@OS\<Z
M/U)EGL55L#_"7SA]D?/\0>'JS6A^PCR_$[9_7O2VCSXH\7DO_(TRF^FM+R=(
M+WT9)I.;LBC[=;O6&Q6+-%9!+H&3%ZT9.!<,.).C]"8*,ND;T_-Q1(=.^K5/
M7V0<EJ"D*3%",L'25!0T5N$X&61DI&EA ^>MS?C-:/K*&6ZH__M[?2-1GTJ"
M[[=9NJPY/[N9YU_Q:**+W)(-9,B"%TG4XLT, GIN'3?1B]9E3M<C.5;*;RLU
MKRW#<)"X.ZO+<1?5,AMJ&UR=UFYYB.F895L.T]N35#A Z'V2(I026*T7ZY+5
MH+25M1:T >\LRXEL\^Q:'UST2X:M2K3TPX5=9-T!!\C]))MW]++>*9S<K-(9
M159%6PO(ZQT&S@F=(6"H6 Q,B+J5-M;_.AS'*LYPJ);&C47<048<#8L<GF'Z
M'I3./)3,'4ADM.\)G6H3*PD^>RZ]2D*%UO-^+9 +4?SA0NYET:^YT?/U366E
MT)$3/R\8KK)' D6CSL9Y31@%-F_HM1G-Q9N%>XF]@W2D]<B6]-\&6V_FX;'O
M7;72X5;4.$ !O:T:2XS1B(("#900:V ]U]8A08 O7(C"63&A]:6 _LFQL\G8
M/3=VD7L'G%B6H'LY_OQY.*U"PLGTS02OPBBOMCK+94JI0.&:1JX1::LCF\<J
M0D>C]T6$QL1X$M0IV!;[ZO!!P;>6"NCBWD6M<G:W$%DMKD*"F'_U\M-P%)8X
M'8M":1<A&D8X)2O@A4P@N$&%F(1+S8][ML1V07SI1!TMRQ\M[.3!?[X;6,V\
M$2E!289,+8,10BZ> &6MF>,LW*\+^ATAIIC^X^/XZ]^63USP8?GAE@JW[[L
M)>\IO(8&Y0K!W]\- K<ELI  L=89#($<IL0"<.6M16(1.;G-U/?W2U+?CL+K
M(#UZK0.TB']ISGPART6$:LW$.B[E,A2FG?512]4\++01S(6YAVV$WA<;[G!]
M&W@=.8A/0#N.C]A(D=O0XT M=. 1/ 53,"V\R@C2"EH8!4T3%R4'[I0OS ?O
MI+\$DCSA*QZ'([L(OQ-O<5&=>FEB"F:#%\D *[:0B>D41,T1K.8QZ!*#9ZWK
MHGV/H'^;H:F"-M3^WD.Z'?A]-57J6U'-?]=J&3_=O,*"$QI^M9FF4YS-^:[)
M%C(J![*4ZI:)M3!YY!SJ-Y,LVCG?.N*\+;8+,S Z44D']X_N8UK.C6U0=61F
MK$=T'.NB&RW>/[9JIX(.]I$-Z)AE4:%5$**H0=:0P<GB@',4S#-9$K;>3_HD
MQA,6Q3%YL8OD6]?*?DL+*XU[]/'7\71Z=\%<[H/&F>1H*X28M29/W"B@?;2
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
M8<?6V=T1JL0-!IM)Y(9&F+P!5QNR85!(PXN9BZ[RHKL;U0^"=T6!EGT9-]6
MVGM\M2WMY"O^/)[<Z9PR\*PXFJL:0KW$J1(Z\+X@2*UM\%JBDT_>C.P'Z@70
M]@1UVD4;R98CO/4I[OQL[FT,E/;9)Z;!E,1 ,1'!H1,TS((I*<:+52>\.&\>
MV04P_82IT$7?S#V'N0K2KQ\NSLB!MFY>Y]>&>I7 * $^<P0O2XG28XBLAZ)Y
M+8;R@]--E;VY9V>CT@JU95*5Z<\$_8"B">L><U YA"=Q-2IT\.?H>GH=KM[2
MQEHF^#_7M94F,>>605$R4[B10$K3E4$<G"?7/EJI/4^,%IW6O4^>PG3H*K;A
M^8M;3>34%:X] BLY@/(L@;/60BRY9&]+=MCZF.(Q/'T5,FC*@_LK23.!GTKA
M@@T#6K2LR+5TC*^=!CSMT9HV:E^$!YEIN=.L"(>E'P(=\S9A.Y5OQZ6=1=]!
M&MX&:*ND\2W =70O\%%@Q[D%V$R-V]'C !WT3I00,.GL(A@,-#MTS0)@M.9F
MX7.2+**RK>]A'8$@3]S?.PX_=A%])W<_)[B\%:*2"D+0H+2L%_2%U!!4\(#1
MYI2,1Z-;>T2W;^_?B6FHE@<7-/>2:0<7$KZU>@ZS,)U-QE\^U; K^?/*^ A"
M1@\J905.%P;,!A:=SB)(WUC/ZW"<C,;;&)P'B[KUO<IYE?&UJ')-%V"RELR(
MLG*[CM!7-SU:1FXQ-_?-Q0V!Z8VON!#=-I1C!TOWF]'T>A)&"6N(Y"M.ZI&*
M$TDY@V3<AE2 5AJ$&'B$+),P,HI4FE\.6@/C0M3?2M -+S#,&;D&SRIP]J:V
M,9E<?ZG2'L2@O5;20J*O0)E,:(65P#%Y+3/])ZFMYOF6+[P0M7<FXX:I_9LP
MTCHU^W;+YL5HD3Q6%R^BK/5&<ADD&.XM439E<-(Q,,6B-)%E3'Q?.CSRW@MG
M12N);[P@T"CJ_.$Z3A>R>%W!3@^(/&]ZU$'1YZWP-8I WWO7+3&,8(Q&6>E@
M:%5'0;.9V !&.<V=BDR4UI'G35@.+K'[_7.7];.D+,XE!(:805E!A,PY@-06
M2Z85R\3F9737X.@KPMQ$SP_*Y!XJV%.)*-\?"/W9/-:!&%6NC7%#S9M7AD;E
M/'DN-A@G#7DTL6S50_  DBRA'*TNW<$J?H(S^XBZ P]B#:QE^&,;8!U%CC>"
M.D[4N(GJGJ;# 7+OE1C"6!Z5%A"<]*!*/4)11H,L2>4B>5"E]>7 G@GQ1)2X
M7S[L(N[N>;"JN^J02^8CK83USJ V#LB6E:"EM=GHS$UN?=RX%DC_GD4C13VN
M_CVDW$'H^-7PZS"3L;VZ:_'B<[UY\0XG'SZ%"0XD,L.PWJNKV9!*(XTW%0$%
MLW?&YZ1CZYR%QQ$=G0QMK,N&8N^!%*_"#-^6Z@Q/\JMP\QL9JK4DTW]CF QB
MMLF4Y, I&6A&> 7>.P><EVB,)FKKUF>*.\"[4+JT4D@'>\DZJ*\P71&M'T!U
MP6:M608D4#"/L0== J2ZZ#$C9.*M+_SM .^"N=-"(1O#W:TB6<NJX6_>U%;=
M\R31,,K_[SI<#<M-;:FUO"2XB"#M%>#:[0V'Q;T.&,V!X;#:\_[;2U^L?>EP
M6B,2UQ.\I5P2R1JN$F16#5V;&7@N2RUF8VO%B"C=5C$R>ON=>4F?;N?D7L#V
M79]V>=DR$I!*MM(A!&$2J#!OT98R>)FYTL%BV2Y TD@"O834NN?*:GGJ5A^G
M$GR['>'5U?C?]4AA2F-=7CJ:?O,JLQ?(=:X"S);V;&D@FJ@A&.&8EBGXYGTC
MMD/6=VBN8U:,.]=.!Q;5XRB7CNDV&#N*Y&V#[SA!O2[TNQ.%#E#.T8@4,O,V
MUN+3JKH/G$S E'A=T)-']$SYUA[_\0CT1!#P9/BS@TXZ22I.XZLK3+-:2^Q.
M<=IE!,N@-S(:#O2%J$TN(OB""@I3TLD4F>*L>5;Q8XCZ=]S::_%!<G$S%700
M+_H0",I[G%U/1G7<MT)8PHLT/JYE #W?H[GD$!.9B];*XHNQ)HCFY^V/0[I
MBK140B^;S]ORH*+;JD^)4<K:X D@,5D5ER#R8H%''Y3W4FK5.J:X [P+Y$Y7
MRNF@IO-OXZ]S%^W-Z'&IO*?U\N?QY-]AD@<U-YL9G\'Z6H;:9 'DDFJ(UHE,
M@HI"M5Y_]H#9'Z_Z\_+[TEH'F]KC0'\*5_5; V%BJC6 @2E'.Z\2M4RP"Y!%
M<$HF5R2VKK6\%;#^%ZG.5;R3Y;R/?GIWN5Y^"I./M,*.7XZG\U+B?WTASP0'
M/$6:4T*#"?4:6M0DD>@=J)PB 6<$NW79S[V /G>2M=!?!UODEJ#G*<RK!7\@
MA2.!2 6N"DC5] ;'BH?D' HO(M>Z=<;//CA_4.Y@[770>N ) Q7S=:H_G0YT
M""XJ1T:J+&2D&F$@Z"! 6VZR8;Z0(])O=.D;MN?.K#VUU$''@\=QOLC_O)[.
MJMQJ=Z2 LK;+BRS5/)E:&-:8##D5F:2)G(?6!<RV!O?<^;2OGCIH/["=J:B0
M^^PC@E>Z)C_D KZ0DY.,QL)CL#KUNS9]9\KOF57Q -6<4(CY\]]>U[2":0TH
MOAY=?\9)6#QU.MOBMM .(Z\OG-X.O;YZMU2*!D-H=*%H68XL3F>3D%H?H]U[
M^(&47Y@'\T?>5OUKC'C].WI?]M9KY?YB]:A UI6=/=CWNUNCKAO*K'M#"][<
M>6ZWY%G_HMX9](BFUM+H4?FL,:_Y04OX?'133/_Q<?SU;YCR8OU[,\HUL>\Z
M7$W?CJYN=ERR[SYNH:R4;W5T_]D[+==[P#UP>::7#&@#O?.*W[Y3^,[CW_C
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
M"K<KU/]\WOW73NL@W8A2O%A]OVZWZJF&,FGQNXJ;Q&$"&+G&VC7,=,94,$I
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
M0QIT^P79G,8U,<RU$;>)E<BF&I^E"TU--VIV_QN3U+Y];.!9\(+S^V,Y,^J
M P[=M9==TL6%(7L3^I4-(24*&WVV?8Y18W,.'*[I6P\_D]5NIZ8][>(B;PKP
M6YY#4>'-YT_X=X@(,R?HQ/060'\!C$UR4/&",+-(YN]+N+& OE7=:6K/1?2&
M\CYIJ35&1)(;;Q[>58+9-47?MUWM(3QE"\A&@V?0MTDR'.5?^B&>_)E8?8C@
M]G%#3LSYYX?O+FU%\FXS93&^RZ',8 (C'A*,H5;A>+_$[P1O%9G5#)WW7#+
MA$S,61T4,<P0QU]LVR7#O0?.^_^5<8LH7]2L&T5O!<D\B$'TD7@XNIC8OI=#
ME)I#'KZC&^F!1=-90??&@D:SCO_8 M2T$EUN.G/)$0-J [M1O%UB\883&I-=
MN^+W@"-IJQ5I;TN^'_\8OJ*>9YHZ/2RQ3^N.&$)^1WL(P'H >W\?1ZDE !Q1
MSH@SO%?,.<JLJ'&;',Z^D)<_E,U:/ZXY+T8*0%&+YR;\V\0+?C_+T_FHK6U\
M-\_U]6P;>P_[/LN.:1R"XS-%42-G' >QLE.FLM17$B/V'_&W-I[KU8174U/\
MD@Z '2("HQ9OOPHU5''>DQMPZ49>CV[XL GQX@D)-XZ.Q-V(H]H?\2]QTRBR
MN99=<-%./<].<T]S)P(D40F]<KHZ6,7XHQ\[S:3GJK[8E"[MG-5^_SA%=[>+
MB(4FSY]A(-X;EMV*+'4VP=QT&T/,]V$0"\9]1%$HUO5CH[RI&Z6RZ96KG(;)
MLQ*BMM/K^@.ZZ\\+/O+R$)IV\D6AW^-9XD,<(?[GVT]AP^#W&,O'K@C(^\8Z
M(CT>[&-2W\Q;].MX>\_YQ+*U1HS]+9^#&IU^Y;A 96/(&$RF^7]52.O#I_@H
MTGG[&P..!F\,B\VOT(Y=<?$\=[',E.*JR3+ +<-1/C$)I]H6(#"'Y!A92(>A
MPO S6F<AZV Z8YSQ )0''3:JSGMB7CA*SVIDY[[0:ELOLGC\HK[ ^4I'J@61
MAF0\I9<DTY&,8BB'CNAI(02-;:PI_?QWN_BR%/[0_(T9_YR7<?*N_ 1/SD(
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
M% ^H;>B&.5=ACQRB"X^R>_P\#@7H)]97RN_N&33[M7$10L*^_;3>F\BT^AW
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
MT3<Q<5N(6N.53):3V+;%-M*.B9GVQK7(>[,G.N;G%"+OV>2HYAG?FMWK\4"
M6N<E*@P9P+-BPJUL [4]:4LL7^P1SA,:+)9A2_ 264C=H9TY6+6%$";U!'GZ
M5S2/65=00^H3C$F%X:Z()T<(,P10QXK]&LE,X#9D> ?\? ==YU9%$O[9 6VZ
MK-T$]._I!\=04T,=:+[0OVTXN0P;,)&!O\088&>K86ANCJ<KJKRF;J?N5ZZ*
M42%MU\X2G7;?N(8X^D[CU;:*UKU@6-?< 7KP:@1E#>4&8B[4GY)I_).<V?*Y
M]O'1"DV%3Z9VF?RX6Z:'E/FV&7F]0BYZ0B+JL*%RUP'[@7:M+81_61CS_##Q
MMKT(6&Q5.[I2XR;EU )Z%[??84X=6A72VZO9HN FHL/++Q8].,)T9$M9=9/I
M5Y#@?M2*$(4\X]X)T"^AMH4Z;/2@2)&Z0F3<4%;(H1EYL].K71Z,@$NU&[ZH
M. &R/LKH:]UW*[8B/RP>8YOAH?"!.3/M(><#K+I<MA#?^?%\Q%_%\<0_JA,:
MO!M_F<_@?X?GB5)-IEO;D_X0/5)!C8!V<C2PP[>@-O9\U#GZG\S!'-+D<^7&
MLH',4:.N?BLE">TJZ=!IZP5U9@83R:GGYI>VGR1ZH,1Q$T#5:JDI288H53AI
M_+$DY,U5R_M#GG<2K)W=_<6%'"Z4%V5.I%**V8H3"VNQFV1:!#V,NAH/^!G'
M5:,05Z_XC'2TYVW7">"IL3GTUW[5\T[QRW+Y7=?LI_'T6W\[ ^*O(KF=5,"A
MGE:MJH;:8:PCX\+R6D?%U_TB@7N,'&K'OO;F"1M4&#BCNGT[:Q A9/J=$!JL
M4OAA?X]TAP8/XKZ@JM1I43XAA5? .07-<_38!!QJ*8B3KEF89YTS]^-P6D+/
MR';F)X7G5PYE' AAN\*  QM19#OP7]47 =8'XBTL@R5B;6HD%K&)"O=O/A,<
M#R&=;]^X+D9+)G!C.\E^QF+M:^#W!>_9-*8Z6Q$&#8WP -8!%W4HL9$P@ +U
MBJ$+N0MK+&,.S$#M<Q00N$IL".<%D?)=5R!4Y^]5#AZ^%:S3!=G!I2X=-^N&
M@U.CF)O*<]<\^U,"].8/[3/5?79>/WFP0.44')F7(#)0%T+KI:"3-CW9.X7*
M\AGXSH"X\^!#-SU=I$6Q;7%CVQFZ[9YCVWXII64L]4JO7N7EU&FWPOJP_0;[
M.DLF5+ZG+ZR #8M;@>+Y7!%/RQ2QN[\NIOKZ'_N8;F*OD?:")RA23]S,AU*W
M4D(9BB KXK39P?0BABQ*-OBE_N7)ZN^U0@HM$WEXA;0T:_2A-"4K?\&!^G6G
M' 1[ J8.MU-!74^:'SP)@> B:Q_419;%BE"1T43AX%QK7?;E>3)_>[!,7A7I
ME-;]3R=VZY0K)+V7VLM_P7E*L^D30*DE<S^6PX2(+9%]&O1\ZP/4U468[R5V
M.1O>7"_#P?JYP-Y(T\/^\]C CU@6YK5[_UI3ZC0^"E_5VXF/R-O'6$MH%O.[
MH]NJ# [:2X$Y8242.;:3U375'=*7E0P31O>^NWO\:]# ?Q%AG;R.X#PG_MJ
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
M4)R!\D"3Y(H?10'=3. E5(\)9*7/T@ZYP'"<0["%WSM,8!^V1CK[,/IOX-_
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
MX[^@/&Y^+_N0T-$\\BY;C^91EVTB,3/#4?Y]H:TN1R-/5=* 4IC>X$U#14T
MD$B"[T--P*OM2JE7$>^U16E::ISMON,/Y1Z&"7\;=5<*>UWXJPQQ8^6[7@_;
ME8M,P-D8J]:)KF("L43:Z3DW(;P<CWR'E6J"F\!ZN8/4/LM]] 6ME)S0E414
M)OTU$[ O%9CSC<N4(U>7",R<;XS8B;F"V-H2_RMWU;H2A@J-28ZF7* G/&4<
M=(HDE(M8ZJI%K;^GEK ?N7@6NLR"#US3ID)V= 7EUI^S02B^64S@3[6KV?>Z
M_^3ZGLF58TS T9D);!(@]#T^]#]>GE#A^Z^" H##;$$:_]95',XWJ']EEP .
M_:^L<P/N@SI\@,F_JXC7W\S_]>RC1N(S#D#N1'H@ <JU%)1AV&GE]@7>Z-@<
MJ[B;]GL['JL[=R LH0CI0)IPH/;PE_.5P.:D.WYPNND@&!54!*/OQ<T[2#VU
MV["0 <,Z)!-H:?R$*?7-XFQ6H<' )5R=I@F)"=SSGPN9S_X2A6BL>^3Y]6=3
M\/YC ?'/K@ K_[%+W(U3E 1Z/DV0J@%:$_>*Y7Y7^$90I73C;FGV#P<P :\+
M+VI1H6>#Y!D_H%52(3!'#)?:*Z0Q+,M?W6%HZZ]W!]U_B4;LW'GL[MVR(\%.
MBLLO0?U@ C41'9:XBO!UTR]/>].>']_U]>5A#XY=Y0&6$OT4U_0+0'@;AF5<
MW 9BCMM-SRAO?C6M/G+S_IGQ6[4];86KG*?O>'6S*/5Q\UDH!^H@ CJG&_J(
M%!&RZOE.:WLK6[!<LEM^8?=HE#H?VP;FST)!2O/E$5\;VDTPM&#)R=_5396_
M+D4L+/U1T8YPV(NU:!;'(-#?5?4?#52X4SVZ?2@5)UW_]GN>F=Y))B D^_">
M^">'ARMI.Q^EV3>+"2FK360TQ8PL8J="6LOW\<RW_LDY3-/_X!Y+3%<_)'WO
MK_0:+]/*(/_S6MW_L/@1YL0X3X6%H#2,#V04B4@V-P.&KDD_#D;H6=/+OZ G
MUK?HQ+>9N<[R6856.IK'N^XZG8VYJ)?WH)B]=;^ORH;N/S"@=4OM04)\$#_.
M.E6^\>)ZZYI1@UC6=C]F3BKG!Z<2U9,Q(4?FI:!#F<!AE3//9?Q]7>I?0IC
M:4$^)E!\5Z,CSX=Q4>G'OD!ABA ]7C>H5(ZAB#0>8@)X?T\Q.O1VQJ5APD-&
M1>N2#'L+ T WZMGY443H,>ZE:W-@#SGB6J) B!&6/S+@H-G1 H:VY$W!D^*_
M[LW^AK5GE1?^#]C.<CZ\"1]_&#0[*8\TP<L<4;V<'A:"-:16A3F\";GA8A/[
M[8J$]$+HDB5,H%D>9)\S;Y\VQ$=T3+_0NJPW?'I6<Z!/;[9=Q'7TEWW0QTL2
MXP0/XD/J/22<CD%=U-7DYVW-L^H=1+BVM^',A*4C?UO:OC)6#.+X]0AH <+V
M8:[/&4/([QS,\EVJ3QR6E-A=[GM,#)"I2E_>-I QV]9G^'0WGYX#Y=]J\!75
M@_6E7G?CB';COD;Y@TX_,R.=L/0:,[,[O5?W/^:9J2N/G#VI+8(4'3S:1(9T
MJNXA;T#/\+L-W]8E=9_LN[1W^"AX8O<T57UEMBJBY7?XIBXX7[YT[,95HP/=
M]YSET'.>S8OQ/\[MC<P*, $G:5A-P7CS*;!LW6+,\?<-_\;)^.Q+ZCJ"<\^
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
M202%]O(@.,2C69IVC\SM7*^=R6=T*39C>C(DYXRT[*H^ &@9 [P:O@XZ\JL
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
M0?LDPCO-8:([TU/<1S'ZYX>\W3KQ$U_S ]VQ9O%.*XT9432620D91GV%DB+
M9@BVO*7>;EK--M4-:<IWKD-@HL-O_]'H\[$E+SRNZ)\UH&N4H?'E[;"#2 ?0
MNX0F1Q[+E'^>X=5*]! G/#NL[B.56PST!EP,Q6)@<[=E.YYY\ Q].^T'"<\S
MQX9.ORB5A"K70]][KG/AP.'PY?G-SUF=MXU7^Y_2Q2I2D@*?(@FLUJ?1RYD
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
MR0^K9L@A\&AXI;&C "/,G3%*:4XH6;*BA[B\4*&97]#3MGST-+Z@@J(Y,B[
M3WE=W3FRQ.=T<4.OU52W3DN&*G6.K!3UF9:6(8NYX'KX+1Z/)_325XHLJ?73
MKJYN[\$U9USW@=]U&;>>7&87'$NRZ=^TK2K]6&\^7#U[CV![G<'E3Y6*A\Q,
M+C9+DU^-/*Y,D/50J+80/?W7>Z[5R'T>;)\,R)FZP_BLB7:"8S3L 6Q*< O^
MBMQC_Z#^91HDMF0BL4@@M79 K-DZ[/4%Z$5W]HCR<0@O$L%RO/1!G8^J[R\R
M@;[+'#.P]<HP6F3Y  24B6B-A753DC$UT&!E\:=MB*TL(:M<=^F)SGS",<[#
MN3WV$WG7WR7!]7'F\>_.=?V$FP=MQF!/UO\UH7_SO(O[Q:@& P/R75=3X<US
M.LJU, TRK)V[\5R2";Y9K)5Z<.YWOKRI@[1JM:MOSL[BW+Q?Q5[P?M+/MA35
M8=F$K^]S$TZ><! _%:(1>KO\-6PN'EWM1Y.?#>:<6X_:5E#J0''$749\*T^I
M'S8^IC]P3^RPKNB^+F,Y.'R\DWQ6)P;W;JW9.A(LZAU?JXU)>9-D]"*KE#06
M&(I'QH4[AH,N712&>54.#;^6E<T*GO%BN!2"AR#HBAM_J0(30_29QG4;#,GF
M-8S(SVOJ\IY[HKW 'G1)"O!R)4,H,6 3V9"R3,^I+H<N:8MBFA.("X'0FS77
MQ2V<?0<;TY_!&H0:XW3-GX@7GMAVI/'G4KH8@Y@(RDW2@>*_Y*PN#PCVLY,V
M2"3+Q,L*?3+QZR>[.2S,2YA *Q1C'TRRQHDC_<AC294=,TI59I^C'N^N/O]\
M_>:[+6<]2V%ZPK&Y\/+%,N[\,%)WJ&.G^IZ+18E.[C6(;N\V)O%M73K#E"]C
MWGZW/7893S,AZ#W[L"\W3N"(OWG:J+><W.27V;<*O[W<5(0S55A^]C&] C>X
M;8E^#(VT"JG)^-B8!-XT_-"K>WG?L.4[<LW5%)-AA&?/:^Y!>C9*%(R@&--S
MS)A VT6MID9SYX\(=T*B9NGN1GS9D-!%B"F0U63'>BB'*CVQ&C[)20FN!;-(
M;>=*-)7PPH1")P'5&P44TXT+"<21^+KJ"HE [7O!6;)I>YLMF3+#Z+E"> 4C
MJWPI:6(*>8W4U-;Z\;K,4],Z[/Z(((-.#;8SY*"E6IBX$+G1[.N%2YG\\2=_
M+8-(HZ8<^*,/X[Y8HGH?=<7O6X#=<<\#,-E.L[EO\U,\X9A*#^+P3"]U4D6:
M"7BNUEEN2[7!(E] .UD!LA6\0XLM*,*D!B)Q^?.#-YX2NM,6/.LQ.V6)&/5R
M)O!$ 4N=(PZ[6"F\5*'ZWDOPQZ4/GWMPF0GD5GB"P?<6X34%1&O2V#I5P8+L
MUM\3O3Z)B+AMC@:/7XQ$DY=IZO01.G].LPT] S.74\. D1TP(0P%IQ>H>,DU
M\<K1IWD^M4K'V_3*+++=@VN/'65KN00U^<&F<R(=SP3X070+ZF0S.3ZJFJ]J
M>&O%-VW9CW%"-&A-OP7PT@>\G-B5\+JL)H0S :ZYBGHP&E\<**]EL+Y*B;U@
M7T=.U+NC9])E0<L5EWA2NT4TO#TF^VA4.1UT+RVX0K*Q[A6[Q+?EX/!5_*?Y
M[_6.<F&: ;V2H2&A<2!5]K.MGMN6G SBH//3NDO_!WOO&=3DU[>+!E%1$8(4
M 2E1 1$0D"8@D(A*$R&" E+S1T":$#H!0H(@52!*51!0$9 :Z9W0$>E=.J%W
M$H002&'CV7MF/_L]\[Q[]IG9^\R9.1^2#[FS[K6RUJ]<U\IO7;=-/_^I[9F&
MQ@OH4+ (?1!6W/>6[UZ*RO1MIEEP9%Z[;6DU[U*"O2,3W5^S,<-JF.%(5P-A
MWXB>',(KMN%$'Q ?=^$+70A?)XZL27Z3](_=;K+H&@I4B:]FK#KXW$_Y_P1[
M^XUMG:$\IJK0TKVDR\EQ&UO^WXCQ.:M)O:IK??=.,K'J0I\).)P!P\DPL^[?
M$/]U\FV]_;/*LH@?!I+#&U>2]KK8Y)JH>>'46R &=/].YC%@[I<T71RG0H6>
M3"XFHP+7^K.,$J",7>Z\8V:9;3BD_U:U6!BO]?AGA_ <VLM$XX3%+=.R<*N\
M?YN.HYN#P%L0-BK@<REB10O JC-\<I?Y_&7XA"?]@H!]5F#F7R99)%1=S1N[
MTAK]Y6O$WO5I*"MZ[<MA(*/MI24T81L^84Y_G0*ALR13)4;_J_:7J'X:OK:,
M".](JAAV?1%_IX:K=J?"0O#*R\8_D"F0=-'F' "QLGD,H @AG]*R]N,7,KC7
MN7VNB'0OF]?[G( 1M3_VR[LA'HM[4BB#OADAE\ !0BF>.PA\D6RG*D8X!JC'
M]D[]TR<]D[)T#, )I5OBU/L!2D6QYZZ6OY8L_**]$'.JX\K-"WEG 0 OP-/_
M^P&&ST&:Y[Y& 1;MR<P$)S2O&5(=PE+V83^5MVXC8%7RX2OA)K[?-QA_]*K_
MHZTD=)K1TOO_K-S=_X'_4_W@6Q *E&Q.\B94?A1-#L#.M*-+O-)H 7XE-HG1
MH+:(QNU[#!0H?8A^F9:&E%S669K9."C.V$P315O-O/JP9,-$?'%;Y7TKJ@]-
M> ('('5V516(&O\0ELO(&M7V;8E= 2K\K= #BP7:5WV)97@HCADEB9H 72XJ
MC[%YEJ(19RU56]3[,794;H#-:_KUF^A__O$!I.QC,"""GO.6U$"=.@'T+.G0
M)IJW3.^1T9\/K[LTI$X5J_E4J. QIX+ G<8F3U8;<WE/"Y[+PO;.!A\#RG'M
M?>.9QN#S1(&L'E*RO6BR)W[:5MYC8N%[Y ?7B&- B;H5:D<96P+FHH_B3C7<
M6G.;7K-2+AW""L_KB3ZOU@UX@]X.ZF /?/*#I@'P-^+\O13K,.I@:Z+):_ST
MG=9WA7#B250*17$@Q"D=Z;(-;*;/VZI>!^]6XVW4J?H=01".H/.?6>U)B;3/
M5#6**A42W^I+MVS/]:Z1Y-:3[&G]3>G@CQB[6GS$6B#Q!S1OWRK-1UYIUQ77
M N,60)>=G,]^M*VK'^E^(Q[M]<SB]6\ 8,YK%>+8-_' F!P_;_E@OA)35/?]
MB9^_3SHFL3*"H^3TOFBN6J?PG-<!G"R\LYF1IX^EV%/_&23F.]^6MSK_XR-D
MH;WM]=E%QH%OI_/2P?=[^E([Q@AT:'CLA6S?CUJTE/@RF\J*_#I'[#8V*M/\
M@<:.#DB@5;GWQO-U/T%3:5)>WFX2O3UQ2QR;(T=VS,E,QTZ_!;^CQ9ZX=Z *
M"4:&...9W[8-JZJC-%:BO&.SMXD)MF*J$9F@Z]* F[T,+_M,B0_F8Q,)?W2%
M/'J^=X=O)E4? SHF![0V^GVO Z-PE\MFPT<U>\?LVG-E7S*_(O+0*0N?]P2@
M&U8:<[-G$-@%4*3=,'Q[4897$;;.'AUZ#+ +X(@-<F/ZC%V"\-0Y="^D@:_@
M$31[I585\+-J!TL?\K-,@:];%]PMADH>2>^S\N"1-SBD0RVTJL.RRVI]D_/]
M:^O-1SHK:UUB"<#@\IVW,[>2C@%&U0E-RX<IB1O>RO0S!VJ 50#I5$/HD/RD
M  @:KCLDF<2'$#K/J:WT1!P71E7()$.UWS[LWSI]^R$X:[)69AM:",.BFR',
MMQOX[=AS(Y(K.L8.\D=&*B9QPN9CB6KF_KTF\:N9O,N>JJ,U3RS*,K_9'.$@
MG0Z<!AJH.H3U?Q(!&.V#^3Y83<R+(!8-BV)E>2X%G]N66,F(LF(<1EU&E$@^
M?9BDO262W#-4Q/F'@S'MS5'L3"81^U5"KHW.-4AU_ S%TTPAON)+PHS+D1U:
M@@O[B[[8GU1K0F]X!%6Y2WW7QL'*2_S5<.4BW)MWW)EDFRF5A%K62.T2;YLQ
M&TJ*L[*DF<P78>1&T8Z&=-;7\@%J-=T#B=4^T.E&+;XQ""+]LY? GUB_O^=Y
MF$_X3=25S W_GM:!WQ]U+69^>ORI\'O6]W3='XA*+)^#C4\:58TMPZ\ Q=L'
M/?***Q41J^J;X6-8U[L8A]+2\J$MFY+B2FWKR%,=G,ZA3^X"SJ DFNA\Q)VW
M/.N\E1$E"6Z_;3.AK&-"N3<I)9_F&[AN8,603RFJ98?P/9[-R5N=8K_"GL5_
MVO>8Z=R,WW!]:S>ZO7A7*C(+X?OXK=9 01PSPN3\%>#P4?Q4NIY[!AOJ%!G>
MEOXRZ\O6$'PR;@"[G079NKD:V#'/XEMFLK?#Y@:]X Y^5/*IZ_SY_J@R&V</
M4], 13XE^3*+0L?L"="UT&[W*E6MRJP[WPX":7!<]V&1 UV8>F74E-UT4_@=
MF_!C53F,P3LCW*7W6]"0EA.P@[K976EHOL[]4]\X($?BPC&@QOP"^"U,<VK"
MS.IJ[.Z$LM'SVZ9LMT][J1[D2AQN@S366<M^&,G5/>AZNAPKH&):OSWIM;.<
M>^-H"SO4(),L_OT'@32IC#8[!BQVQ#ADE&Q_$2G5G0>Q:W!FL?YT$9)BM(DN
MM<$]85JP0C2 ^KU!6QEO<!P%S*LIM&\U^O6N'6>X&@RNQP]D(N]6&D1''7VM
M@Y$2"%J_]WF0<!O@]G8QR_; X#VP,?69#?V4FO-/HG1S-#!4V9CI+?D&>U9D
M5U[[MUGY++'VC1E?.-[QQM>OU2)W2/)=<O:M[(5)RTEI=XGNY8GE^AO+M;//
M,%W0\!D1<N0)#A^F5::HN8N\KU/,*T\JO?C :3W%HDHD0?#+O)BX?>;IO@>P
MLAD^XN7($^P!?$[&MI@E^*;XY-@+C(1.B8K)R][T<M]\%D(>6S&A<D[.:5&E
M8*_-T%O7\+4G)$GP;(S\#N<MY^3JP7&<I_+V8_U6#MJ8ASZ;B33E)#<VF:I*
M4!2H9]!O0#Q4&>R&AZ-B-%).*N[=#W.3+GG9LA*Q)YBX;V?G]:H8SJ*'-&):
M:-=497Y5K81_Z8OXQ"G>9'9 T=G$GI_5'_2GY!"7'T2'!U,],?A7RSDWV/5&
M,I6M.M7J:*M%)K15A_J%??$Z#&F"EBL/&1>=NY%+E-KZFFS\(1#3XH\,IY]P
M>/WNV-4@7E#.KS?VPB8=?\E$\('3(#P$/[:YXL(*&9G:\*?H9!08/*PZ!C3T
M("LI#_^JQ7)3.8'SON%E?>QK/AY6!2%0PDYXV3EA[=-#VF?O=PK%"Z4%%;^R
MYO[,57F>+-9J)&=F]&?"(#,T9#EMY?*$V>2T:^?FI-,O&E3K;9T;OL9/SXR7
MQ=2X3<^CZ;N.\$SR05RM>9OP]F:%"I0L:K)9CZ5/0LK:^F(;1#_N"S!JU=/'
MB-Y;8SVT3$_AT,%QC*=$V G LX9]D8"5G(N\<F[A7E[F_[6=AY7\NPL.!:(Z
M<0Q[&:%F)HD*9%@Y(N1)C#NI:X6Q&VV9R< -:7R;[FF5 ^.;M^<%WY[GOGO%
M^CLE(:DK$2[AY>%$-S"P!)826H+'SA+60P/=%>J/L+[=I)BC[SEP965P3@9J
M&%;:\0;G! E.Z6@Z<:Z\=NFO?^0GMU)3VHFR+]+0TZ[G>*8*NC[)8#LQXR8+
MOJT0LJCBEKOG-^2]XO29P0GRFJ#B8/(MX<KIUE5(=/;#XA^47]JGSY_'3D21
MI>G,!I3KSQ$YC<7T44&V,NU]/8;K9415ARI%GU?XZZFQ6+XJPX#,77<>KKUT
M=N(==H5U0KOSCK5,^CIT<]A?PF=Y /8MP:RBX!#+767#*\Y9E2-VX(Z0]BLG
MY19:4G:=MD99'6<?!HY]W;@+C=@+@+(YW(U6]%$<[73_^[#FS!31)S_7M9ZH
MGP8],'!NX"7,1KFP9LS#@;_7;PO^@$T(=QXJ76\XX7G!U^@#9C@,BF,C@P%I
MD,>[0D 60[_RFDN3SG>]O!I0X)';[G\^40O <"")\FQ#JD7@K:ZUVGFG32MF
MTAW*/L%Z)6&E-:NH^&8+C?#Y!H&6Y02C1(T\NNF-X>1?.N/[QH'0J&. "^YW
MB?2YK(Z_U3-'M_5NLASUQCB#+EN5/LRDFZ+]M*;6P19;,[1PR*O9RK>0X(S+
MY;#9F!^K5]I.0E[A9L5N,5WJ9P=V6G4!8M9YY5$,YW?>YVR_6JYB'L!849.P
MXKH,ENT<<B6A5-_FL]X-&E3_M=^0149#$+J+';T3TC'=#O8ZDMM^1%8D;=%R
MOI$KYW%D(S!CO:,\B_C*J]W)3S&:F_RV-CO7^4,W]<TSDGD]43-HCFTZ@RXA
M;BMMWT_&^1AP7C2-,F3[+.S!;,]J@[WAMXSZ/X*3]/,[%*EC@.ML&W&E(\7G
M5:$(A!!KUET'E?W$%P<D?#DMG7\*,2'+L#%;++W9 FK<.0D@S4;SM5R"-T>_
M//7AMQV_YV8\Y2]X D<F&E<<1$=5_0@;)_R(HTR4,(9!RCGGF4+ 1MU^-]%U
MT;=_SFZ),<U4?/\,C$([2)-%+U?B4YVQEZGLP]^&-[]H)EFR;BZO*S */YQ[
M ;.[JLC#%YD'*P9NA?K-"5B!WN"X%')!]VO>:67#IG]"2:]R@J*AVE#H0U4"
M\Z4# :0G)0#U$V<=M[%0V:(F=\#ZN$%XZ!_HONU^S3T5T(( IJ>_& "R.77N
MIS+3EZ\-^K1@G'/&%L(%=8;Z> 0RN&  "E?@G:5YQ";U0HD,!T#WW7WFVHTK
M?[4 < NB6X$$K;DZV4EG05$]W6>/0P?VPDRS6587!8K1C1'@H'ZF[R:IR']H
M!?1S2,X,BF*;E1CWW0@W;-::DV@ZV$^*@5GP+CY"V.MLPP-R$\4;Z4'N\9GA
M)3Q/OC>T#>L*APY\3%]?4#WC>.^BSMJ;"ZQNZIE-$ (4CJ'+$NIGH[R==5T$
MK5WMBH>\E;6K:U&UVOP:Z7X>K.[O&'X"*)/-])LG_"]&%>(XG\'L]&/6\: _
MTL7U\ZO\7/I#KZN[YZ[.1>%@:;.ED"V9!=BX?7NE( LQ,71A%8ZP&?5R3(A\
MM<3$<LL)M1'M4<\#M+AT= :/YD2@V]-!941H:/ES>!EE]6%%Y9,[1L/'@.MW
MV?Q.L[EI & %T C<I1/FB6TZ2%<F9G^KJ+ALL.VS/JA(: \AIV$ :'VGG<@Z
MW<]DQ7NU1&CDOG9!&87G8J7)TSM<;&BYWPR=P@R=V#[8!&AA+!;GC(D<3><E
M)*5Z3;R8/A04&+A.V:U>Z'W'JOB#>@G1-_."88V ;GJF\'-GV3DCI"+>[&/J
MS^?[85'J@J@GK>V-%3)Q -ZBY+^*]5E(U0S0Y D(*\^'[P3&KO,2CP&!?GY%
M;_$@*L?L7%\X'32YAN9"WDU9KE3<@6^/DA!)HE=1ZQ#)L278TR[^= ; \U'(
MWV>7NN9D%)MM^/OX!V*,IC&4(^P]?OLV.%D,^Z;OS6/(6:KR=X$7*^*BHX7O
MA4IY*!2#R6ZX^B?W^/3P5A0SO0_"@W/&\EH@:BU&I(R;S3^MSX@,JP?V3%]G
M$K1YW6@0:A#]OA'R< U">(P.,?.-*"Q7P5W>2!YEZVQPN;.V((@0X/H6\^QU
M>A7@?7]L^9Y^S-<U08'!PCU)IL?!O;]&KPF4%Y:I"T4RW<M3.A6D//L&=(8.
MH@())0B3QKNR3;Q--;7Q+&J3KP\6D<B.(B: /8#!TO+_;<'Z_Y.,WJ@\QEZ;
M0$H&5V*=?$C&/@/)534U"5K\3BJEB@"3G[BR<"KG2V=,&0(R=]9&WQ#-;J$1
M!H==O\./;E@ 1RDY 4A]$\ZD H+)Y@'^T&5TF>5!:WS',8"=QBO2::C%WA-K
M*#-6[!I2#4I!"Z# ,] "2Z0Z^7V^7I[31'16TJ6K)LD"7(CK\@9!2LW1 . C
MK-\"B)UZ\@T7PI_&4464!#&]%F$3-O!2JD?"8U#O&N0FXZW6]%-QVOQC)[_L
M/&XN"L4[K.!-S-F"$A^MM"KV/@!'XOM'1]T7Z*8?4P^*,K8C,-4KD(!W;MM/
M0W)U0:U_$F_)60QDQY/*DP\,1V^C^T0Y22'U4RC&""7,G?:A_&1"G9 Y>\:M
MO#OUB=RTY;V$,2HE*MZ\Q^P7C&\6=>(OY>C6&,&QN9PFOR*J6M:C1^;D@,:D
M.,F1C73F3EG7JA1-4,!%SKT+ (#7,: 41.6,)Z718NKNS[*BKIO.;DP(Q#2=
MY,CF&1''Z[4_E _?R&HS-[=0HGGO4C^GC1SA",ESHDT9KZ] 2*!F8%B-YFO&
MFZ9FS?WG7S+F?!3KCLOP?>'\CO;]&/ "$@0KKXAR:1 A6SS(U[C<!61W_/*B
MH6*/C_ P E*%3XX/ BH<:4ASJD**9IZ:WXB^S3ZX/K6VEZHCZCVMU^GZC021
MS\?#(KPD4P=ZLU2;U4"*I<X%'"[YB@--ZIOSE4JS3.0#DNQ)G$A"R&W=Y:*B
M)Y-&#Y,F]"HFVC_N6R%_-JEIDG?]5W+BR2>9$4/TU4XQK0/.UX-,*R\BOZ_X
M5J2%PQ/"'A\#&C>6@!,P^OE]B@&J!24,BYQA'8:7JP'U4WN+B1EAT>_U;&+#
MO!XTG)AX>3QOK^+B?,W.^1/H#8<X@UC(LI,M-<EA5)'"]3L;Q>4]QLW6MS9^
MUZC+.YACKP(0"\JB;V4)KLJM0A@\_S,9'K_Z+.$LX(VMPIKL3)&LH:FM+E6'
M)#UE.ZIU:#J(XTS=BRG[Y<0]G.:GS_NEYH(QHLW02:&Y9S%W/N)WN!UEVCUV
M5WW9=8$C,;6R"QL6R6U]$TSS?:UJ5UA4YG=BI5P+Y0UWA7W=A>\+1<N!1PR[
M 8V2<;+WUITCB*+4R^:D^3%%]$L$5GV@=(BBV/*C8C9G0G5VM(YB,'("="9;
MYL'OK><ET@):)T(I'=;.7A/H]_8776YL]2VV%U\_Y2OWOA%FK0ELM"#%D\8K
MI&(N2)@JB(H)5\[(Q$[[-3QH1]#>C>K'&KPIM"H=%&O3E*R_/)A0N=:%]?+W
MW32AW%W'559NG:ULN%Z2(AV.8D^44GBUI#$N*C-IB^;/0KT*_#U2?;H(_00L
M3M4;:N!>)3@(@LK>6-57F:L@^L]MO6!T<,D,.GL[?PBC_CR# 741J4J+@MB_
ME69P,+>2O -4,:S_?5GOT6'CK-C!2X9GGN5<FF[51<SW!_=/LBF([>..R*LI
MG>69QYD1UWAX0.JAC&."^]2 O:_$3*ZPPC=XJ8MOC=;I&RQGB$^SI[-,9YT2
M[0)T-A.^3>-]*?!0?N!3Z6;C'L]JS[$\6I;?GD=EK3YD*KM,QW%2R\X&?]"2
M<0EI.F8WLF^>&YJ36D.BZYMITM=7\E%1$$ @Y4'_'I;5T=UA0B&E"7X!?PG]
M4:USV_'(.#%G-<7KKGZBT[O)QM<O8LX"0 L[,P4F:7B3-X?0L$.O/!W**V\7
M9V/_BIDB&;@1\\8,?"99 Y3?6UIS6&XN[?,)Q4/']NV.G^$T@!6F\_RO5LD8
MHZ/J5.SF^X"69'\J:GOY^I?B [Z\'P>G&<G&H5P],4UX3WZ!QS=N7/!:UV@W
M"%#J-,U9'"KV6M=/U%!2D=_.2 &_)"Q,D*%MB@V7B+UI_$>6U*>._K3H!9D>
M^-6;<[$;(1GN&69_,*SHI@LX>SY+3?,=#N0SHNL7UZ'22;/Q^OJ: MNX[]TV
M[QK.GITS4>H3D)A%.\)/^RG>1JPW@Y(LU -?#P0=@HB,\+F&\F$D Q%'%1%D
MNZ*Q.%FT5_=P7+4.UCC[3N+XA A@5W"9._SN]L%U[BED%WZ+-<-\:9=P_P!B
MJ8]>SDO\#MA<Y.8SLU)<+%DE3&F#,;37_??SD33Y^9U :>>9'DM+[X8809LY
M+%D$LBDY5QB7TV0[8O_X92#<J+IZ>C_ZI] QH$-B["0A2\SEM-S0 0L@KQ-Z
MWQ!IXUYI%V:FZ;7O&41G%48,8,._Z4+S%T>/ 19MP]\S=/0-89X^8*@TOD'P
ME\O^+0%Q/>]H(>Z#++>O41+M:I^+ N;[6GI$YV>;CP%L5.DQ $4T0MXY]?R'
M(I_S-K:L:L/O6J8NK#H4.HSFAQ=>*9O.NIP2F.(+W9'%:B;=B,Y]9A(=K^>K
M9XJMHCJ<1$!'Y(,1W,N=R3X=0DZ43NF5M/V^T/*?IL45IJ 78D>66D!\"BT9
MVP$E2S UGR2(U[@*4N8"B#6\++PU$CXO((L(4ZT-]NE6IQ]D<'1N+5^@69%9
MB(]:%NR;T,Q4TR&?TV-[N@&=0@]:#4N LI"\AB7P!JR:W*.9Y![RBYP>?. N
MGV#G&J?[472E(/.$@(#>("3,BO2B>Y3,:@]^C%ADHHKAB>5+W^R. ? T%]GU
MT0G2A*[$I%<*[[MOQ8]>)PY'<UTEJ/._R-! L:+(R(_S?X6?EV(..G35M%I\
M\YF"I1:=TQZ-];2.AFK?F %O8C])>*O7JH9.[[],S%J;$/P(SW0@&4R:F=W_
M,6G>G&IX<QB0!U@% )[M_5>(HI=T,R?R<[J"E[?XZL:[QOW3OISK-QGGT),F
M)(-:LM"\--ETEK7P&XS%:BI,C.'JFLGIQ1M:UV51"SX0,3K[M.(;W%SV$3V$
MT#ZF.89D\X9SG#CZ/F_1&[?'02PE58!B5'<F8$&9MY'"UPH&#2!-ODPCG%O]
M7YDD<??+*QJ72AD_M X&DO<%-!#<P<> N939TTA($30?D?%L>/\G2Y=:>II\
MPT.#CD]YRIB5=Z]?UWJ$T"8 ASEMZ#*3+5W*H_5"?)J*X?"V4 ;]'Q1O.6)A
M(N VYM;&,<"2-ZAH%J](Y3"9#X]<##<@9Q68(WRZWUD-7N;F?J5V.Z?K\5'2
M"Y7"P'P\] Q9J['&<!5UD3 2F^Q0+[DIF20B.KS%*#JUZZP?I 1_ RK%-(->
MDX(AIQ#&PK5B%2[&.P>5AD?+]\%/T#5?3"9J4VY^!C+3?D!L:!(+#0GTVP3D
M[0E$R2"_UK7F[*]12E$/QFLETM. /!)_N#?[*(\18R138F%'"-+.&G'$-\.S
MGW;%[KJYLGJ+[I6,F@5^K";CV&E4Q%@H_3>HF)Y(G'V$YD& >5Q431U9A=[A
MGQIH\&M<VYQ.[-,/C^8"'-:2:FAYWAD3TFTR"&;\KB6Z61'NE6OCPOE*9$14
MU.EGYQBOTL-VOTY>)5CFWZK?<?&^N9?!#7+$Q )/!/9)R,''%I:[)ZY\Z\DQ
M 'D,X ,>: &2&FD1.)LPLMUI-%>#F.,_B# CR'B-5R-H\W<?WR0]Y<<QH$&]
MP]!]K_!_H1;P?^/+)(,^""G7VCRD7*/>K2874C2IAD-(Z:_F&L+IWGB_&U6[
M_;4%; \+%5KR@MNN:_[S^=,_'%:.QX#3@R<AXB/U[,E[+O(J$=H!'V]Y2#R#
M#:M37)C$,FMXSDLH;2T-BP3W]BX5&<K[BG$PMUW@#S\\;V<Q!PCDUK C3[8W
ML)%=YK:>SG.W MG''28N1^;T!!8X323^:H';N[!SQSD*1)R+RM,1#3J#]..F
M7FYI3$:?MZ,5;D)LT-'Q]+X?W3/V[66#7D1'DD)\EXN!5RE"07.HZ3"FL;RW
M$?:R7P\0B-6P)0,[4!?)F7.%HO-:+1F<SS?\S];FM* SG:_8-?? _5S$F6*?
M3^M<+/C&IE6(W"?JTB^XX 7D2-&C.%O8.'I.-+I!D?J0D!:MV'!W$,GBGCUI
MBK 2\XM2F:0]6I^9EK(%)%1H^ITSOL5VRH%QK4:B'6T#G\R?"]^JQ>^P65#E
MKC3$S$/.;, S$91&*XEB<SUXRY7@>#K&]U3M]XM<4;I\G9ROS6TJ1AG'O_]O
M$WJK[HN$748)4*_U]T6 KY&S)_6#0I:$"S_:"Y%MHNT^40#NLYP, V/Q5#2M
M&,Q)/1ME*;5]0(%9,5/JV9N?F +ARH>7@#9)*]>TL:E_]V5N^L:"K_+621-0
MO%1(%M@ VP6LM,"\J&8+6?U627EP,D0@VO[YOL C-:T%^RB1 78[CJ)P%U!&
MP8R0!ZAS9?/GU&MYBHFP-Y-"HO^>6Y7?&%;D@IO%8$**0;3QMMZX<$W%X,-J
M34G16A_=_,"X]=F'Y6+(%[3/=!GZX,2G043P0==@@4T =K-6<[>@P%H]*<78
M)OKFQJUP1E$^]39$1RB2A1A/>C]L.T3G,:_ X+T3.B!16!M;;@ _Q[FK<KZ-
M/&J*G+T2FQE73KP>%Z6JXD@XT"2\6$.QER?:5_=W3TZ:5#U-2#I2[VY"2+ ^
M=AH717'89R/E:1D*.#9S=05:U:!\U8 QYZ4S/O>4SJ5QVGQ1]6>$A=N WQ<A
MQNT$^>QF)TSCAS:XA)!W!%SZ>![]*M@I6Z\:>/MHH#!0L</MALJ=TEX9*',P
MC%.LUKB0-J90J.3E!*I+RJT2P8:CNF=+5D(;SC Z$@:;2118W5N[Y1_JBD^E
MU,5KT2,=[U@'QBX\+W[B/-XP3>RX1]DEQW%9I3M\R-EX;_4'#SF#@#<90ZP)
MI)3WIY@^BBWK /,5G^ZMJC"8E>\F4B\LQ$JT]JG.Q]YHA<H5["@WZ[7Y1+FT
M3:B(<)UK,Y.)TC[BQRG\++G(+[N9PZ"??N6*YAW=D?K]@(KMR9&*OK1KY%FB
MC2Y:/#!P4L!PN5<6;=2W88EMV9D SQP9#:GZ7?39[K@TV_A-E,KB-[G/'\!:
MONXY:3ZM^:+ZM?#3$=LG6AM6-D00R??'B&H/K'%2TI75=)-G7@Q($24#*Z%9
M?E7; &)7R_<.^9^>>1\_.5*?27@JWB1%VQLB^ZBR;XX!25N_]\26D<HI,[&B
MK-\KRS)=0*DZYLLIV_Y.:MF9#@)7E.=2P.>NQ6D([5Z-VJ6@?WN25"M'1<>T
M-@?F.J5<7SK:*5XY+9N]ZZ&M91@E]QL@$4;(:(7P4X5'0%JUP= ;BL< [2%I
M6< !;#M^70D<5A_><@RX0A=TKO&WTL5JV%V;UPUH/_<3_5YPX1A0",M%N.R%
MX>G7,U75'C\NV;3URM?,TM+?<CBTG7HVB+:;<#9OG\"E]56)JQ+3G"ZUJCOS
M>N2:T?548#4#!U((3[QB,X[)Y1CP1@N?$;Y7F.%)4=0,9L'I1<A8GK%]<-+#
MJ2EW8/1>-CCD"0:2M+X(5D2:% _4J= B\6F&8D7[I\6'S!_S=;[]HLP4[ ]L
M)7'M4XWFM5@6><\**;>]6#"6SPS0_&8GII;)L[X?[R@5=>!_HQ>)$\$:UMT>
M=O2P/ 9(QFV3S(7"R0O$"S ^\GNDRE?MP>?CNB770&#D-/-%;_HJ%>J_#WD#
M ;X@,(492WP87N=&Q.UWV,0*,0UX'L8Y!]/2&O@#&W;H'#TO+K:X+GGM61\L
M"M@>2:OO[&$=L*UU+/C'0Q&>C[4BIC3XYMU]29<"GG[;6XX*L (OWJ7(3\^6
M@>,CB&5N93:)UJAS2&@=#K^/0KW6X#39.R3B_Q]N&YV1OK1ZQTJTOZB,1<.3
M95B$9R%1[4- 2+!:&^)L*:%K/KPEOS1W?-(B%+,]Z^@A PC8.DP(O,>U9\=U
MJ!B)8K,%"_?&BM>;XHG/GCY;'W):4_3ZEM$:7VOL[EAIGZ]6EZG6NB3^)/K9
M%\D3/ E=2^? PR>TVB;T)]&7)C1R'RI)H7UO4N\U434#-_J]L!.,^.Q,6]>B
M<L=7:5I]9]IJ+U/OG&4B%$(YJ;<(BM&*.OD.[@5;QP!IXV- ;3SX&Z:>O%PE
ML3-NJ[!V%_Z69,[1F#[DB5UL5%R#);:('^DBT-+6R:-9J7@2IMQ17^W3IQ5]
M]*'Q5RNMD@VWI)?5>6W]R>:O:+=2J)=J<U&#&<#-W8HGL.GT=J53V.56T& U
M39>4_2FN1NO-I4#!Y<T,JO<S]-WA(?0)A+[0%))'#CZ:B_W*]C[D, Q2"!LY
M!MBC&?J^0&TR3>OK-T2WI86K?,1;LC7=0_J),SE\;XZ,E\EW$^LK0,P.E9OX
MGTL2$KMM52,Z]8GK&C _X;N><S5<G'[V$,4 :<4"] TO^GEB;/)"!K %Z^@2
MM/"*$)\4I3X")1^<OC*&_53'-$_SQ#-%+Y6.N"P^1_:)/BU3:U2]>_3^4\@4
M"#G6?Q1(2\^WNYR5,W6K'\J#^/:@16S5>6^6216:,R^H):XTLOGGHF*U5:JQ
MKYGG]SU#Q^G 2"MI?6-J-$74STKD47I93@%L;9=JG-.*)EA@0V"$1.0YPC&@
M/1 \Y-T7JA#BXK]>+RG5:-E*T>._BAY[L&$"F0N?Y47C96F?]C%O% \"BNH$
M"KG+HRNG2VNGKS,< UR2%NA'7/O +0%"RM@"MA%S&2E4\U#4LG^ELL)^3:!]
MNA]'/6ND>0P(&EO"4-GYYGO&FG8F[P\U75FH+Z]\>VM;WOSGRT-D;2)M4QDT
M\^?Z;@?-6X%6WX(F)B&4,;]FRMT,23]V8TNI)N4P>?1M=T7J"[#<G)Q1UBVO
MP 3JTC>%/50G]2.%Z<1;YNSWSOU/V;G%3C!=DJI ?HMUIO,0(-&;WFH/FH^"
MBL>V7%Y.D3P368K#EV5E%86*?(48!HS+OQNW#"_F<_,Z; [I]UBJ@->R:W,\
MQ1567SC^&8Q+\#;14_#:'!E[><(??QAH<+W__M_[0E*(#^@7WE(XD!)5&7K#
MX-MM^3#S6J%QA/\O\V93_7/LXH>F??Q56-U;G:7(]?RLH);>@J3U2Q[EE'$5
MZ3M^'[.]XQ<3C"Q:+EV0"5#NU"1M^111W^]Q<1U2B" Z<]^<,T1V%B_::&GR
M1/2Z"I9MW7WBS(%,LXCDWDSYPAB(8(&>&(2R%>4PO5'E$(BJO&M/LFLRAOFQ
MM&_-+#!.EJ,B@P@FK?S>8#_K$86A='<]:KP+<A/ECB'6MG2S6&G/VQGL+[Y)
M@=WYFO%K94. BZ#5#"=+[;0(F/\J(0\1X,8#=DHF#?VN<21V=)U-?)>78&/U
MT=A0QGF<Z\XXWP(L$?@:?'?5Q5OJE.-$6E-QM21M)&I.2/D8X'4))O>)P,1K
MRXV8XAPVF=!-AY YE>,.2]=E86P(N8A;/YZO*D-*13NEJ6>1)6CA/O.O0>J\
M3%?WY$TZ,FS_/837[OZ>-1T$L(WS?S+Q://,UQ_EF,@&0+^'@O1ETWSIF5@Q
M9#N(P-E9!'M&RU8%OJ1;I5H'^O5)%>=)J57RTQ,)X[.1#2"W#?=NN;NWXV94
MUY\> QJ%>J0;]]P.-1VC1A-Y%69&80']>V82?,V"$ (V5A(U@*?I639V)PTB
M2SKV8>NR:ALO&_)O]<A.K9RY^/)4F=-@2IW=>3&-(X4<K&N.@)."V[[ W6+W
MN-4]:PW..!U^F;*2GWEYLMT= .!3RY[O^?71E9>C\'76Q&- D^"569?LQ]ZZ
MB0MV^:A-D-]=]*PR]C81U Z,H(.KZ;^&EI+.+:L8=CS6G**W8CXVI*GE$UGE
MCNX1F,X_0YAQ6<EQE.3<'SRH$8/.F:T.>L2A;8]NX<+D5#U6XDAN.Y(0EF.
MR') 6"Z1J>F*)'YH'\HY_D"6MIKBGGBTD+.@ VR% Z"M*(7!$O^SN&C0\%BL
M Z@T.;;\+:S"R7#2D1)F*!%V:V6=6XFJ'YC7.EL*C.7^H) F=@R82;J'WF.$
M 77;8(+NMX]&I"[3NLNC7!\Y>BWKY:"?:](PFJ;2+.J[NKP[DJ3*_3_V)6WS
M..9>1?5Y72;!7$3XT; G8JRI8I9(G)^6A1SL+(!Z\MM$:*D-0IIN&?^@O6L@
M(QHZP,VADU2-\\[6HM.Z3JB 0@Y58Y9/=/O!F^RLZ>K)8X".+I&;! )*6BF;
M+]'MBWJ($/P4"-V><D(,/-;,#SF,]S"\""CLFA?\TKA%\1J_R05S^F&O\T]K
M6G*=Q=^^61304[**?PR>E6/&.^8%TY*'VM)V8X.98PH/E1CWY;/F<S!*TJ1H
MDPM_#,W;6?714B8&QX"E.Z#?4PI/I\/N#&YOP8?^J)&B#G%]Y*XY4-W$2((C
M;6X+N)&@,$CF)F%&M["#0QWJ4BZP$.^+UVPCCMY5752[QWNTAX6*'#TF9"';
M>2X>,,$8C/7'<CGQEX\!*5:;@S@3_2Z?09E6M]@[\FD6"MHC49O[J%1L*ZE&
MG(_E?I=1"<9@R#4.<<-R0)?/[GG E11<YII1CM4GIZ=Q";;Q>BK9Z;G9E=!,
ML$$.MWW52;!Z\3^3KI)8G_!.*LR:6DN)*=$[TU/;HFIX\]I 0I@A\(F6$S7R
M&! BCEZZ; 4^!I0&C:#W.KZ,;2S.KJ?2AF#OT 0[*/5K5\<LR>T*EOYA[RX
M3144H3Q"S#;"BJ5;=L9%\:0<D:S9]@R!MY9/VJX]]<SY';'H[!GK4SY,>ASX
MT%:09VP=_)[ C$^/IZB:H[KR\:NPIM&9BU!FM)W?/YH33A/,4%&X7O:E2L%$
M,NT8P!1/=CK0#B$9D(\!@8QH:P1T7C/+/J]7_3?&0Y[RH47PHUB.OE9)"JV4
M7=/FSYNH)T4/[*/]EX,@0,C<B<5,+K2#2G>H[ &D+ )3;+E0?B=%O.>$@I_V
M?:Q]&>/HYR[P@1>OMQ0SQ)!>>=KK5/T0G86;4)&;>^*J2E1SBBYY^<@2VC9[
M&7Q[PVPLHDX=X6L!*SEGW56)GI4\,=%ZN:.QY@S"@Y,ILY(B;_P5GCL&!'^@
M:A%"WXRQ(=4'=F[5J2U=@SC7E!6/[#P6BRUHID_9T%. 9K0+)VVTD0^RG6$$
MC6/ ^;4*=@G=;X@^6%G]!3]3,V(.@+*9(K=W/4@U8&&L-?^$'2?367<(#(3R
M+G,'=!F\.95/FL_LH;O ="?W:%()UZJM3EDM))7WPBX Y9DQ?I>J^7<@J]S'
M %[TW';&N%:3('=,=G*+U:DA!1;=?_KB*BK]E[]<@ZLO7??>;O3EHGC^%1_F
M):;.V;\!*Z\EF4'?[NLYC:KP3CB8:XQ\*WOYHE;[10;"IO@S*YRT<@R(UR+N
MT()@QX '9HN;QX!7@2I-,-8]74DA/'>DMZ/+GK.M?<2]]\7/$_A?:*&F^TUX
M*<;T-LAY.@C5VR!%S(Z<A_+H^>8X2LI?FD5D^WUY>3&3-=JM)3VLSG=^;(MA
M 33NMY>*CID]7<X<R/RL-$R/H[5!L-8\7_>;0\N9UF YSM?0'CX9H=/!76&0
M2^TPXN6,D87&:EN9?6E1XT\Y/'V)(EV;\^M#"8O[-<'?!TW<*[ZHCH661.E7
M^$5XB=6*@$V5LH\!:>VR!I:?/AGMU>^I2;1#"$_[(DA_%(I"" '0P47>Y@UN
M.?V6J=!+QN@6#%FLLC50I?76,8 3*6>=Z^AY>RK%PNKA:,N(H@PK9/S%>3JA
M"(Z';(D0I$EA(R\(\#<*JT7ENHG==V_D.-BDV-!^C[2/F],2;OT^O7"J!LZ#
MY"2 (NWHO410^+<AJ6N"L(E;5Y^_#!_R8&-<P"3^<&^TZW7>C23OI[@5N4 E
M%V9 ;79&PH/+N>=W-TB%2D_C,9^4]T8LCBZR/DU<^2WZ]F?Q</$3^N+7_2U$
M1?RN#_@'V8#8@L>TUX,H,/Q*U-6ZFY^G3(O'W>%;PO;+5HB^:;7(HA*<0AV<
M J:^(/,/G!ALV!<%4CSSY4JB5-!V-M Q 4E0?!QVZ-?X$JM'9J(@S$5Z<&$-
MJI.6.AP_-(BL&7(26I-R#Y6LUSN#F0@I]+#F%X0JZBT9)<?<H11]V;?ZLM!G
M0V;RE,RF3Z*/7#F,G;WZ*F\6H1\1=D*]I^^PV&N,9M>6U43HP#WA*$N1^[*\
MS_G9 ITZJ%>/M*C4F6/ G+F)^HVVIT1@1)GT^=5*02'B'2S<VMI1D)):FWM?
MZ\I>I^A4D)K.J=+M.B$\A<]1&NXM\<$Z3':W2Y)HI,$H$BD*8.AUGH--,I,2
MR\BY\V)(N;F>1_.0\VL>["5];K-K@U*>*O9?67U")I=5/TGH=(Z[WA@VFNG
M(A%_I0K-S0]G!,CGLR(S$L%7A[]<8ZJ[G0XMU<$<L" =B2H+J*QY::[ G+8)
M>N8\Y-+L3W;FFV\M+!^U4K_G@>=60N=L/A=M-!T#BH\!;; 8T,5-L)@N\>DC
M@GU8>9;/X+V2I WCADB+G)0?RPJQ=YK$9_X1<?-09+!*I=Q%_:2?(:N[25*Y
MLRPVP%?K#NU'I=G46C]2FMQ;=8;?0>8>_^Y!VD<TW"2C\6I,X=UY=:[.DF)S
M-V%I.EO[475%\HGT5L[U+CN>#9$E.[*K^'P-T52/2^O<?I)X8;4%>JU'^##O
M3KEAAH@"KJX@@X_@.8=NXWT(ODZ,V45HRX:92PJZ2V7UNXTAVBJ%Z,_%?S((
M]6S![E-%R2QHM#,)R$CV4)&XG%#?MEG-+!R^HU+=I7=MN\.38_@ ^YP VESX
M-FY6>!"SI,BM][,\E,AOU7H2?6C@>N=*3*._L$R!@9Y/7N:%?*]&AE4)(A?^
M(!(E,QH&:;UH,N)F8AC&"-S65*O>3ZY+^C0B8ER?(?')K(02+?D8$[I=\KMF
M9,O1)._P&V7RX=>,W>;;.8%^IJ_GT$'IK(2$8B>SX(J<0 XFG:*S0C'A]XOW
M^AXD3:D#HDT\GQ\#""%KH#]_ HX!KUVT_M6\]D"LA';U9C\O-UY-07E'J??F
M#;L!ORR7;DQN(ZH*K$3YC$:PHF(G.7 T0^A%5,<QX U(^QB0D3I+97:"X)D&
M(2O+!\> 4Q/U0Y]^?SU9Z7_Y"$-6W\,<'M:?(,V*SV?)?8V"5XC3F-_[&VR]
MGR-<;>:U&\*'?B\&F'RPHG?YKW>W0(D:F1T9[WHXKG4TR%EE'@/.@=\? R"*
M./+E870S\!NZKV>'?J8<9=]NQ89 =R#*W_;\<!PU\VPV?)-"__/68G2M.]7\
MQON-.;FI/LEPD0OI._9YAS#X^T4Y5'>Z&N9#N9HXU%HUB%X\Y+4S7MD!S%-G
MS1?YYE-XD_*P?\K53G_QE++2FE73O^L7":0^V@EU*G.Z:5SBN$NQ%$CO);KV
MV;],JW#8.P:,\:\DYG=LGWB-PUJ*2Q(FIR5KK?_6$_-VH2B%5<Z+%]+__=Q@
M5YWD':W7-!-O?F\7$XXKT7&(LV0W%UK*$GND5^G3$R4!HK,%"M%1<#1!\OO_
ML #]FFU<F'\W7L K@W^_[D_._O\M_[_6TF.6O^$RD'LMI]5?H,%;19MNJ][3
M:D,._.VSO[86JS*GV":'[UHB^.#<W_)%0@:RWA'AU]2 7XNI&+4>_[%_=?H$
MJ@?Y?@.(J5V0/U:KW.<8H!\9N\#!<4!_L[\'L8(DU5G/;2Z$>)(1F.;B<B?8
MSK.Q%L.,B51=;SNG]*BO95\7Z5W7._H[\.E/8U";#4SC>["E@U>; =ZHVR>
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
M>#HP<<GE\,X0?'E\=Z4M@WR]8S-F 7?G3R.F"'%GK<3 J^N/ITO5@8P%_%6
MQ'<L!NT,)PMCVM'CJ8T'LYQ[0.[GB-J6">>SN  59<D=R2]J+Q$ZWC)8OJAJ
MB4_ORV1 .4<';U&7$&@/"W*-WR)H]U?OUI+PD1T"%,G52L8L<(?"K\=#AU0E
M_3Q=9!,^>O/]J7@H=#'KK/II6P]MDL+)4K?.+8$%7]A<[%,)16@4.9F0_CCG
MU7&N,+E\2DO:DFOO!6.H:FU*?G5W&'\;.>[V"LY#,Q=KWB0>&->N#OSIH[(K
MTB\P'P/.QV;84\21]F-R^:8M2V05XYKXU)^<Z([4$VM/BL@\L">_<UG/])U-
M)&_]+>1MD";XMOHU"-.[KT@NK&+OSDRL)8W9;-4\Q%>^BEB4_UX8'(U36M7J
MJO];UQOL@QH^@FVIS'76,1!59QTS+M4I7"BJSK%X1*C?%+H@-7BGB5?X/"<P
M,4*)8=ADFLAJAQ^+J$8?33<BCIY_4AU,]'\21TH0D2K-(@[IU2K<S-<U0G2:
MKR" <O-%5]K0>9],[WMM#-5\,=;9-8Y&==L3.K,*S'S=![)NUM+,-6R. ?\=
M(H+^!5?",D#8U/\$- PS%/_[QO?^,[CQMZ5?7RN6G2R!WSL[;&DY[72K.JI'
MVGQISQ[2K%:3,5K-HKB BG*KP87!P_,GG;K1Q%'0*$YZ'LA+5< CUY9,DZQY
MC#&M"?8*W-22!"$17K\[*1O.F;^;%WD;Y(!;N8:NTBZ&N*R)&K71J-TTQ7E<
ML\04<VV/4_?!G_$/0,I<N2U5@YR#3]763)MC[JK]F.9Q,-AW5;MI,\]--R"=
M"?>J%,*'O-WE8?8QKGO-*-HG5%G,*'XU4277\L!1 WXC*<L OSE?=,V0) G+
M-]9=*5Z%L*,D'2! EYC:]][?:Y;YA%VU,I7IEX[29S+;EJK(B<1XL^2?YF_'
M0#)ABN,7F7][W,<N=![DXUC!E\AOYS5F2;WY\C\<-P^3=JVL/*=N^&>0,(RS
M60$WWA-PS1-<*;\=G3TOVL2Q+\9T#"_D8EL('T4C0-K1AAWV'.F,POI[:QH3
MWB8Z3H72Q%^J;YW<?!,P7]*%;N$= NZ>-VKUCI\ PPB7ZV=^[FZ!2+;$F&70
M\Y&"@N%](TD)3", 8K;VZ@2 ' .8M9S6 N?YUEY*A,8I/#0"UVH+T[TGT?_&
M.O(6CP%:L/,E$:9SEHYF4R/VRI!JI2:( B=%4 $EWKN!F_<HZA2APXFJ#]IF
MSU%]"3,;%'L]/RE)O,O ^N7389CIH"5P'<9_EB"Z)8*V*]4G]A171[A)?WXB
M##M(S@S4!([60_X;F(.<0+T/1/M-(E[ ASM#.]V<KS1.A,E?^1C@B/XN1,2&
M=%,Y%T# XM*>.L6.1V*U7<S&)F_JXI-KI;K2!W6=*M7$5=6#>L3RE,M52"G3
M@1/8I'0-(#=J\(@KR!G.M+85**54]8EG'A0^ Z?Z;ECY!6"I3\C5R%>)13N:
MF[2D\3LMH.Q[S9A\4'L]1S.N%!*^><F>:)PCN3F-#SEP!](^XJ!9/G?0K'7*
M.?<D7UV>/Y?\S=V"RX!\H1E\!=$Q_Y94Y_R!!F66/@S[XEP^8>P*CO4H&.V]
MF9.ZJ'SG8Z"THP)IZ<B;D@!5(81O=DILU1(K"G]X4P3>=Q[)O7^]!Z Y#U&5
M\4 6Q*/)S0;!@2\5IZW3N*6. 3LR2SB.)__6?ZO<[$.1+(U/H&+-&D8;QE8T
MD]E9__Q]@R7,^S]5U!69[HR=Y:UQAX:=/[7_ 0M_WT9>^VPZV>GK^WVJC5/;
MRM2V7OS[9]LXG4: +[9_T&5<T-Q1HM0CBMQ%2OU[5 K5!3HMG-J2P;(C71=8
MU-IFI2;T3,R:V7?6.PRX%VGA(^*\NA-B)42&$R?Q83%$^\:[;4OMR87CMP@<
M/KZMTX*B ,(J_GWXB^QZ:D=H5?C-+D<;8I7CTRR#":E'8SX-?4;>>346G2I6
MW8?4RJ@J7Z7NO"7RK<?B1M^P(MP!$I/>F:4#XPW&(UM>OGO_"<F9 ]U[9<)
M-)^+35O@#(2WY H499\U=8_8#DP=P$U0:5K0?[MS,W;9+5:]?5QUMWLF*O>1
MN5<"3.>^>;MNIE7L6MD1X?FF,<S2^(N$P@'D1DUFB^HE(G-;QKG]:OF8^Z-/
M74OF_^AE!.=0NFA#L;1S5): L= ZDR_D+AT]&_4Z]M8IV?0K=^@;K!W46(DT
M8G*3]$5R26?XA-3U.J-6;KUK@0VM@OE;5HI^<[A(,'#L1O^K384S:6-\97-+
M+Q\3U*TR#WW;T%)X(OT:3:"XB\$JX<^M]$RGMS&T+&6U9W>0A?MO#T2(ZNT6
M ^!VK]T&L9PM&Y%'-61LJ265YFL.CCZ"&(SLI5V7AA@/;VT]I1QPB .[4Y;+
M(;&PBUZ=JLG$Z]WC*YO]=4&HJS;[6.$AU%FDP=@WBD9O/,F-9H>K M"%1'"/
MUKSZQE\2%R0+R#4W9_E%RG/=@"-1QP#Q(R Y"J5"O%/-=)%R3BTKPL5QVK.&
M&28%_]A#BVE!0 \*8'+T'2HKO'^OD&D>%*RJ5^X%XS#[M35X.=XVG'[J-WRP
MPKFI?&>\M..*ZYJ\<ZJE!I.&UNXB),3]&(#Y+^R]=UB3;[<F&BR H!2EMZB@
M=%#I-8(" F*D"%*C(M)!4"!@2!1$E"I=08A2I4:I2@L= 1'I4D,2>DT00B!M
MXIX]YYSYYLSWFWVNL^?;>Z[OC_7'^UYYU_7D6>M9ZUY/N^WT'DEW;!V^$+%'
ML>KAP]K>I-L?N"^ HLR(O^.AEML!15RC!?Q-#AH/]V5=N!D M@L,@&T@U>\K
M7.Y2> $:BZ*;A:L927F<C7>U>E@"Z%E,1Y> X_YG2WV:Z 0&@*?Y+%6=('6
M:1M@=@@YMJR^1[PP&DL#FU?=E4[OE+ /$FWP&%+$WHH1%O,_8MPB!G_,K*BK
MD)7 C9E_09#9,'/*.?HXJ)*U*H^;!V923U1,C%-%"WH('H176ZW4!B_*/X^^
MJ2$W568CFR!LH')BZE *I-CF)ML AF##39;>:D>39='K=W'H"17<4?)P_FB>
M.9K+&\=]<2?<]I##Y+*2\0*;S"J[(E^EC)RCY%*\- Y,Y5^B"X4I_XH _T)8
M)N)MX">9.- 8'%<GH3J$P![G?:G_3=?PO&/*1]VHBZ )> >P_YNFB_?.V1C
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
M?V]3QM9ZETXH;0F&\[USGAS>SU/J($*>:\TJR[7=D<,_# )6%_3T;V+,'\F
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
M]>0XSB(J*M7%;71A,_=S)S-4AKZ9PIHTA9>Z_.W,"0#JG$CEFR(5C_A\&%%
MSZ5B^,Z]@*9?*XC9N53_Z=MI&O*UP0\O"#D4O.'& %Q#DHL8@&=,:)RTMHK\
M[]>:&OXC#,M_:OU':^6'(ND<V11SJ,[E>B+H%6(N'7W21T$A][<22CF(/T$F
M@_*]"\.AMSKZUV[G/?-75*?_A(S_5/O_0>U1B@;U<1WM UT$U2&C*QV2JXG.
M^8&W:$ISN>;VJO;+N<OB@2".+>\V9HK/80"VK^[Z4R1VD319M<W4OU[#C8*%
M,DNA 'H?L%JZ\S%Y'Z?,34YLA^O1>^E]]<2Z=I285X[(J'*9)M.!OWX95CKM
M_?$%ZV@&O#_/T\FN?O"RF/3Z$N4B]3 M&2[23H@E/2+?+23;78Y9-'^KJ, _
M:5[ZEOV2T[2%I&J=2C/K2D%(TJ=+W8<:ZN?I2K 0LB*!\VHU$=B%B9D%$K(3
M/GR\<K=H&AII&S/B/-.+E:R+_7['+>WM4_:OKCEI8S=9C$(Q&[P4)W@?NA(4
M7=YXBP*&_X1S$T[$K\>EGX*B.GCL1;MO<BK(2[*^?7KZ];.7;.?+88=I10AW
MT&1>FQ5TB^1-7L&")#P(_?/3JQ*GQM^C$V:=W/M>M_4O-&M-_M+<N"Q>OAN5
M4.QY'ED\813@+[>1?@S/E:#'D<->U,EW\^HG Y'<LU%7#?X<?@SF6YV'*1(Q
M6' \LU*MFM.(:KQ%&N"'B@Q8U!-=LL3CL(_)6T-VU2=43D=E#QT#]IFXWYK\
M7B+."0@:L9,F@O'H5L@SO#$#$-5.=&RG"_GS>JL?@*-QXVH>Y4AK=(Y1C+SW
MX^ 3JF6;[\\>"AVXX5WV_E#,'%V?/@*IBEY'8=_HWJ5<HSXBH)[MK/7$J6OH
M2X]AJRA.[P^Y1MV_,ZS/KL.CXOK.FGX(/HRL0FV L;*Z011UZD,"*J'ZI?2V
M$HJJ6&$0EOX[:+M@^\T;I-@Z3%VK$Q"B^I=SBD[(SH$$!N!H,XM'>HXD>>I/
MXT]]'E%C]U&E)/)X#3K$-GQUD@HFAL8=KZRZP"*H\&CHJ7:O#$J'E@OR3IP(
M(9D0=NMBT)Y;D]RM=);/34G);?[\Y A.2>@JB]N?IE\X<I+G(F#^)UNNC=V8
M@'9!?B:\R(V_L[&T]K9TG+;FCAST[!?44T3U%M/O;*!F8'%Z/T)<5QK?+R'<
MF)5]I2UL1Y XU1>W'RADWUC7K>/()EY:_Y[U_S?SA:(ZN,ER&M13""RX\Y@^
M)\R45@_G6X;+1BRM[V6>+\*7RA169VEN%\V</PUC (Y$.4X^U</%1(-'%-2\
MV=4LE$BB68YO;!V]LT(/=ROXL-C9BEUZ;7#DH4$%!._?O?4,4P5Y5D!^2S&
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
MX82>ZUGE97@K< ,F.X-+Z'9]ZA(AV4EYH.41$>00G"U&B8R1OOHF*\NXX;R
M_:VMYL%C3)[E0G.%77!@L/!(3$R4T:"<M$9NK-J'FY65XEH/8>*F@.-R)'#I
M%X</Z8CT;VC@W 8L145O4K %H"1]!&*6A\IIA_VS-V!N07FL!9V \\H*K"?Y
MNI=OCER>G;8->07CSIY]WS L>JQURK0*K+Z\7+T0UUXQM^^(S-Z@:)V;,)&<
M#UO_> C$N*7?".9\LK4S-Q2LZST753NC.YB?3'(/OY-:-*H]C7D\FQV[+]^U
M.D>H6U*7'GF60G].,&#+D>OV\!\($-_J/,&JQ96TU96DZ_)]HDM-Z6>NMMU_
M]\,ZT^#0X1O4QRD>8PN2 "G9!@$>.08H)JP^?78M4]8UGNKRXO8%?=;C3/\T
M4\X9=^$/)T29:-Z.0UP]G@9H#V53>_YM@3FHZ?;>,:7#G]VKBI7Y9MF<BFU4
M;'>YX6^?.^_!BG3^6!KT^4J%^L16QN%$>^$U%0H"DFJ?R7]LB* .EI^WN $K
M1\*GEC?#""ABSU:!X=_9?R<*O1C9&,SBLL/%?H?Y]RSH-P$>O7%QGV0,$_'6
MF3$_O:HBMN5MLECP\%&(T-EI)3Q [,%T^"'I=RG V0W8-$VPU14PDGNW2DQO
M>RB0!5DE7Q=?-TY57\R?58P<:/$T.&I^RO)E+#Q0P7DH? @4YIH*YFB '90A
M1?MK4Y#;B &H';S+_ +"P6^[>>3$)O&GH2J;7[;DQUV+,_H6*=36<CO[[,&+
M=[5D1!U2<&N\'9KLO$5#GEP!YST_FW+! AFX(L.S)J/9*,ZCK/N+:@[#C:UA
MA@9%3>9Y9F=/O<W=[Y [%6[^9NQ^UBEVWW8L3! ?\B]XJ2[P72!%XN<2MO.0
M_&)B(&K&F.H5705Q4X\4@FE94OW3;P3MKJY?1:%5SF-:+@]*77"+-[B:MS7V
M7'U\10X^Y\6[N0%+>$[YN/?O$733Q(0-V.&F(OC4.I@$_UL.9HJ+XH6RR__.
M&V[6!#%A;.2@NO:4H7Z'>>GWMH?C&((L\-'XE<*C"QBLZK/##LWG?NR^$S_
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
M/S\QM./$T33/CS$7-U4^U<J^\A=5Z4NI1'](-VF0>3MN 7 J[;E?2<57M)0
MV<<IW G(7I*9.X+%?G:6G_.\^^!CO.'<?)]/O69)!DL)V>'55/TDQ-+];6LU
MNC\T.# <(@YNC%-*=UV,7UC#8'\7VO<@7XST5(W,K@FV&E80>_P%.T/JO4'5
M7H%J3@^MWH!\0SS+A7\P']V,>W3W9H!W4WY(=9WPH7ILH%")SOO_(/L](9HM
M>(782K AC*$!E&$*$D%0 (M7>FTL^=4V.UV9,6P'MMI:,EXG-A)[(5"[W=P&
MKZ[6E.8DJM1R3WV+JTX?'#33$8BM+2*F.2MT0CK7Y$EJA7.YR5D_9..DP:>I
MG>VZ_8LC6J5N7$&D:D7*QYLWS\,[\*H,A!0>"23=IQN*?CUY[JO*[H+-27G^
M8KW>LT=4!N5"EY]6BCZOA5PQ_I9@,I^\7 X<+ /]&4_8R'ZDLL\C889BO#X0
M-&4Z?;>CR&ZG?L-6%2;S["[->,6@"S_CA0!1GHH^6W5Q#EU/',!.&S-74LLG
M&XCQD JB'09J'NM5:]B6'C,(VP6IY=R]6AKN: ;WY+(MXC&B.885IK.<!Q D
M'7O\Y-3W@IF+:F>14KQ]@*5SXV]6])6%XY?M^/,-QVHC(@YTIXD%7(R\B:.
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
M]KL_<C&MK3>?W!4N;IL-\X_F>OF^T+EO^,-43NB/![T6M,1RKO'+;;3 TYQ
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
M-F!V[RD )+__[-R N5N@!3=#H&A\2ORI\^\TQO'_9 O\?X4I5:=[B,_7EA\
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
M[LS.[J=]YGUW9C^<F223^\QUSM5^UWU?)3@>M^)Y9"P(94-^X#_A.($K=MW
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
M^0G>5[X)/]:NC4'^=D<>X?S\3BW+&2O3[%=Q,7>S4%$.2%CHM,ZMVE;"8['
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
MX,8?+AG\[*>F?N5K1#E3+0USND*/F];:<$A34\A9FBZEOZ4KN :A5Y/UK+%
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
M*4^:NE:G/?8IGQV.C-"IOM/Z_&.&:'.^V)%?GX KR4O.$2=%RAX=R>_%IL#
MG5#@X"7@,0TW4."3'";N!C:QF]:/GFQI?G_QT856:0FA(U:7S07YI<XHASE<
MQ_7C,O'\:)Z5NTCL$FX )@)HV[W'#C5-HMPIRD&&PMX$]UL?[JY4SYN?%#S)
MSRB6>)-*=X< AV$LF8HK;;;B1HQ_@/8]TPJI7L%^._6%T6+>I0,=;_Y'U<((
MS&]T_B##F9V.DD?OXTSN@""H8Z0@G2KE^P9LA_T%&[BKS3%WW+E:?$LS@O&V
M@JS0CP"Q(@$G,BX#+Q*^286+(?'F#=/M)I7LO&MF,[?#14;X.Z]_S+%J-7(F
MK%6?B./AORQH\5]@(^D-RQ9X\!)@6@&NU<"H72/]8+(. AIV6B*ZT?TY,_J<
MT/N<0Q^&J^]05/O"?LO'&/V_VZNACN6'&R%C1.'(N,4%[VAKL33E%WN67_;?
M^[%WP] EIBJ]S^1*N>*E2S,-MUX\KYM::;)\4OFY\=I$(K6LP[72 MG,,CC0
ML0,Z6X-E[X"B8.1*@\U_<H$[H$WF# 5"/\Z1PGSQXL)K.SCG_#_('UO3'1 V
M8 ?$"_\1;2='(=(F"[;9(DV8;?;*#BBQ; :_XE2_ \)O6K$NXA_"MQ2Y['+9
M 66#_Y=:N&[?C6G0JZ=@Y:X!41B)^?/YH0_]I)VU+,$:!G/Y[/VFVB/'MFJ1
MJ.L+%^K2]W?D6MRW>5T>J:SKN9':KEOH4'[D<5R='?Y^8*?/&SLQ%RF#CKX+
M]-;<L/"A&\A]\9,NOW=[SQ\'#C//<=7?&$:JQ2IA2*4PVD5P4E1$PDN4-%S(
M'R[5#BTY^R'@]*LVOY 9J.Z;FW9/<ER/OCA@6E%D_$2O5Q,S?AKEP-3U=3N8
MRKT#K&DS$65;YK:F%%Q*PB0P6A,2-D1UC([:5 2D:#IJ\+Y-+ZMT%-KW*(#Q
M>]F>RZZXL%TTA=ZSBQJ\"P49)8!,Y:T9!_OZ]0*5W]H>OFXY1YYM^/ !7VJ/
MS/):SVG"<_N1E^II$UU&,%J(7OS2<);0ZF;5(%-E[835:X,216<OND&9Z*%
MGT^2(SKF_S:R\T^>Q(WL@#)W0!)FNYM>E42:PPK,'QSK9EB#XWR [0VWJ*?#
M$F]DEW,&0UPY'_).*LB3/NB699KG00WE Y-R\!8<>=8MP(=ICNF^VRY.;R;-
MI >RS,D(&4[O]K_$I.IK-JW:3S7IGD5.B?<=C<6J^;1YJWGX0>#V*KH"1^(U
MO9FJP;0EK.'Y,=X![P<2F'HK2HB^S327:9GCPQ+E]\-T&UYK:&_?:6YD!C%]
M8J7$"S_RL)\ 8_3(+B((+0F4+N7W+5R[AHSL_B>P6%^S\ *]-DV0SSO+LS9_
MF11YDJ\&[;$[<Q)!! XFX#=*ET9E.7,[()EE! 0]KK9OBF5##SB+[7*C?G1W
MA[]L:AQKG]VX9FI(\.\.!MUZV=XCO)##L^W"DIY@3(_A22_AM5:]"$)KCR^F
MP=2B6!-]H#$>Y+;&^-;]0)Y(=C -D154S,AN/5J-!W3@ [AT2'TS2YJY%#F0
M%9.O(,_1_8(2#M=[C+E3-G+C6G6(YX%3^E*FC_>LO-IGSXO7QI F-PGQN\/1
M,-1L;D@AK O->C5M>BRTQ@/()QO61/L95/F+!I^_<C0QS$;JITY"^>>>M ;W
MB]$S/W]T%*\4'?ZRB3I&"=H_?WDB7-E&-UQ4=%;^6O"-[ N[]01)EHY7*_EW
MZV_^[K8MF R U<+[88#69D(8-J;)3&FRW4U_ Q70V)%XN#$Z(\(JHN7YY=\\
M>5ZYS?IZS$?]C5=9Z553*$FN1#JRU-D9&%(3C#8#J0?WM*!.D"').R >EGD%
M@+/YLK4#.F@[T?C:($/D6I'!&8UFH\OM9>?;KCXWO@[5A4N@%R"T0"CU&/,
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
MNF#\\K?N'@6/-&NJ2[F_00,Q@D)YG[^]/?;99J7N_,NQ7WZ<_@\N<&AE7[/
MGFXX0%5A2 <O(X_L%VUJI"[R"P;0=J[W=]^?GK)"Q1_5.D9H0JV>Q?P\:)QY
M^_R/2Y#7 <$%":9&RP3P&/0+6IG\5DV-.+=HS(YST=&S'Q?Z:13&67?.U1EK
M$8>X!SR2VI:B\_O'.CFWL9U'"0&BE@/0DJK".[SG<KUJ&%)B$!<!+.QBE8X*
MTBZA;SS,$MBX^I5CWN<DT)_$"%G6=.I<U!BE_.73=A[_WC!Q2XLL9!G.GNRP
M A%X=36Y^,[#[2?^ER%9:AG+@>T48QVN2=13]U1X^T/\8>)KVM?C^I,3^!VE
M[X]C"^XF2&5>GG08/0T/732V#-3(.<%=6WL]BM>UCP2$&9MB <NMV7_>YQ%
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
MXU=(Z/*UO!PU7R7%LT:\)?$>^N!^8I2>()((I')Q<Y[_*^9R%E79MU.X!TO
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
M(1_<+SLNQ5" \!N$UN-UNRAK%MZPB*L*1/ RK('8!D^$J%N H2LUNO9U>_R
M&Z7X@5+VC0 +:\GZA"*#N?C"_<U^%FL(V]#?KRE.0^^_DV -D XR+K#40?6J
M_HJ-]H,3&M)!8P'903Q1OA%*%?&*?NC7OSWS=/H*2HRSY+TPGP9X'?-T>MXY
MX(_Y#8^/*WS=QAI'P-!FT?N9Q*'V'J#/,!^7@7. X4I3'CE,,MA<]C'*=XF6
M=^H#-6*Q#L@6>\;,%?N)TQV1-WA\+!F&?&!7V'Z;F8E8BL,*FDI!'KZ)VE^-
M'2K;9HM_+R*MZ3>JW+GIPW]'&RB!LE/1QGTVKG+'H^-&E?SF11>OMW8<(KCJ
MD=A1VE;36FB[$I2%;>/$%G;EMT/3^(K-VAX,8VD_!.9Z/#D [A><? '-6BI#
M'/JVR,1506(7!S@CXN&"INHKI$>]#=Y"P=I'HLML!T7OTJ+<KVM5UUEQIAJ>
M'K45ZNOL7"5 Z.%'(I)Z%^5!=S)A#D\;M@!L.\SEB\;@,)0%V:#X4,)P7G%'
MW=&M"!BEB8<^>S,[X\---5Z#M_FW>Y@J;U!V7<2FVF"RC%.W1_00,XOQ .GE
M7CP4QEK);D8<5#\;@_AO#P8>"]OLI,M@.R\CKA*(NK3#X.^52]J6U+ T<\T1
M,C)QQ?Y>DDL];A/Q8>+6RR>5\\<YRX3EL8/R&ZMLB7!;B#P<)"SA6Q"/-/Z&
M@<K6#!'/%:N$,')6HF3"<-H2-DW<8\P\C1QM/F:5<,TX35"XA5WVXF:'UUDG
MEH>:#N8+!#*X;A:W)UT ?9/Y!A' #RH7,$2BW !]B$N3?_@"&82>UB@W/:1
MH-"ZB^Y3WZ)OG#X;7*M/\S04YS0N/J*$X$RPG3Q87QP'9@3R#S<LT;:/\)X_
M.2P,FCP)4Y7@LO7"=,FTA77Q=H7 $!4#FN'%"Z32IZRO6<,N6(W+M?6U)ED_
MO[<N8_E0Q9>CX3V+,K43(4HA8T22A^)HZ[T!5W9AEUNW;MUK/=5 ,1A6CT(I
M_)]%,>U/_*_NKL@!38P!ZS.6;XO@BP--*E?X$_^"DGPJ*_U=MA_O=NE\.J&U
MFF/+4YGQ,<7]G;YHQ^;+HD:Z$E(3FK?S>[!K_$*LL0(2/Z189J<=QANPF3BV
MO[0IEG10X7,=CZ#'GUJU[]E.GW8/"3OVQ7)"+"79;ZGE_>$"AIB4,]4@ ;*J
M9G"K"CQN^VCJ%DLJR&E=.R"AU/-)<H.ER$';,)[8S,OJPU"\!+62-J]1K9>+
M<CDHX=0C@S0TB#M<($C%=I,RE-I.AOO?%^&ZU!IT5K$Y%J<D<;1IC*W"X$KT
M2<BC9!/H5FB3$ L/,*H"C')N"@\D$]C!N@ZE[]DH47?*JM/3M<MG;,C:O(-)
M&;/G]:? XDX?/NK'UVZH\2Z/FS7L=NVG(FPY?PE*37")Q$3_8*,.DO&Q[9"M
M^2&6"%AV0F#-3+QMB.\RJ8,G*FHDA2!YCZZ2=6&R)D1K<6/<MO'#<;%=R^@W
M'CH=BMO2>>G^OBQ^=F8QBR.( -BY(6Z&\:,=1O61R4+H2V/ES<#]O#?]=]_,
MGA%M_%*CWR.8 RC/RG<^UMK2#_]O>O/(L]+U0F7<D=SBP*\>'IY]0HM34Z*9
MIY[<<W:&J=)$S6!H*,RQYX%_Z;JL"1QP"?=H#\:+EJ'"NWU4/XQC> *,#3/:
M5&1?B> ?1BD_$RT=:EQ]:W[#XJ$M?/CE"0G',^RL0,P04;Q?&]0/HXU369",
M7LY*;?.ERZ(=)Q1:QLWEP,C+.?\8:GJWR LU#H<=QHQX==GP(^<RW?!Z(7P8
MP-%8,=DWFTV=5^?])X6Q&'/[KXBE9M+^51-1$#/7(RO.;$/SO7D^Z>1?XC8_
MI%5Y>VA,;WQ*]_ZV;-Q)P3NHON#Q_]V+D&'<!U?(T78K81EM:A4@O&-:S-9_
M*8SM)_'AF4H?96 [:#?]%F]^EK*H7+V2CRJ^;67HJ47(CR)9T!L8Z?(H_HD1
M 2-?!1;4'51L'?^3?"TO=H/G==S=OU5$&"2^G5A']D.Z'PBGM5#QFTCJ--F\
M%1CI->><+!FOCH##P>C->Q\OG-N@31\?9C]W+<=F2C3[_ V-H\([,OY!B_Q
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
MGV._N:-K.)YQ(=WGV,CTX<-AWZJ$:OL;]97_H@+GMB=Z-V+FA5@E[7N"\'N
M %V^*51 NQYU+0^=?"] 9SK@_I#4E+-&LO62K\0EKT<=9>^N7(6MJQ?"AS(F
MY=B"NS!( 3@^EN<P:#=6#O)&M2SS(-A+]6D(>K[!M0OK^D@[7%JXZBUKT!QQ
MZ,E:MO2=6<OWJ?&7?0)EK15=HXM^(B>%V8)?0QBZS$M@#L,;BZ']R4ECFV"O
M?_-IIO4G&[*.5=XR9-B*^S:,W/N97V"[[I,F;FPJH[J9B9=S<EDY"\G =T&:
M*4%D"_'3Y-C"EB2(<-Q/6="-,WH,PKN'R"S=#F/WJM<_-LY'1?U4T9_7_F?*
M  @XMS(H?N40EP2O:LLN#-1)Y%19:H264<?^K*C(RF'+@G7DI9C?4;KB4V"B
MV_BQRK,[ORA![X)_^3"T+O;?+#O$1VK*&VJF/USLC\6W0^+ _R$F0A:IKXD!
M]V)*G/#O5F<K>X$^S!,['331PGOQ:15[^2^*LU(^$W_\RWIB>G^+GLIL(".I
M5BA0S7_].:0(+UA/&O!3J#Y98C=2P3WM]K8'=;Z\=#4OH6 U]$1'R3A9\>/%
MQ1O&@(G@]0\H[;IF'$2QD,<)I&PDU1XU4T[G8=6WF^)&\1)F$=3JWDC_=6$*
M<9VX/[#%_%=18$C1.73U[28/&6TO?R?IK>ILMO?Z:VQOYQ Z'46U)X#JNKUX
M4(O0#0G/^PF%&"=[EVE$_4JEYY!,_J1=NAQQE793[]SU-BG[1F?9_$YGL6<.
M-3'5]=FLP] <M"&X6(7B1@8A9[@A3:0:0PB:>GYC>NL\U:8/TD%%\;$VJ^I
M]_PR8@!.KK;]D;OV[&>JK>R/Q10/&V$/4S-%OY[3RHIH) 3B]['A@E0_ CJ#
M/L-Z;N;YN":L+L=&++?#[-!,D<?ZA]\AQ!_+WN6,&Y#YD(+H\2Y,##=[@LB4
M+&4+EC.B;@+\%AI@N4-##2W[657 F_* O._.5$N>4T5/E XJQQQT*OKGMM?
M8J,=$0QB' (ZPW"'CE.7..$AO'94Q\0V4[5??Y2I_N1BO57IMP4R2NWM#MDZ
M$-_1]GTX9??W_N,#L*A2YCYC^BNPE^&)^T@GBB$#JA.D+,3 ^!<8O!NU.KT^
M6&GI\ULOC[.$O+[%=;]9QHO 0RK8X?I?7L--(73T(VF\N!96SVP7)FQF_G(E
M;_R*ASL8ZY;7-<&S.:1EM WO^*Z>\6.Y.7(,$4/D:Y=G#P/"]R!<+MAFUH)*
M_"V'4NJ:^!SAN9C[/=M.1?5'GIW,]RP7K4W;7VOV>FH03?I8#:IM,,47V$(.
M#%%.AM1V3>AYJ@&9#/"9H8S[--,NH25!A]L-7N8'@X9.H1.GJBP&]3(&PR:-
M^P]?^'<K08'(W#_*%@QBA/PGOVH@ZB%1QD(&LTT.CS.L?C"O87'PB_:Q\B'K
MS>AKM"JMVX+O-M<S?5+E)$\^\GR\UMLL1"BZ<H&_CT!U1DRNT@?_4_:^,W)X
M+9",!)UQHN]H9:[X_:OA;.5ONB/#:WFI+D'[R[3CK+U^3,L/'')XGK_'B.=9
M+R:6+3C,B%X%J':[,!BNRUL1'"#!A9A6H%,X61>TQ"D'2KO4S9A%JO;H6YHU
MCGAHVN@,8K[UMYQYG*WR,K]AFP5=4_[K@0P-: V.!-)+?.VS[35=QCDPE(2.
M-41(#OC",RQ4, :]TU65H2%!Z##>4<!_6=K=3SC8,$,H;=3[;,W>S!_RXB-
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
M2FE8GQ*=0-#7F1K#.-!^BJINBIIRM\?*X@[LD*=VBF@S18/E G##M:VJMQ,
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
M656.'A#[&D?S;<.L-/$M^H0?>5>EA'(W\9P(0>Z[LMT,Q3!)DQ12[CN11U%
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
M[??-=,F)YBC;ROUO7K:/=&UZFI8.'S;U+V6IG 2' 7335/CWQ$MDUWD7>F[
M(Y]'S$^5^C/88VEB>^-42ZEAPP/9[F#XW*;#4=NJ](-I4RD+\Z6FV>:=!4V=
M-V@==7X"WIA.@+8"M(>9)=5H@:%9E:8] /?5J<61#8Y%?RV+JFH*S0B1KW&-
MJ[HLGAYXM8PCX@:Q[\(XC1%$H;#.,.<$<HZH&Q(:>%@I"V^<S,0*L:';MAV6
M<PJ&I#6.$D^CI'!L:D5V/34TN=@:YZA6Q#<[336"0>]L]:QTHR>LI]^>[YSU
MK 0[IZWGGS8.U-B[1[U>ETT,9>H*[]#S*61(-BH(6"#[^<0PP1A[G+MNFNB&
M8ARG-%.P!3<-MCB!3X X"7T4PS!* HA\UX=QC&/HQ(X?TYBPU->*&;:#CWZT
M[U3XJ!F55J36O.$ZC!U9@(ZJU6"1<<'LA8.<H#-WP,>XN$=".LZ\8*C0\CIC
MV6I=9\^#8-*;[W2U9IPUVE.8>^NZ:_1Y@TN9ZUQ]X65C[;41!$N>1A'A'H$T
M<J3R<S$D2<!A$%!$6>AA+U:J?6^5JZF=6%F^"11/S2&"C/I^ZHL 8,$][-D'
MM"W*58T6Y9IP;A05R]R(:RJA 7O#R/R>P<YPVK+85*;NF)3]J%M7]FQ51GV]
M91,W6SK."D_SZD.;,![H3JN#&WBOUVNQ^A]YZ74783$.J3 04QBA*(0(1S[$
MCA_!A ;<IUZ,TH@H^ZQ[@T^L]7IJP#.)==D'0L$MO4 \/15C5S(-S_,""<W\
MS:VDEKS+$Q*,^I3[[\SG29[@=L=_//6,F9'U:U&P;]EJM?0H2AP:(,@Q(K*O
M701CER%(@M1)4X0)\5T=.ZD?>.KCJ8Z,GOFRD3KP/,*)ZT*7IL(Z='$*,<(8
M,M\+4>*Y*?&3Y5/3./YKC<MZ.MGWB6@CL !O^'V6-U6=WK3)X8:@>#2)DR1@
M,/)B"E'LA#!),($A\MPH%LZRBVD'RDVN>+EL#DE/P@"0F[8&WF5HJ!FI)O)I
MGDB>^Z9K&XC[/%NR\3;#SFJF[0NS;VD=?&[HE YJS+\MUJ1.UZO#2O1+'D7"
M:O(2Z+LR (LZ$<0)8Y!Z-/!3!Z7,9?IZ18WX+%IGJVN(R>I2A#'V?>HV3<@=
M%HA-"86M>DXPQS2D5&Q5H:XFF@I$;3W5::<I\5-TL*TCHGV,-];4(]UMZF'1
M0=:2VY8'K$9T7A=7"X@#'U;O;>-JXDUUBMNVC,5=<8>__RVK'QZ*E5Q%LJ[)
MT5O@)4D]%)(D$#HCEEV@T@ *XR:&48 \ZKAIR!,EA_921J9V?G'U -956^ C
M7>?B7_P=/'7,:E<A-\-:3=W,@:"> NHXDD'_W\& E<7Q*)-M8('5PN87@6*O
MZKD9&W.71+\(K"/UTB\;3T^G566];([H;WE_,/^E+.Y+_'BUKA_:DEWMR9Z[
M#+T 4>%W0>2C%(H?'(A][,.8Q"R,4R=Q0Z7K"PV:$VNJ+0/R(!QOJ!O<1N@
M.:Z;)H)'3PTU7S(PP*=C01A#&R;L71,8B#RF9,1P P4C?MLJ%QU*L^@1 ]%[
ME6'RJIG%\SY_%CJI*%^.58#@C"$4.PS&J1L+_Y*D,/9C%P8(^RQ@*$J]9/G,
M2U*HVC5CY'2^\D.BRM_\GGBF&[0P"I*:.6)+<+VUOJ$Z?;$+%0$MF0^CI&8U
M$52$WC<#E-XQ=%_*0@;U_PU+V[%^Z;JR]';',N$!\H.$0S_U.$0H\2"A:0)9
MX!-*/!9&/-%+YADGJ/2]OB2%Y]UZE6:K56,OBUW^6\<&*,@JN\<&N3UG %3T
M/"X'Q6QCE\TI9&BZ3-.Y^5[S7,8%=-R GIV^<Y+,WZ$EEP: //KX<LZ'T_<U
ME&"PY5&,$YO7;U 2_, [4'O+3#'</#ZMBA?.&YOB<Q.QTUW3A@@A'$84^K)1
M&HH"L=ESL>/C()!MK6,>AH[.P<5)2A/;^SW=MO<?:"EKWF.?1ROE*$TP\J%#
MN/"3:$@@B66Y,8*]$*.4D<31,XBLX&5D#;5 [22_R 8&UC%34YI6<#!PA$Z?
MNBR4OT3:JO&LL):TXFDZLRK$L^+NZ\+S+Q@6,]AMTBQ^E?DYW?>4^SX.7!I"
MWR4>1&&"(>%A!-W(9S1T4.0&2KT35(A-K P/^I%WQ#4K&8RAI;:J;6&@M[!/
MB3]%(0,% 6U5,A@C-6\I P6A#VH9J+QC$%GX@5<5YY^?>"FVL/S^ V][4ST5
M>6.Q>U[@,N;X,/43%R+/<5N7)Z:IPS$F3AHJ%>95H#7QFFZ)RTVI(P\:^DW/
MXXX#C6B],["-KV[+8.@M[EEQT ABM(>'64SC);CH!3NJ23H:^WAFB/E"(=5D
MV8F,5'S%S$)Y*QNZT*S]OL742Q+J$^C%.(3(I1&,/82@&_K$IPF*6*!5%F$X
M^,3::DA*'LT\E84 K'Y9@"?QG+"MY1D%_\<Z>QJ]X#R/D9H=8BJYGFH:4K%G
M8ASCW9))L3/TK";$,:'V38:CSQB8"._S:EW*R)&N7V[&96)LO3F'O<I9TVU
MAOWP:DD3C_LI0Y EH5AUW&,0>R2 01)BG#AAF,3JQ4;U:$^\*#?,@"TW"QGM
M5(/M18'@"+3]0EJ>-#933: 5C(SIX-.]1_FAD-,P2Z9#T,Q,L8NDGN%BAL6H
M(:,YY'R&C9FL.X:.X1!FAL\QJZK/]7WI3\'?KODG_KV^^\97S_QCD=</U9)'
M:>J0$$-A*B40)9P*=4T]B ,4D<BCOL^UFI";,C*Q[A9?O4#/3#)&5,VDF@,G
M2Y[AAJV%#%LD''S!&5NT72L_YZ=CHK5-M4LQL636&;,QJPEX*5C[YN+%XUW0
M:K!OS+)TA<))2)!"E,I*]6[D0Q(EPH)D7D)0Y/L.U7+9=D:?6,6T.ZY9CYE=
M%-0TB+%L>FI!42RSGG3[[-OL(+<9>_Y^;_MB'>W.=O"08?W(KO3HY_3"-/6[
M-IG'B=TXB1!,75>L0!XY$%,'0QX3YD9.1'&@=:%ME[V)E_"Q*A%BU]L4B;CY
M\A5<XQ65C>R;J\V&*=T"DG8G3$U9O-XTZ&D;VS.@7T%R$J!L59.TR]R\E24G
M ?:@RN0T5,Q4\Y'^FWUOS25-61J%(85Q1!%$<>+!6/ABT U"+_$0]F.$=<J9
MC=#24IKZ!<WNY"LR+V#0'3=K&-#3BV-HJ2DY2QCH::S1ML##9K]3-_E5D-Z2
M&AJC-*M.41!Y7T&HO')1:<=V3#'<MC1?(E8T=6@,>> RB+P PR2@*21NX@0>
M\Y#+(H/2CH>4IC:/NDI^[>J6N8N&Y0N/8*2VPJU(KFF1=$)W*[LA.EW]PM.2
MV:U?>(3.:]0O/"WNB?J%(R\8AO:F*:?U1A>(D6]QW1S9YC1;M;=GC;NV[8]=
M+7V&8\J]!(9B3(A"L: )"PCTO)2+S3NE482UHGX-F)CC-$,SAM4$2K5U/S5
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
MUI&%6W'ZY_OB^1<Q0+MFQ0_;I7IFV%D6J9IH_?)4?-JP4.0@9LQ%E 0Q\F"
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
M)W?V0(K/V\B)P7?DGS*KXH*I^4&R*DPD^*?*JKA@BFQG55S"BF%6Q5XK1]G
M<=O.L<LWEN)4M5BJ6;7T.64N#@.( B0V-NX@2*(DA)[X&^94['3,U2D9K<N
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
M EF] /0+8!D-4#<9=[X ]@NDW@EPOV0<_0#X6UGYK7$,?9(2A[@I3%PF'.;
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
MDFB/4Z@"TR0,<)JQ(@^SH. PRI+G D9>'$S+A";8,_Z:-2=:#_H!#17T[/<
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
MY1PK2?.@(%&82ZL3/3MQ8Q_QU?+K*&#=:E#S#]4J(-'H +B)/ ^?Q=VN5U"
MN_$='IUPM)6.WHZ !^#RU2LN;O>KE^$#NT.U-G?PFO3\*-/=A%I;M'?9:?^4
M*\].1Y+5G -\6J_,'8G^8JSNYG'$)$GC"*=%PC&)M;?+:99A%A-&2!*ST"X_
MQD;8R+YN)UJ[.",;RKTS )/=#M27\3"?UK.[$5OW$-L*]DF^<]X\;P0\ Z(F
M)N$Y;_0A$8_%,P[!2WWA_(:)OROY18G'LFZPM4W;VT6P\RP*5&;Z)](B))B0
MD&%.PQ '@H2I8"I5*9U_5R5?6T4QMG(AW_&^=/L(WBB">:T)JK:J !9L:P@M
MXI@Q8 'N:.H,A$8%M-.A1VO<V]>,@1(@NAD#+;<@QP]JL& ':OU@S&,]V'2A
M#]2^O0@(_##,=YINN&8DUN:,_=<C6RZ*)T,W($3--[#M?Y='),Y%QG&<QP4F
M(0_UYB])<:$R$B9Q(8FRNCFP%SER4/3E_5OT17Q3\M$<]881#O*F\49SL&P"
M_9UNJ%,.W&$0 /&P8QT'.. Q_&B8@;I4PV"XH'^UI:#).EO##._WO 8^"3\K
M_F!<TE5U4]R6Y5_+NNO\^W]LGJ[^*&7U2[G:R.M5_9OJPU+^=[59W;U=KV3U
MKM1_^5[*OY8PQA$_TD9/'%VL2_17Q4JD->POHNNB:]K0GKRV[3[,V>O5Z@GU
MGMQ\8QOSZ+(^CS5U3E</#\N%J,]AS8&_F6G&ND5SA=EV$GJ[UF&D'M",87^4
M[>DEGC_MGO[]P1S=:WEUGBEC_,+N=!+O287)#NO]0M8_S_<\LL/UWMW=YGU9
MFNO'J_N-]4W>WE-C7]K=W95URA_2(M<KM7ZLGMW_U[18@,NZ?9LM[N6<S05N
M6"^T%';==M0HMYNU_:&FNT0[:L+>?=GQ3SA=C3TLFFJ;IM_+3=$KM3'Y]/-4
M\D11%N" QL*0SA:8TB#!*HIX(*4*4DH!5V-GQ(U^-=;)1P^U F;1.^CH"+H+
M.H>?U=V81U2@=V-;0!K9Z*;8KZ>[]0T(Z'+,(S"NEV,VWQA?/5VL#3YS/79N
ME"FOQRPM>G8]9OL4O)['5+0O;[_IA:C--(R(B"5-4YPE),8DBAFF(B8XB&,1
MY#(K(F%=SO-\\)']62T.U?+.I?2=QV'84UUJ'<PO 0P#5?*<LL"ID.=@L,GJ
M>$Z9T2_C.?D9/ZR3U>[<9;E<_V$((^8T"6D89#J."M/8Q H$\UQ)+$,:$)K2
M0MC%"@"9(T^P+3.CJ:UAM0XS]'UW+-BI<1DYY5$LF<C2(DDP+T2"B4@R[962
M&+,DR[C,5:BBU*'&R1>D%U<M_?<4( Z[M)&^9C!/=\C]6?4/GJ_.@G,Q$>B
MN2.Q@AZ3^*(4H0,0G.,+'7KTHH.+3^O-7]7FG3+] VLN;'!BLL58+WW(H15#
M6C.T4\WIP.,T5J!C$"\P>3X<.41HA&X^$ PN/4LY+> E3EC.FGOBW.7\<_#[
MZJM[O=D1K*/P8:DDF=2!5)YE(28R33"-$Z&W*1E/N IYQ*SOI?>''GO6M\*
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
MRQ82D-1V9IB1'9*6C@U=Z"?]_ZZD<[^:M%4'&7W >6SG,!IV1)[A@3D:O\B
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
M@"//ZE8/U-T4==K4U[5&)24?]>-U<6&KFOV]F#UJPS-_-,!@L]\!JQ%82<!
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
MRW8IVP//WGGGV[J4;QU;;XZ^[5O$.0X]WO>W9@BU',V0X0F=.."=H8:OMK%
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
M5<D4 &:LU,%G,D7-F\]$"@CR3O;#(Y">[(I#$L6>]2:3PC!?)U+,VDP*=/-
M%ZMJ@X[)C6:U8+B.8\TL>7A-*P>#Z8+U P[F9A7?;*O%2E;5#?_7=M%DK=4?
M2RG?K1_UMVQ>9"&329KBF.;: 0J%Q(P)_6/!\RAC&54RA#A %RF.[ 1U]%&/
M@1GJ6$!_-DP SYTOPVAGSKR" S-=U^("-C'6LGHR)Y?I36HZK,4_-A/V+T[<
MUNFV;D34[[3W<;4I]4*UX/5QY9Q%2G"9,1,.G6,B:*3W4I'$:9"%(3<%%@GH
MB&4T3D<V03VZ,T0?'LK:64.+C@?TW3 Q42^GB[-F>6OV,\P%S.)YZ.;4,G_0
M[=/4%>@F\H_!B9RNG9,MR*_=S^DBG_\9#9ULX?;6T<F:H&L#ERX8ZUX/\%8;
MJX=UN?AWS5T;@1G%A&9ADN*D"%-3JUQAQ@G!(E AIXJG86)5E-*>Y,A&>L\
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
MC7/.XABR;@!HC[R6M'31HB:,-H8R3)DA.-HI^$CHP)2^8P+]TK'QJZGCU;"
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
MD@<,<R4-M7>B<)'&,8ZD2E6:B2R-05D2QR)&_M+O!#HG19R Q6[!NLY8V/R
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
M!4AITJ/6S_?Z]:QU@&RJ.^J:]#?SZFE5T44UDSG+62)27,0BQR0H<ER02.)
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
MDU9SQDK:V-<+K7CTU,BO:N*%JE4!D/!U$;7AF>8="^!M0P?#"7I&*-^.'1R
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
M[LH<RS4.KOJ\6HA^WU?]JS[!UDP[E2P,6* #1\DQ21C56\TXQ@$M:)0+2GD
M.A=STF)D9V-TND%]^74XT=< YF'<H+;S-Z,#"/,^UV '=CE7V>[) ;GI,*D[
MN@JF0^=TW6!NKNH+_?&Z[@+TFI;ELUJ5?])2?)@OY?NU?*QF128B%7"%>:KC
M'L(#@EE &=8NJ0B#*(OB )1C-RQN9.=C*AT;Z:@O'GTU"J!: ^#^\@)Z=F[&
M'R8P?W(5'&"'8F>E)\]Q0=BD+L+.\$-?8/F4:Y.@IG7UMI+QPYRR^:+..ODH
MU[-0BB+(\Q@GJ4HQR?)4QR0TPP4K*,_35(K8JDV%I;R1I_VVO_RN$!>ZC[D$
MF-U$]P@#;*9O$>B5?/=DUWFU/KOH6)GIK4G.L+2)>^!8F7[<XL;N,0>NB??+
M:E.:K %S>O)=;W%DU5VUO5_JR51NZER 69''&EFI=QLLH:;M%\>,D@074<PS
MDLI"47N*,DNA(\_[K19HI\8-VMXI]S4!L!O8 CKL$L:"">877A8A -_#"$BY
M\3OX0 Q&Y  T?9"XP7:LZ8@:@-;M$3- GW4\'#YY+MT<$]UNUM]6I3F1KG.Q
M>KE5==)5E_MW7^I]W"=SD[+;&@2I4B)(&<Y"'ALNGQ@SD>6X$$R:EJBQ(!1T
MECR*FF,?/;L<*8_S/BQ/H%\<9<^7>HV"-]LT552KAVK]1MH(CHNAK[/O<92<
M]JA\5*"/3M;'E>;3>?=FP*OGW4?:"7)K=MK;])/;JMH\-NFR72>4OZ\6>A@=
MG3\;'LB9H@FA61CA+#.L;'K?C(N@B' L51JI)">9@)6PCZ_SR&Y]VS+F^U:J
M#Q_O][5=X_!?[&6X>_^^^GO=OMCSZ:H&8\1>NES/D%Y7H)TM-0_NV,O$*,B/
MNF;XU?@G6$!&>05VJ\DXHJ]*&GG2<^^;4>)$5@,C05"P2&$=T4>82);A0@F!
M8Q;R/$\2EN3I;"D?3(7?%W#:R(!D*Y=2-"[E2+ZU>]FI<%B_=H,J]V21(423
M* EI$BN<1D0CRJ30&Z988$D5YW%FJ*%@699^H+P^^6:K@<>LFR$@+5<_K_
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
MHS#"!8LE5D*D/ UR4@ :#0&%CWV%V6B#Z(-$ZQ5B$LE6(_-/T>BTEUV$GO0
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
MSQW_0E0=R]&?-Z0XG'%VBF52EH]R5^H]F+ZE%%5=L#7.&,V3G$"!=1V"5(L
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
MV+?#A)%FPBK='XJ#1QW7H?=J;6^GK?Y:E.VG*R#UM#UH&?ZW+Z#_630[WA[
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
M4Q#,.7BAG -K%9U/,K ?RC&KH!3D6GX69/.NJM79K>_2LHYP%.*(!Y!AM;M
MH4PAEBR"L9 (Y3C-\]S*(YTC-+?;462U"6G"H*4,>M*6M]OG-&5XG^U!?CL/
MXB2Z_:WU!;E\W5.?([/LS?0%88_NHB\];]]3])<'SJOK4ITWRG?E]K;ZQ*^W
M[_Y5/UY]+WGUL=:??Z\^RPVKE>.XJ1O<?748>?M0\G^4=NU'/9":V;I_*1X*
M+K:\TE&C-J;PCI3;0C$+/I&" YW*TD8?VE8$8+NKVP>_Z\#X9R$W+1ITL05M
M%Y4G,0Z-=O!V]R!TK:X&@S'O=^ICFL8=RPO,D)W_67IR//=B]:A;I[:M/N@O
MUN'5H[*&S6!]#NO8J&!7BN)V^[:ME>T,4^V(H@21$*9)(M3>B*8P3]3\"8DS
M0GE,B+1"=CE%9&;/V9%L4D;^\[XL*EZP-OK@A-1R4DUF&Z.IPMLY)7>Y[1L
MC CF"];_%(EEP?I'A#R"X!][=G*WQSU.VZ$F](I6=4E8O8Z3(*8YD5"@-->5
M(AFDN="=9&44:>30*+9*N3,C.[,)#YCX=^=&D&-:,[-?_[JPL^@G#2,/2)S@
MP /XL^?"9_V8E=C^NTN.$7VICI,&BACI0FGRM@,(L<;55UO$HGY+RO)1;1KU
M7K-;H7**)-4]WU,>QQ!Q$L&<,@EE+%*19#*.L#FB\ BAF3U!TP2B(0V&M"W
M:,>4-.X&?(IN9_AGI+;<P5P4WP)8UY,:W%!R;;\$=LBV!J*-PM2.O;\<YJR!
M%$\ 9$V>=]NX?!8/8GLOWBO^=-</[>3^7M1?W]Y7]>Z;* ]7%QE3#HK2!.(@
M4!L6'@F(=1MKC@4)49S&-,4V6Q=3PC.[K(Z-OE^I/0".L0+-=C%SJ,7.G?4:
MT5]9T/, OBLF0,_%3+ VMK)[VLP8DUUT.V.KC.<;&NOW[:%G?NG6A_=JGT0V
M.O3U7GU2K8.$XBC-,21)*B&B'$-,TPQ*D451AC'CS&@W,T)C[GAN1Q6T9-NP
M7D/8''CFG';&_8 GF2TCI/;B6L'.7!#("7;FW)B+P<Y<$&H(.W/I48?3Q*=R
MQ^]9K8&E],5.8^O]82(1(4VHA)$,,41Y%D*<I*$^5J  ,QF%D5%G^@MT9C;!
MCC!@NJOX3H*R6Y8<=M4CNC(X4_C1@)U!]L(W+=6O]=7I',);G"C\*,'M0''F
MF^"K5\9ET48/%".O+W>>N"S#D^.$P>-3,*<9*^\%'T14WMZ7I9KV-0N0"".,
M882T/V(B@R36M6*Z5;)@7/DMJZZBX^1F=E -<1<HZ;/J,3LA^!/:SB>U-Z<=
M8? DVMG1]@T??4E&K]#19XF] &ST)<%/0T9??,O-IML:WM]V5=6?)8KM?;&]
MO;X39=O$HNU4LZ_U%55WP;(.2!XF29K ,.(91&'>' 083)F0G. X5?_9V+L[
M*PO=8A9M_7MS=&9[]L!NS]^^_9/FS<YY3)@',\>RC';MG$X'*/"3YNKG0TBB
MT^OUD5Z?=G'NV//GEZ:KR)//FL#(HOYLNL*>^SH/(TY!^>S(;&\;+,+>V3[V
MB+Z?Q3=2;-6@.G.V/^RMA92Q"$D N5#_H)!2F*<$P3!!(DM3G(6!59\-=U;F
MO@KN@#/WK+40FJO]=N%Q!>J=,M8F\6H%]CRVV>7[X(,+RJC3S)AYQF7T;><9
M9U>U(Y+I%"UY!3IU8N0%<%"G*.PT3.JD$1W3T\Z7"0Q;F720+TT$3#V[%DD<
M)S((H,",0I1( C%BZD"81Q&*<:3\IM4&T8V-F9VB^G[FEEEL;MHT<V;SZ\C.
MD8T6%;7P=DWR[9"Y51>B5N]XS).;I!A?F71N3"R;:S=)44?9>--&<[^V:NNA
MWVWY+Z06:\2H3$D<P"C))$1QG$%*:0YIH$ZL'$44FZ7FG:6PU)552Q0HJD"3
MM;^P>JH7\^LJ9VD=+ZM,!76ZJCHIS*2+JJ<C+GY-=5*@4Y=4IQ]TC1T]J!%W
MY:,V\NJKX+_N=KSZ*)JP<]/(LUI+A-(TQ D,\B""B.0$$IQ&D,>$\9SD>918
M);$;T)P[&M01!K>:LFV4Y[+&3,,Y7O5@&[?IB*_ 7AL-_150'+35@"T//H,S
MQ@)[B\)<IKAPN,58!<=Q%?-79PR@_'(OUG&>"(["''(1Z7!))#78-=')L0RI
M]3B+F54_!5/"KR XTG.S HJ?&:(@6KU1ELM,*#>;:Y06A")UWLH0AD&"4R0Q
M"Q&2ZUK7N;V@>O?DC=7;5.;-I#*/82)+1<P9%%HX]#.0?,E CR;[^L(Z V4X
M!7&&[[\V],&/.[665.K,_O&^R3.189AG3'EQA&D"4<H1)"26, ]YF%,>QD3M
M\.Z:;>>7FI2UF=M9C'\;<WTNA;'E[FDJX[PMMKHZ&5"B'F$"[.[K2AV,N?KL
MM4 1/I]B*O,P(S*!89!B-<^(0(II"%,A$0DDS;E@W12KD\5??H)[&1RF5S3S
M^%>:6[/%[U7.EMWJN1S$Y%XD]6,CU%\!8/+,/+QZ>,GG?/]_ BYY9CJ6@Y8\
MQX ]EHPB4J@G;TJB_:#B[;=B*S[4XMNE6,?XRW.&-QJ:H"/Z%#C]3\T :#CP
M! %R640G9(^181<#[+@LVA"'P^!IAUSZIJ/79W&G)OLKT=#>N]N2?'MS_T@)
M^^>['QKN^X;\6.,(24$2#.,X2B&*1-:VAQ<)3A*&&!/"*(O#@N;,$8FV>>.!
M"]"QL0(=(Z#E1.=36:2<&^ISW+1GTI+ECN!%%621G^]?46ZY^EX49I>_;R?Z
M:"Z_X5#+Y?7;R?8DQ]_RU7E#NOK6]D:I7JPI2>,D5TX4Q6$ D?XI1SB#@<P0
MQR2G43Y+;'?/P?S)'MD\0<B##OU&(YTT,V=8LDON:'A:/D1YI(Z%8Y4'^J\R
M:'FD'M?HY?% TP#IU>F&%MMFM?J\;T7V@2MJA2S((:5$0VR7@E]MAY42ZF]J
ML>-=P<3P#XQIE*A*,:['6.=A3%B6$L@"1"'B80PIQQ+B(.)1@@*"6.[01F51
M(8SL?'(CE9XHN&NINN'G+S.K9@[U]4W2-*S_@1PK<) $#$7IH;U[89IFC@.N
M02?/O@;L:6'8_DOPZ<*7P+F9P**3X;E%P3*\OTCC@T6GY5P[A669< @\Z(C<
MO=ID_E]2\N^D%(J#+SM9ZQ^[$NV8ID+B*(%9C@5$$5-+#4N9VCT'),E$DK',
M/.9PD=S,>^.>/N@9:+Q)SX)+<?ME!1H$&;RJQ<X7'VOD:G:-6$05O&K&+:!P
MX3O3LN$+"L!8WM$HPN51E@L@&$OT)'9@_I;;GOU3*>[40:]+Z5:CMP7,C3?N
MB^%S(06)B("<J7]0PB-(TT# .&$B#!GE(;&JF3.@.;/[ZSCH>XVWC;%WS>T@
MZS9/Q*$/C8DRS3:XGE5DYPI[[734&^5TD ,- S.@#%C(ZVGG9T)QT?V:A0J>
M[[)L7G4'./H[T5=K]6/7\#()$6,HYC#G6,,F)P1B0B,8RS#+DR1.*3="$#E/
M8G8GT(+9]$0O-9@T58S!/F>RN+8&/8^D]JA%[A)/ RSZWDO>)@UY!BPZ+94)
M5M&S-Q>'*3K-^2F$HC-/NM=\W:CAV@9[G\7=KJS7(4M1*H1R*&&>0R1CI'X2
M*42I!F-G.,B%T7W$&)&97<J^(.I %[2$[6N_CO0S[E=\26WG61P$=JH!.R?1
MI#*PHT$7KP0[)]:I8K"SSTYM2?G'MMR'9&[(CS=B*V115Y]WF\W[%M[X6>M$
MA *=+4SU4J]O#^-0G0>P^E7D4AT%$L&E5>L$=U;F3LH8-%P<LM:T"NF9 YH[
M\-X&7]W#')@=(Y;1K)W+L%?J0MTL757DO:FE-2,OU-O256'G6UPZC^CF ]])
M*5A=/!P0BCZ36N@ ]985FZ+9:N[QWJMU%C"!PEQ"&N:AVI80 :GD&+*(91%G
MB*8\<+AQM.-BF2M#;8NL)6CGTBQ5:N;&9M"0D^O:\S$ -P.:%?"4EQ4X=%Y8
MZ<,6\QHL<5.')S=E27Q1U^2FF.?NR'$4.Q=4J0W]1_)-^;S?R7_MRAX+_I>=
M!@1:AUF4H"R,-#JK.@H%.84X% 'D"8O3B(8RE4:QE5$J<U\Q[3L4M.0,KT[&
M%3/N+[R):WEU9"RIL:D;23)FT6J @36KWPZ6/#[V(@9K)%YOEV8/.X)E]0VF
MNOOG)_?.OPNB.T[Q:WUG?5^6.L]]RS_N]":E_?4-J8JV^?::)#B428PA29,(
M(I%QF"=1ILY(",DD92)A1E#OWCF;V<P'[=4ZKKJJ^3UGS?W!D+=N/V_;3]+;
M5)EM.EYD NP<ST'WD]1M#\_E6S6^$+N\\;4LB)=O=1[A>GDG8!_V?;>MB_JQ
MNXUJ(UAJZ"\UJ76;&ID'&.F($L\2Y3QCKO8[-(28,<0I5_^FQ#3T.T9H9E_8
MDM[GW^V)@Y:Z>0QX5%F7X\"^5&!Y.G*4WBH@;"*:4U!X=.#% L,FX@V#PT;/
MN[:CJ]7^2O"^07N?LY1&<8#B&.9$4(AH%D!".()Q2B@/$Y909ME\[A29F0VU
M)WKH/N_6X_J,CLPV&-,EM[-/!Z$=^L:-R>2M2]Q)(@OWA!L3]+@#W.C34[I!
MW) ?5_?UUUVI_( ^)5W]**IUAD@H1:",%*5J/65) JE(.$09$0G*HH"8K:>7
M2<ULJ(,XVY[T"FCBX$]-WM)>1U1F9K-^%&%GM^XZ<&RJ,":>UZ8))PF]0%.$
M,8%/-ST8?6/JA6S7!JKIJO#NA[*:+=GT48]F\[[;WC8@O>UVOHL_2,0BDH40
M)?I25@8<$L2HQM"E/,>13&*C3H]^V%GP8K9GKVU)TC.X;Y#:YG9J'CM<ZZZ,
MQBD&,7&.;"]MY]:\^\7M3$J?<'L[15?>;W"=F'FA6]PIBCM_DSMI5-<#2U67
MA0:H;PKN_]CJF^,O?W1[\C"4L92$01RD*41AR-MT59G2)"<AS1!*[<XM(]1F
M/[[TM$&+\M!0!S\I^M7/SD>9,>V9GF@\Z<3V8#-)'0Z'' ,QO9UUQF@M?.0Q
M$/OXY&/RDO,!J-0U[;^(]O\/VX;&U]U&C5&UH%F#U)$U2?(HY&D$<YGI'G@<
MPSQF.G>=90%/DAC)Q/)49$-__J-2PP7XJ>?G9U!LP9"E_]6#XOTY3*^R/T-9
M:=WX8#67+JU/6[[5Z'(,<U&&O[.9%?6E#VPNJCEQBG,:QAY0[]T/P>YU-LE;
M4HO;7?G81!L,O,S9E^>^Q.AI@I[HOYLYB//2CKL +X):7E4<R>@ME')1&B=\
MP-,C+@8-."K0$!5P_$''$M4.J>9FU\$#?&C +IO/UCRF&<8R@3@F:EN?(P%S
MQF+(I=K5IU&*!"5]3J;9JCY&SN@;^33YTL[X/G48894^9!<'PI9UJ&,:,UN/
M)VO!K5"MHZHAJ#JZX(.!%NSK30W$\U5H.D9JV0I3 Z&/2DM-WID:\-1%[KMM
M VPK]_'5KIJURP%_5OZ0<IQ+&H<P5B8/$1<4YEP(F#%!HDB$61Y:95M-X&7F
MY?CM;EO517W?F(5R"I_*W4-1Z3HKN2N?-%EV#67::]\VCCFK3MV#F >V]&^#
M:Y:^\/VGCKF?%ZI <=:3]P"F/2<O%+UT5MGYT*7[D%/N<77.1I,Z^9O^PBC[
M[C*>!2894@X-)C$G$"5I#(D($:14B#0@>9!&T?I!E'1G=YE[AIZ-Y0VIFF^]
MO]UM=H]"@"^B?"B8Z"#\Z1'4_PI<;38=;^V5P[Y2K&LW^'97M8FF.NT%_*:A
MONURS<UFP.9FV(-6+?U93W#@PGK:*_"F:VWA+S'=2EROE\7G:+W ??$%L4]?
M&5]ZR3ZT\';W16R:CKQ=#J>^B38-+9Q\>?:]S+<[LGT$/>4^8[Q)9C /,IR6
M^W*08;+(=J;I)JU5H&%4(J= P^D1%PLTC HT##2,/WC.EH9:5^O%/__CW_I/
MU#]Z"?J/?_M_4$L#!!0    ( / S35KO9!L24OH  "&^"P 5    8V=N>"TR
M,#(T,3(S,5]P<F4N>&ULY+WI=ULYDB?ZO?^*?/6^/E1B7_IT]QQYJ_*9S)3'
M=G;-O"\\6 (RNRG235).N_[Z"9!:*(JD*%Y<7:CZS'26%_DBEA\"$8% Q+_\
MC^^7DY^^P7PQGDW_]4_LS_1//\$TSM)X>O&O?_K]\SMB__0__NV?_NE?_A]"
M_O>KC[_\]&86KRYANOSI]1S\$M)/?XR77WY:?H&?_C:;_^?XF__IP\0O\VQ^
M2<B_K?[9Z]G7'_/QQ9?E3YQR=?-C-W\[_V?M@X^16>)Y,$2Z'(DWD1/GE4H@
MC?#>_'\7_QQXR-PG0Y1UF4B&O[(J,N(HSU9:R2';U4<GX^E__G/Y3_ +^ G9
MFRY6O_W7/WU9+K_^\\\___'''W_^'N:3/\_F%S]S2L7/-S_]I^L?__[@Y_\0
MJY]FSKF?5W][^Z.+\:X?Q,^RG__WK[]\BE_@TI/Q=+'TTU@66(S_>;'ZPU]F
MT2]74G^4KI_V_D3Y';GY,5+^B#!.!/OS]T7ZT[_]TT\_K<4QGTW@(^2?RO_^
M_O'][9)Q=C&%[W^.L\N?RU_]_'J&4/C@+PJAJW^X_/$5_O5/B_'EU\GMGWV9
M0_[7/\6+Z7=<D$O&U\O]OW?_^.>[E;_.88%P67'Z"_[!]3?*:D^E KXO89I@
MS=?-]R>S>.^')D6JL_G-OYSX )/5GXX2C$>K+Y^%Q7+NXW*4; 8;I2#4*H60
M4IXXD3QA$+*/BMDL[7VF"\$+I'BEA 7$/U_,OOV,'_ZY"*+\8B61E30>++>6
MRFETW^RZS_BSH^@%#=QJ$E4&(@U-)#@$OY7)<!Z8,4QU(GMSM?M4;VKS;!Y_
MFLT3S-%LW"SGY_&>9A\"]OHG?O[JY_@A$K^,)^GF7^?Y[+*&KI:S"I);JP7)
M_=-/R'6&^1S2+VNM[&5NQ=D2C2FL?K*&QL^FTRL_^0A?9_/E*!L:A5&<()V2
M2.D=\8X#252)!#&PD'P5S6^N>A0">/L(.%F2C2#A \S'L_1VFM[@N3L*SD@7
ME"$& B,2\.AT!L]$D4+**7!MG*L"A7O+'H4%T3X63I=E(V#X//?3Q;@(_AK0
M/E!A,V(9P8ON$64">1"<4.$8UZ"M%'7PL+WR49"0[4.BDT0'1L7;Z7*\_/%N
M/('?KBX#S$>6,BV=5<1[IHGD$8AGB1-+I5/..D<S[82&[16/0H%J%P6=)-B$
M]C_"Q;@(8;K\S5_"R$H 2;4B+ &B5QA// 3T?(1VFC/*F<@5$'!_U:-0H%M'
M00=)-H&$]QB_S]&$K03_">4/KV=7T^7\Q^M9@E'6P:,9 Q*R0<_'< RW-8:-
M$9)QR@ (W2UZ.(*(HW!B6L=)/3DW 9O/_OO[A.(;Y_$Z,7%M"6.(:.X$$"0;
MO2,O';&.60+>*BE8Y-KJ"H#9L_Q14+&M0Z6&;)L R5E*J(+%]?_\,IX"&ZD4
MI5(QXP&I/9$V*>*D-X1#5L9:XR.O<=3L6/HH<+C6P=%5IBT!XS7^\GS^>?;'
M=.0@@<S<$VVS0!;P!/4:&/$R:XWQ-1,JU8/%W<+'9:SH"T'%B0)M"1.KH_%\
M_F$^^S:>1@RW066OM2/92C1ZCN+)F!/ZUU[QP)!8+D(]8&RM?APZ&DYH5A-M
M2Q#Y,%LL_>3_'W]=N4XT,V, N= F6"*50S.H/3+EP%(:56:T6YIS_]K'P:/A
M;&<EL0X,CF+USN;@5W2KK"6+D1'E!"M9>T5L3I)P8XQ(R1L9N\%A<[7C -!P
MBO-DT0VL\G(=.OGP93:]R< D%VU*.1)6;GVE]Y%87JZ)8PY2\,R3D9W4OKWB
M<:IO.)79280#J_\3Q*LY0I?Q\'F\G"!T)0U<X &6#$-O1SA'7.:2^)"Y :XI
MY[&3^K=7/$[]#><P.XEP8/5_GOM2<O+IQV6834:!.A\D%R0B4-'3C2@!ZO&W
M+'MG43@:NEG\>\L=I_B&TY:G"Z^13?_V>_SBIQ>PRK<F1*LVCA*>J20R0B1.
M(?W,0 "*P4[VW>S^KE6/PT##*<G.HFPB'/@;3";_<XK![B?P"SS'TOO%X@H/
M,AX\1"L<D9+A?ZR*) 3T9$U(UF6FDK>L$R8.+G\<.)I/0M80;A,H^??9Y H5
M,%_=U\T7(S!9)%GL'.>)R"PY_LH"D0A_'C3+T7:[^]ZY['&H:#[[V$683:#A
M]=6\R&M]:U^.053"U6+DHK0284V,-QE]WV+[#$);:PTR2,U#K &*W:L?5S/5
M? ZR@FB;@,C[*7X-Q3'^!F_\TE^S-0H^<FV4)9053TD7UU@;C)9T%,HH"LGQ
M"A#9O?IQ$&D^$5E!M$U 9&7]7OLE7,SF/T926F\]QDN0%1I!B5CWH#+13%
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
M4V#T!/*&Z039)[SZTDT#5NK]]!O:VB*IM>!^FTUG-YMIQ!T5SB5#@B@EFM$
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
M9RX1Z64F5J%MA9B$"\PX6[VZZQBZAKVHZ E9U172 ,CN7\0\X"9&(0REAJC
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
ME ,#(8ASI7F*CH$$+569^BFT4<!%]23&DPCL:D1N%MMUMB6FA7(VD03E;+.
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
M0!V8CK%]^'-D(_ @"?J-FDB&?J0741.A@Y>,RF2KFZWCJ3L.:B\N"=^/=AK
MW5W+\0><Q(AQ"E^UWY$9.>&E;@@"@1 \*TV"HZAMQ?93<QRN7EHROI+T&\#1
MPS[IVPQY'CQR8(@H[PPES1G=1PQ_C: )#WEM:5]]N_<3=1RJ7EH:OJXNF@#7
M I" +V^0L<ELE:%;F>'+KU>XR/TTRQV35D,07 C<-S:4EV>>.(?.I8D&."3.
M0->.)4\B]#@0OK3L??\Z:P"89^D;S)?C!0IOU2ISFQV3%-5229)+CV(I! ;/
M$7]EG<60&2)3U8>'/T+2<=6L+RV17U,/#<#JKN/J9L_$\Z_7CTW>3R.*&IV&
M<F]Q6VD44\HN&D)S*+?W'DA0T9'DM4])6!5U[<NC$\@\#GXO+>??M[X:@.1M
M'[R'KPLR2U0&XDSI916T(DXK153.&/M$:72J?<KNH^4X<+VT>X JDF\ 0=N=
MT![8:"37RO*@.*)X)$1D)T>,GJ,)(CCP3-<^*Q\AZ3@\O;2$?TT]- "K8G'G
M\*7T_"UCT\I>67/T,#%C5% :2+9<XW;AF7@PDJ1H30S,*J@^+/!8VHX#VDM+
M^O>BF0$1M^YQ,EL=YM=/[<[SQ_'B/W=SY:F,OD36'F.:,L 8B/=6DIB9H3(Q
M 6(K3;NOB<RQ2QX'HY>2YN]1W V8K5U]N6YN+CBU(@A%=#!EIH*AQ.I$B6)2
M9N-T$-4/POW4'(>IEY;/KR3]!G"T"G?/%HM9')>!'648W]OOX^7Y_,UX\76V
M\).[H:'G\X]0WJ?$Y=5\Y0"L&>8"$L3H"<O2$6FD(2$CU]$'::,WT;+:9:R=
MB3X.E2_M-N!Y==D >'^#/S9$.9]-\9<1-MY/;1OY0(-443)B0F)$1B9(8(&1
M9!4S1I8KD]JF\:DT'@?-EW:ET*NFVFMU<ONX[U?PI87+>NI1><-P4E^30Y_K
MV,3D:$HK=2RY7>^NO\U&3S"1>8A>$+=ZV<&L)XY&/#O!:NM5DCG4;IMVB)[.
M:=C;5C^WJZS+E\ZF::.%XK7DT_GT(\2K>;''K_QBO-;"AH,:@"OA?4GS18QR
M(!*;<&\8--F6>2Y2JOT2J2H#P[9.J8:[![G;P93<GMDKCTRW'IKZDKZ^>3'8
MP00>^^F.YO D#FK-4MOY4O<6I,)Y[KQG!%09E2=8P..7:HQ27:!:*RU%[43Y
M88HZYD$NO\ZFY7/G>8?0SQX*?6NG6):UD#Z0:- 'D:YDKY7A!$P W"5"92L?
M U452@8>BE8/-%N)DV?43P.AQ)T9/_OFQY/"R[O9_!-R^ZG8ZY4-+P4QTX@&
M?:7=+7[1)4U6XQF2]2KN9YPX(8 PKKVE$C(WM>?@=*5YV,Y4/2!W$&4V!=[?
MIW/PD_'?D8398G$^?;!)[_IJ&V83LDFD1'=#1O1YK+6&*,Z#U$P%E:K7F#^=
MS&&[7ST+1/M160.H_'C-UE_\>/H8:U:# 5&RIDF5B>P<B.<V$9YEL"$*"M71
M^ 3RAFU^U2,*^U)1 ^C;8.3UQ"\6XSR&].I'J;TO8KORDU]+Y\OQ\L<;O]QV
M7G32)1!3)#IF,2#,@3@,Q@CEN,V<S"Y7SQ-VH7?8!ED]XO/9E-A>+'W3O0)=
ME=.CYH<?Z3R:]R!5U0;T7G?NV#79F>M$)1>$18UPTJ!(B!)_E4I/OAPM:J^'
MK;F'G'J>V^TBZVZ$RRTP!VJYY#22)$H^G"JTOK0DWP75#C0$96OWBCR6MJ$'
M]];!RGX'K:)FVC,S]UJ8^(T6)J<;G<<^V=$$/8GB2@9I;Z.76Z@92,$BH$@4
MFI5R7#SE+  1-B?%2H%2]>S<HT3UUGAHH_0J!&=$]B1'Y<J$R4 L<$T<CY8F
MR13$VI<2CU,UK$&JBY6C6PZ=II/V#-*Z8<GIUN?>O^\Z,F\O+97LRGJ!6V
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
MCUXMUR?HHK)MP1--]-J#VQ-DKBAOM58<O*K!O9K9&8*F"XRE%!@BAC/JHO)
MIC_^^1D7:YP%CR7214Y[1HH:+P]T.M==&+06%M%YUKI>Z'LJNHU[#-'^X[OK
M2&&?ZRE5JX17^)'XG7_!GVN='8Y^4.U8\R1GU;X\GZ#I4TC6*\:!2X_5QRK5
MQQ*@O1<QJZQE.)_0+7WRU:>KBW")US7F3XCYE^7Z)N?:>D:,)UES5&,-321P
M)B6H+ <?7'"B=<[Z$/JZ/>*&(.:[(VXL!77@!;XG[6PJ@VM3P/J0^.GS<E$+
MA3>!L&"L41PM&,G(>-4^ 3G#'M"K3#QF<FI=8[3M)&AR>(V$@\>=QIHII0.$
M/>+AIAXY^X#(F085JUODE8*H2@&'D5PB@TJEULG#3Q(R<<.P=HI^8LC.<5+O
M #I[;+C;!O!>,,54 91(N\U9$I4.&D0.R"(/2MC6!]7>Q$T+L09 &'X='J"5
M\X!;/=_O8SN&<V2U=MH:LBQ4R)Z,"L- YSIC70A9S%[S.MH;8YU$3$]V8XZJ
MNO.!YNOE"LF#>W5%)-9<P558K*];"[W(_WUUW:#Y-[Q\4WX/?\YL*D9):\!6
M:U@A(Y.XU.Q4J<A#5\(I,T*U4FLVSL(D/!!WAX%\-!"<SSZX&ZU LGC_S6B%
M)T20#+F & KP5&IMEN#@"O.@$_-.:<E8\XZV([!Q%@?]2??!:"#H81_<<4#,
M_;)<?*CO0S\O:(%TW7U_L^M#VG25NV/2*84V!P62"]KLV5KP6F=(.0AO>?+<
MB=9(/X30:3L@G!;+HRNR [3N$N,[3+55V2;H_.T=]9HT\^+-JY]OMN^;<K^!
M[Z\OH:.SBD.*F[D5+H-C*D 260>18V:F=?_GT9B9MC'A25'?!R :MLUL]OKT
M.LQ7_P@75^1"A_75ZKIIXW4GC+#(MP4?\SKJ=O/['"[O_I/E(KRK$EG-%Q]>
MAO7\YC'YD >I,<@X\HUJ=,DT>K:Z6_2'^3I=+"LI]\\06?!DBPX@:B6.JA&8
MZ%P IU#%@(X[V;SET YZCNYX<_O9UWIX\:0>WBSN9$]_X;?E8O6-*JZ=?R,\
MDR4SR,HZ4-II\-DA&!>8]UY)ALW;XK0B?N+>.:WP]EW/G$F4VX&Y<L?XRZ]W
M7_YMCBLBZN/77_ +7ER/*G8VH X&D)QD4"S41HIBT_0[%F%Y"?M-ZST$LCLI
MZP2/IX7--O"VTV%/R'QX!W[/WVV0/X12/*MY.*[V_$T&@J:O8C):J\RM27HL
M@.Y#8"<X;8B0;2!LKJZ>L/CSXO/5Y7HC,7[S\*.##C::"-%X\D\Y5Q"%(,E%
MIC#JY IO/B1J.SF=X*P]"+;![4B-= HN<=L% [4327(0,I.+QU%"L (A:U&B
M)Q\&'P^F& 5<HHNI*)."ZQ"-= HN><,*&I4#<YYV1RWBT<AHQT@#SEIDDNSE
MU+RIW0YR)IZ),BFX#M%(3^!Z^?6!V%ZO\'^NZFO<QJ902++0VH#P1H%"G\"[
M&*#V-TW>.).P=1Q^#[(Z.<EZ<1N::*\G0#[%T,W>=<('GXP#+NKH/Y5HVV;Z
M5KC:3$AH)O;KCGZDI_"(K$[LME90V,,Y.$8OG4)M?;=C;\YSEDUD,GC(+A!/
MM2HN6)[!!$2K%&U1V;H49Q^Z.@%;*S#LXXD>HYF>T';$C7'_G"5#J$65A:X)
M23:L$!Z<"0)<L:D4F[DT/0:@?^EC:D!GM_?)$='!=KCF^8G7@/L:&!,T^I@
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
M54]L0ZQ_Y:[BB+;DG:S*M:Q.,QJP#65C%VJ-(+_3U'/5CN#2H:DU.HJ.6,W
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
M8?<8K#962@<'<^O09$"=="#I,B$#J*@M.(:^FE6R,,.U;S[7>8I ])3/PL<
M>$IU=X#V9Z*?1MAB$M9),UG6\K, SCL#6 I#K820!AN#MT$D^O1!P398;*B,
M#J"UZ0R&>?V:Q/C,MIE%IX-W68,4F$ IC1"C42"#SC('XXH9(7EP7_(ZK<5H
M=H./HJ;^>O5O"I/61Z2_?/L!1Z:U[*"F4;K*]0IW[Q7U D+D B17!!)6:B"F
M9# Z, PRV<!:9X)_2\'Q!7[K]7*U^<P?<)U6\\]5WM?!A:R,=6A*!64$)>GN
MC:Z63<N8-!V546'[ K^MY$SKGAZA]^]K^=J(?,+K:+VZG+TGX6_J$'_"Y8=5
M^/QQGL+%)C!N(I+[BZ8.<*(33?@(T8H(P3"IK?#,B+TV!:WR #/TW3U>=A(P
M-5(:J7?96M93 P8_/&;AM@^XS4)LLD]C)MGX[,%)YR$)VDS,\^CD7A;Q<X#9
M1L T@&FHV&5K*4_]HO0RI-_FBX__F./E(GRZ*R1SUB2G *N9KG0PM;<RG<'"
M"8DF*\SY.7-CZZ=/B($V&ENV%-^4^E]>+2Y77V?O?YII8Y0U+M;Y )7BG,&3
M=P8^J>0X':&R[ H]KC']GP_++__WYA.OCX:;;^Y/AOOUI@DJC@"!PR0X]9Y_
M$=)'7/R$JT]A\?4&LTP($Z0MP"OIRDHZ#T..Q'[,TFG&V.,.T=NFTGW_X=.$
MX$;:\<<*KX_8QK.MPTJL>=;(P8C:CB=R#3Z[4NUNJ;DJ,CV>']]-B[_17B-:
M&YQCZ:-GB#VH@C?,H1;$0\::8!&BA)!2 A.%S;Q8[<K)RDW.J:O?("@<T-5O
MB%XFO\J<H]/U_?]<A3JQ>WGY=H6?YNN[C@B>\VB*5*!*)-N>&5^S7!5P1K>R
M\X:;QQD$VVZUG>MTBIE#=;H<1\"38T787:SPH@/Y>AQD+:6D#2;!<1'(+91$
MB:,?!+T?5G:NT^F#>A.LM!-P!U?8T[?]_;.%0Q>YM&3GZ^+IQF<>8I(,N+)9
M\<@+BM;I&L^0-.U3]UC644L]= "K-[3_2">+#QN.?OSS,R[6.$M,HH[6@ZV3
M')4S#*)B'(*5R)GV*?O6-:A/$M)C1/= 52];R[T[\+P-7S?M"6=*8#:1(UA?
M7S9KH:Q708/S2EK!E73-.S$\34F/_MD8\#E(\E/;/T_N@-^6MVF77]^L-KD:
M]]F:,^N#9W1E0Q UJ%73X+QT'!S+VFGZH53[514,7KK'J^PX()U !7T![(ZI
M.CF]!DIK/N]&C_\(%U<XDS%HQNJCKHDD1$OFH%>*&-4!G0U9<+.?;S9HV6E3
ML$X$K):B[^[6NV-N)JWB :4#PT*MT%$>7"+G,QM&AF7P1F/K -(64J;-L3K=
MO7>8[#N T&_U4"65U+J#%899S>:VGMS;X.KT6,\#!&066,T("R&:7%IGW#PB
M8=IFMV-"YAA9=P"5*AK$;W'_.ZX^O2FOEHOKI"09"WFO@CQ9GA3YM(R.3F,-
MH%+(G _D48SA^N^F:MJVMV,"JK%&IC:3GF+GS76P9$D;!_]XQ)M7,23K'4A/
MAI\J)8*/6 NAA1<8T17F]S*4!BZ\%Z#<.0%J=/%W<'Q]R]B[^8>/EV_*W]?7
MY7;DKW(4FC/0UF)-IPS@G<A08@FAV)R\C:.:3(\(V@MC_IPPUEX/W8'JGUBY
MP?SB"_WT ]XZ&>_");[%5:JY]BA#]-9'X*&:AYY\C5C[-J!5UOJLC%>MAU(.
MI7&_4"<[?^PU5E?O<'R']17KH9W 9YA",;(H8#H&.KE9J*,Y/&BGF$$K&-<G
MA>,3-.X'Q[] Z+VQNGJTYEXM/WU>+C8!8LV+<R@1C"671V$FYR<6"0P]%TE+
M%L*SE3M[K+,?>LXJ\MY:NAV<6T]Q<Q=2N7U3^.$*9R'**&).X).N'9V-JE,<
M,@@A8[):ZE#:5SOM1]M^2#NKT/RHZCD7V%V?PZ2]-^4U60CAXK\PK&:&B4R\
M,D!C,JCD&#@>$*0-QF7!<LJM+\[#J=T/FF<5W#^Q"L\%K+0)?\,_+W__ R^^
MX*_DJ7]<SY34&841D$/MU)&C -J&"HSF)F)10>C6KP&'TKH?4,_RO> DZNL
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
MZ_C]8UC<]S$,+AD1(FA6N^Z&@.#09L@Z2Z68$.6QC=KIH;Z%P6[?,WH^ZEN
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
M,"&XS(SSNOU<@UT4G4>'G$/<V1$TTFT'DO<?2=P?EQ>DK?6/_W-%6^A%SIO
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
M)UHW?SPIF*\+7Y<3QXVEC$4""V&=]2;PM<XEE<13H;W%JM:=H_:CL)/)5B,
M]$ MC0_%=1'TCAQNYOW-?K^\6$UGZV_"Q<WAS'M<)-+21-<>Y4D5**J0*3KC
M(1B2!&6^2#:)*OGP5$[7G*IQ^^RU1N:X2AO[9<6.C%]U,KIBT7N-/OA$W.E(
M_SA1GP@HT#$3XV@QYMU>[!RV_KB-],9$X#&*. >LO?D;TV7]FWK\@K/E^H=7
MS!8R'R-4 "82 \5$30N]@2B\S]SDG^>_'8&ZQR@9MY_>:/AKIIPSR7W^_$SZ
M>!F6F&\S_.;OA,OZJFE[2GTE@(PFAR05B)0-*"]E+1L,4%P==58O0/P81T][
M,3%NV[Y1<_K!=#U^7+IG\/TGKE87^*4^ZYI8P4P0K  O3H-* L$[^D<D[TH4
M)7G1>BC'_E2.V[5OY%3I4&V=,RQ_.(";I&*XY\I"BK&^5BD1HK8.##'L%*(3
MMG4QP)$DC]R>KQ_$'J[(\X+OKU/*&*\V#U2B^"0L\(2>1,QJTQK-00LC18H\
M:,U'P.MM&D?NPS<F0 ]6U7DA<M,%XNULE[8C,D0F61UD)QB2%'B"F)F#5**4
M44EI^!AGI7NP,'+KOS'Q/)2BQX?[SGGKB\L\7=WL.M<9JV$ZE90I=(_U/4^@
MKW1M!F\=+QZ5-7*WX9>'TS!R>\#13A(::&1\_/TDQ1]Y_(!?PVJQ^?I=V=ZZ
MO0F+V73V:3GA*@2&:""YQ$&AT1 TUIDMB@E77%9BL-*=/>@<N<G@4(YS<)6=
MR0G7N]5G7+S(_WVY7&TR2!U3SIYQ*-D:4!P#L<<Y"(TI:6VL,F/D4G?I'+GQ
MX)C[^5$JZQ:6]U6H3YPQ6GA.X4B)%(Z0]4%4OB:%DEGA-;>Q]5.3W:D;N1/A
M:2%XM'JZKL[>A,C+Z8Q,:WO!]F,3JS=_IPN*6&:?KCJSAUF^;MC>J(=7$QH:
M-O=J+Y,3%$2SE%5 %D :KRB )/@':RB+,<$&79@C?)Y/0?0=QU\>F"%PK8D7
M7^:7M"-0-$W2KS'+Q_F;O\.7Z6S]YQ]P=;F8+3_,+RY^V;3\FV2ADTU% ,=:
MJ5 TA\ Q@T&7BC71"-:Z-\30//5;2KT/-N]ZY:Z0T$$0\0#_$TX;'JH4(-96
MILI0[AA*M!!SL3)([E+SJ5,/D#(N#OO"RVZC4/92WL$8I/!E.J^/@!:K(9%X
M-2)N27OGNEKL4YU0_I[67KQ?4U"?#\V7TTTDQ67.2HD PEIR#8Q14JE"E:9G
M,3$3?/,#UA9TC_L"X!PQ/APL^CD.>WC2T1ZL)Q/0"U1@ZD-2E8H#;UR=G2@U
M*Y3>IMQZ8% +NL=]57".%C$<+/H-4^[G>=LB[!ZN5=0H0]) NR,EVL([",(C
M^,B95YX9%4XWPVT?RL=]P_!\S*$--/HUB/NWQ5MU(O]GNOI,?U^5=+GZ/%^L
M&\M/@BHV<QW!^7I=:>O94S:U6X!(E%^Q9-BH8=-3#(S[D.(<S>,$0.D^D/J
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
MRT)FS*7,@Q&Y]7G7(^3TMK$=J/(GT[C#Y-\#E"Z7J_D77/S$TM:_U@ILIT*
MK U97+06@E82:'\6PI<8DV\>=3].4F>0.E3U=R'54 ^C!DS+Q6KR>_CO^>**
MHTVM"A-),N/J\$$O065A:QLC#SF4J(.P9(X['0G0Q]_"$'UW@Y_[5Q[WLK/A
M/M9 L"/ZFTI]O>-]5W[@86LYSD01!9/ /4^$[H3@ WUK+!;FF7+<['0W_@0Z
M'B1@')_20J/SUN(=N__#%>GB*L OJ)C."400&916M;^*U.!<5,*(4+Q5/T+C
M@6?0=SYX/)4WTM.\D=!Z43B_WNF,ERY1AHC2@W)>091,U"G/143/,6NWE\+Y
MF-GQP H_1&@]1)UWM\6;"V/&'1?D 8F3"MT2&(3 #23&M*M#%$H9_/KIM[UJ
M4 9KWG**)/@PP7< H:M7?)L+NO7\WLV-W7(B;/'.Q@B<)Q(0T[256D2(FF4M
M?$K$5F,(/4Q-9^G*@?J>#R+\#F#TDX#>XZ+^('Q"/O':,)O(TA(K->E:-WJN
MO8I$(G^;LRRZ=4?1Q^CI[$BN#92:*:"+:X(ZGN]=^74^S[4+UI^X^#9-N/QS
M?I$W4UZF5U.#;O<2G'@5<^$Z ,]:D1 9L6E]A)R]%UIIHW9+CO?"V0&$=I9+
MMP+@T"H[NZJRJ^+7>=E>W%5EO/F;R)F%B^MDE?[KW^:S3[]-OV'>M%:*WV\^
M+ER\6& XHM/0R6D<MH)M8)D.7?>F&3I9D@*C"F49VB>(CA>PR26=?+(NG$O=
MVTUI]U83RU_N4\6+GU2Q";\S5UE;*R&5$BG B?6@A@5(&!$94B;'6COKXRCN
MM(YN'T0]_(9]<!6.?&;Z)VD*JP!_\ +UF!!+0"5< .<3ISTO(WU%VY"R7A25
ML]%NIXN^)\Y,'R2@E_?APR-@WEH=8V-J8Y*W6=B>1^F<4LJ>0]$FU(GJ ESR
M&NB'Q2 /#LM.7>N>PM1#!(QW*-M(L?/64A[S=+96W"R^3_[Z<^*SX13M"LB)
MD0Q\MN"*)]>='#-"2Y[B8QV_EYC^UZ?YM_^]_<0--+;?W"#C9KT18=!&:?.C
M)#BR>WAS64<J; ^6$V:;+4N4YS!1TRL-D4<+,44AHK-!BYV.0)[P"+?7'.^@
MOJWVCY+EJ*<9ZRN&7RG5($"]^CR=A2T#+NL82RB4ZO)8F[ YB-(ED"PQPU-6
M1MQY3?K U<S/GSW.T<( )M] =./K?CU,\48B->O<\F&S8Y*)!$'6UW3,!P@V
M<TBB>.<4<R2<G2#PX!+CW+D,A(0V@NS@G'S/*/OF:$X'*6N%+C E2'391_ U
MW&:!VXA6\");7\8<2FLO+\Y/EM&<5+G]@'CS<GBV/H:HHSZO6-V\+*YG%,0F
M_5\=-3 )7M;G,P6LXH98=!X".0.0*3,T)L;8?.#7 62.FXR?!C_W@W8P979Q
MGW0ST'@[9,IKYRD?U>#L>H)&_2H4#D*'8HP66&SK\NZ[-(SK)D?!VE%J.+OK
MG]?39?CT:5%GGJR'*FS__&H.^^;Z83G G<Z."P][47,(]X/?OL@0F4<&L41.
MF[M%VMP5@BB*H]/1IN9#%8:_?;F[PBT=O/R^_>4FMC&>J*/T&"1]!2IX"TZ0
M%S?"<?J)=SXW?Z:Y/YF]WK/L@9V'[UF&4=;()UT4-RSG%].\9F.]2VSZ:J;
M:9/((/V: \/!E4B9&M/$@6>9!-K@S.O^U7NY5AE(X?.FTN\./]OS@LRE] 4M
M6!EJNSD>(&J2D&4ZY$CFIW9+>O=&T-C7*"UT^BA$#A!P!XGG]>W2R\LE!:3+
MY56YY%HZ49A<BI; 8J+(- @'#A.#.MW,4UIO7?,RPT<)ZN4<9%@7U%XW/0!M
M0_O5@T2/0BC,8#E'4.@4>/0&1.)"L1"8**U?E/] P,A[63O%WH7,P5(>^['-
M!U(!K?[Y-671%_/UG/0Z,WWVB02$"[*QJS1G>TJM9=8J10_)D[-5)GMP*FG
M$#2I7EO/TT['_7LNW$4L?8A^YR<2]MA NKXKF>$B7-S+UE6K%UF"T\:"M-G6
M!P$&G&.*7#6SK 0M?YJ.\P"$=EYRY/VK#7B&$7 /6]1E7-YVQ(5'BMKJ/*]<
MAY.;VB%4:XH-#5>EV,R":STI\PX)XY:UGSS>.4+^?<'GRL24=DQP"3HY \H;
M,C&''C+S1>N81 @# JB+2.<8E3X,CP/DVQ= 'LA&M>(AB!A !N,W-P$4["40
M-KK(0E8A#PB8(XY]!GMI.J(/:J"CWD%W-== 1R5-P-KZ+()RA4$H@K9MC-K$
MX,EBFV=C3Y/5C>=J 81]8': 5GH VL/V>7/5Z94)LI85^5@?ITFI(' 9 ;GR
MEN>@4+G62-N!KIV@II^-CVNMJ0[0=U#-1;8&&26T)=3[I]K)QDE%@DS2V>Q2
MTOFQVO%_B0*:]EAI42RSA^(ZP.;#[W@GP7E1LM%@12V^-3R0Y)B%$*VQ 3VS
MNGWKZ(>HZ>)T8CBD-5)#!X#Z=3%?+M\OYF6ZFG FD:A?U^I+RH$"D1[I'\Z-
M(NI-BJKU\]=;RX]\0#$T9 X5= <8H0^9+PCG'_ BK#!O#^8F2?H29'*0W7J$
MF4U +A-KA;<P3)"P>.L;O?LI&3FM'!HY#<0_]D'ZVW53B^DWK+.,B/JU=+:,
MO)S/+M=>M/90I]]_F2Z7]-OE!$.QG)4(6=;79(%\JO<H@'OA+;*4H[F#KP?.
MU ]9?>0P?BA,G48;'?BL%Q?KO\&\F3 <*-R[A]M)I/0F"*X@*5W';C))B3?Q
MQQ/*E LJ'UL'3;M1MA/^S-GA;T#U= "ZV[UTZ.L+O*^I#I<BH+89#/I$/,4"
MCB<RI"RR(\=E,:?&D-N%KIT 9\\6<,U5TP'<UN_NKJ[7)RE[&WE48&-QE'AX
M3@Y:.HHQLX@D-Y5UZRFH/Q"P$X#<V0+H<&%W@)2K(@T"_*TZC2LO*WDB640&
M*ED2BTD,? H>1.:TZ1NKC6A]9O\H03LAR9\MDMHIXW!DS5?AHM%1_07]ZM--
M!<>+_&4ZFR[7'>R^X?5&7D(DKC*(XEB=TL4A>A%J(V#K,N=.F-;GH[M1MMN1
M*#M;L V@GQ%1MTY??ILOE[^&Z6Q]SAM6@7B9?_U<G;+AM=^$ ZUE[1EL!'B3
M#-B<I9'<E7+W!<T#">-#*^P&EO,[0&\GUC[VNM7B,JTN:Q'9*THO/A$/.1>1
MI+4@E;2@-,NU3J0 +U(GEP7Y6M]^B_N)CMT =+[GXD?+O@/\O/N*U3=6Z:3Y
M%ZQF,9&81!$&B7I=7V)8#4ZR^B;6&8[,V&1;WS7?0\9NZ#G?(_)C)=\!>'Z9
M+W#Z:?9J_8XZ??^X"+-E2%5$U;56CEXB20WKU2/G+/E@'23',RA'?C4:8\'I
MZF.M]B*U3MCV(&\WL)WOJ?I0FNH A&]GW\@/5_%M#.F/^6Q^95J39),SDDE
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
M(4UXEDQ*Q<'ZE"D-HUPL<MIYI41=BN/&Y-97^\-R-/(,V#.UE;UP\#R-XU9
M>ELP*G&#P6;2E"'!)&_ U8&7&!225&+F8JBG$,-Q-?+LV[,PD@9X&-]0'NH4
M=[!4ZKSSQ3?\9;ZX-;!IXEEQY"4TA/J(6"5T=6(!@M3:!J\E.OGD.]O3D#KR
MT-[FR.]0P>.C?@AW<).0W?K=.E6;*.VS3TR#*8F!8B*"0R=(. 534HP7JSK>
M(A[F;.09Q6>Q333"Q=D;S=7%SOU"PM5$9NO6?7!MJ,6+1@GPF2-X64J4'D-D
M)VC8V8*5D:<I]V86335_^-'5?!4NAF@V4J>^527\0KP>T4;DOH\YLD'(DY0U
M:OWQPSQ.TO)?L\OE9;A8 ^ZZB8,VF4E5) C-2<DV$P1#J-.042FEH]2I=<_P
M7>@ZUAMN/_,=14-E@?]S23JJG[^IQZ;DN'#M$5C) 91G"9RU%F+))7M;LL/6
MUU:/T3-NF6]SE-QU3\U4T<'Q^ .\;$8HY=J=R=?I-9["!DVQ@R_"@\SD/C4K
MPF$Y#:K&;^_13N>[@6EO!?2+I:MA2P&3SB[6Z8$D)%WK#%BD@$#XG"2+J&SK
MAZ./$M0EGO97^VYP.D ''0"JQA/;MV<JJ2 $"4'+VKI"2 U!!0\8;4[)>#2Z
M==!^LWJ74#E$I3\]8S](OAT@XP&9W*0?43)3N)% $;^NZ0<'YUV :*7V/#%*
M>EM'@4_1-.[;CE-O8(>IH@-HU63F%Q+?J[ *%"S.OWZNA^W9)V5\!"&C!Y6R
M J<+ V8#BTYG$:1O#*?[Z.C2$1VHZ7ECL8_=V& ]#^)>+G(MDJ%L U2.LKKH
M*A%?ST.B99DC-W?CZ <N)1Y<HDO7<APN&LJT Z?R=K:\7(19PGJ.]0T7]0+/
MB:2<07*U(16@S18A!AXARR2,C"*5YD\8[R%CW(=6@[J48X4^MD>YA_ZKD]&W
M=<#6XO)KU=,D!NVUDA82?07*9.).6 D<D]<RT_\DM9-_V7'!<5\@#>=MAI!W
MAQ@B?[JZ?COX8K8I\ZQ.ELS#>B.Y#!(,]Y;,(V5PTC$PQ:(TD65,_% H/;+N
MN&^,3HJH5M+OKQGZGY=QN9'>F\K>\H@[BH<^ZLA[BITH;'17<7>MZY-G:;5D
MCB-8"FU!1>7 %6D@.Q6LIE1+\-;G8 _1<G1[\A\_=]L;1LKB7*)<$C&#LH)
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
M3E8GIJ)\')Q\')PTTN:)LR?*(40Y1<([:*SBFM<,W*'O"E602<0RSK1_!?O
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
M5_#7O4??_D+_L_!2^N]__ 502P,$%     @ \#--6C8&Y^R1!P  Q90  !L
M  !C9VYX+3(P,C0Q,C,Q>&5X:&EB:70R,2YH=&WM75MSVC@8?=]?H4UG>YD)
M#E HE*29(80V;!+(8'I[VA&6P)H:R2,)4O+K5S(F3;BD[4*PX_W(A(N%9.G(
MYQSKRI&O1\'QD4\Q.?[CZ,]<#IT*;SRB7"-/4JPI06/%^!!])E1]0[E<_*V&
M"*>2#7V-BOEB&7T6\AN;X%FX9CJ@Q_-TC@YFGX\.HI,<]069'A\1-D&,O-MC
MY4H15^F@DJ=>OH1+K_L>?5,N% <5TL\34LK_4]@S4<W79W&4G@;TW=Z(\9Q/
M[?EKE6*H#Z\9T7ZMD,__M7?O>YI^USD<L"&O1;DUH0/!M<F%-*G.WBXEOLU(
M\V!/!$+6GN6CQZ$-R0WPB 73VHNZ9#AXL:\P5SE%)1O,@A6[H:9$IG#1Q^NX
MM"9VP#B=E[Y0M$5N?CEKG;1ZJ%A8RM_:O&^GV",LAZ8N^D)K,:J53&Y#3(BY
M8'(!'>A:R2G?.10E&Q^[<S;/7"54[A2P1N=#N_D%-3K=JTZWWFMUVD^FA&]_
MJ8#NQQ.W==JJ=UM-%W7>H]Y9$W6;'UINKUMO]YYL84LK"UM72 S0*?7HJ$\E
M>EW8MZI4VD?:ITC2(5-:8I,7'Y/HT$ $@;BVJD:8I)Y&F!/$>/Q!C?N*$88E
MHVJ6Q(!QS#V32U,:(XE6U:(S7OO,\Q&6%.$@, EXP9A0FU(4RQ-<B8"12$37
M)7$_A\^?E:N'\\K1N!_0.7Y](0F5.0-C@$-%:_,WAX2I,,#3&N,1+E&DP_O5
M:.MG0J5F'@[B.HJJ:Q8<:^?;JE.M5*U\:D-W3>8GCI75B93U0)/EL'+!J;ZM
MK@W..X6U80\E6WSKY$OEK2=;*#N5<N67DCV(D)BA8?!6(>;O]E[OS2/$-*@5
MP^^H<)\"EBR+D,_0WOL=NKU^L\2VZ- CD:WZ,V6)[+5=OVQ:1;E5F*\+OA+#
MF@ABA3?F*EX";7XT4=S<7KW7?/ZL5#EL=#ZV>]VO%L16>ZT%)8KCSH7^US"\
M:G8;S78/=3ZWFUWWK'6U K*?L+:/O6]#*<:<Y.*L>AZE@\%AK+!:A#6#*8JD
M&\W+\9N(FT1^"VYC<X\#XY)?1C VQ)#3[ZB!.29X'[6XY_SRM9=*_ K5W0)X
M2@-\;7Q_AZB55[-O-7([ \(^WX+PG]@WB!Y9)ACJ4<_GYG3#Z<9<VPU:NZ93
MPV1S("1G>+O09)4SL79DDC--[OHXI.C#J'^VN;QFC"@?J!QA/MTN+EEE29:=
MI3F6PI#DQ/D$;K+40*7:IS+ G"BPD_1H99)$V58;)V-,V5XSYO] DRS[R7LA
MS5&.7!Q0A1I"AD)BS00'=UD [ 3+/B8"K"5%NID,9^*;<?"6E2!=8J6PYX\5
MU7H3LH#!9(DLJ&ZN"<HW;=UGTUHV;]V#LV2#+$*.N1XCERE-1X%)RMR8::;0
MA**>*8VD&EVP$;,3"UPFOU'-P'\6H.R-#2[04Y8B.4V&2V=C/L1RBLX'&KK*
M%C&*P0''28].)L.2EJTA'K7X<0 M&N@M T]YB"V2VN$%=*$)>,HB1C$XX"GI
M4<ID6'+NG(.)+&+S-S8%!P=)CSPFQ TA*48-X>R#B:R<+"W&VI^A!$:2'K5,
MA"P;4R2;3K+Y?19X21;H@2YQ@*>*8>02[J 3'^QDQ6#D#"+PDO3H94)DH=^9
M)Y#K($)1U[F(7AO.)P>!P2R2)H(*_"4]LID,9:Y$U-FE0@?=.,+\@;TL+DL4
MT..5+JU,ABE=&DJJ3#UA#PO3NA]1&2WY;Z(K;(O#0NP)JFQ[!D.#9FEFI<0W
M+ "_28^.)L,BEW(EI$(M3DRCYDJR"=9T/M\%O&>Q&\"B!-:3'ME,BC1RPCR[
M80V,W</8/;C+SX@"PRXP=@]VLIXEYOPX%!)63H*?@)\\R)1KIF]FR\UA5<O*
MH?P? (&OI$<QDV%+#[-KS,%4P%2>B*G8:V"6)N/$ %?+)42<VSW$HLUJ6WQ"
ME8ZVZ;ZX:(#GP(9B8#EKF//Q'":0K<3G(X\6D)Z;#! Q M-)CUPF0Y1/C&J.
M1W;<,K1+]:&'; 56,4A@*^G1S:38HIC@YD9,A=2SZR:1.[6K]=%+U\=\Z&/V
M:BOS^[/I/0V?\4WNS<!RLD0B-\2,[R/7N0##6>H^L]B W:1'*A-ERLN>,1;;
ME?IJ"Q-BLFDM<X3 7=(CFCOF3$R64\DFFP]@9M-6MM#7#,[RM%G2X13=98KM
M2895,+"/)7C*ROOP>L/NM<?&"M7)!'./$M28]JGDU)1"P=@_[&@))O/S^63H
M$O/Q 'MZ+,TA=-5K.M!#ME)OYHB!YZ1'/W=,GLM/, BS<MM*8:3CW#P]*C(9
M848F;<4P(]I)"X98UD+T"#N-99,@V;0.(9FV/T$)/^7R: P!"WG2#.ET6[WF
M%]064ONH/C*)>!@F)C_:=$KPDR?-EMA/ZG:C,=BW$EHF8"L/$^5VPCZCRLX)
MH_S&_,.<L)W."<LF;[)O,%?88P/F1=W#X#2/UC\,3I,%QOR8MP_.\EB3]I^T
MMQQHW _HO-QWJFG-U7M\U+>Q[H)U)U)\PDK1UJI0S'8MU>R^(9I-Z.$U(]J/
M<W,W5GPIY']$P7TE@K%>CK(V$_>>^X),S8NO1\'QOU!+ P04    " #P,TU:
M54_#'B #  #B"0  '    &-G;G@M,C R-#$R,S%X97AH:6)I=#(S,2YH=&W5
M5FMO&CD4_=Y?<9MHTUV)(?,B/!LI(9"B32 B5.FWRC.^PW@[V,CV)&5__=YY
ML*%!V:;M:A\(#6/?<Q_GVCYXD-I5=CI(D?'35X/7C@,7*LY7*"W$&IE%#KD1
M<@EW',TG<)P:-53KC1;+U(+O^BVX4_J3N&>5W0J;X>DVSN"X&@^.RR2#2/'-
MZ8"+>Q#\[8%HL3B,/"]"-W!#[O/(#UM^IXMAP+LG89=_] [(E>"5C[&;#-\>
MK(1T4BSR]]K^VO8?!+=ISW/=GPZ^Q#&])&BDK%4KLA/4XF?KL$PL9:\D0 Z)
MDI8*TY2H>MW/]^(X6X]894KW#MWRTR\L3L)6(MOTWIQIP;(W#<.D<0QJD51F
M(W['*G0Y?*CID7<F)&[I>D&'.(X^O)N<3Q;@!TUOK^AG"7V%5M'(->.<EMO)
M,+&][I<T?\N-%<GF;V[8M\0)GU88-EL[4V78>FXG6TR[$/7WI?NG5M4O=NYP
M-KT=31<P&\-D>C&Z&=&#AO/1Y>1V,9J/+N#F_?G59 AGP^'L_70QF5[">#*_
M_M[N_<#Z/NOV@YWJ/FE4N->H-C7J#B%E]PC"F)P42N4:-*Z5M@9XJ5ECC'3.
M] :\H%$J5 ,>A$T)9=886[ *;(H0*VE4)BJ?1$@F8RJ-*-!$H5T&F.0@BNTC
M:9[@5JL,U#WJ'7B5NA!)(>,LYUBXE/'/I,P),"\!H!*2S:7$S_2C:899H230
M=ZST"CS7^142I4O'#3(-*(M0%QCC*J*$@5=2"9MP5U5>B'1-A!+OA(PV5%."
M&F6,15;#!/^S075I<UP*8VN'VT?"?UFD@5NGTZAI%H37RE@'DX1Z*F@]&,7@
M59R?QR)#F*HF!$'@^&WOI$.+4+Q[+3?P6D>'K6Z_LKDG;L>K;+X?$K)1MKW$
MNF[;[?[2A)>+W']FDQX=ANV^*9]P.3^C@[QX-YM/%[,I7%W=_ \)G=-B*]F
M:V8,B]/<H+7F&[3GWZN^$->M)!P=>B=N?ZL+^QMK6\Q3I7R1+.[>2>ALB.+P
M]#1FK#@>S]Y2ZAZYCRXL(EW*[;[+5_[;ZV=UQSHN[W9_ %!+ P04    " #P
M,TU:B2WBO?X'   [.   '    &-G;G@M,C R-#$R,S%X97AH:6)I=#,Q,2YH
M=&WM6VUOVS@2_GZ_@I=@NPE@.Y)?$L=) Z1MBLT><+LH"O2^+2AI9!.A1"U)
MV?'^^ITAI=B)[=3M.=DZ<3XXED@.9ZCGF1>*/A_93%Z<CX G%_\Z_W>SR3ZH
MN,P@MRS6P"TDK#0B'[(O"9@;UFQ6O=ZK8JK%<&19.VCWV!>E;\28^W8KK(2+
M6L[YD;\^/W*3G$<JF5Z<)V+,1/)V3YS$ >>]( S2,.@>A_U^IY]VPV[8[W6C
M-#Z._@CW<"AV]V.,G4IXNY>)O#D"FG]PTB[LV40D=C0(@^"GO7O]+-S:)I=B
MF ^<MMB:JMRB%AJE^J\+PC<YJ&Z.E51ZL!^XOS-J::8\$W(Z^/E2"RY_;AB>
MFZ8!+5+?;,1?@!:A<>YR4EF+HZ7(H;8^;)/)5__[Y?K=]6?6"5OA@H8KM=^,
MX1G70WP:5A6#4U1V3D:,3Q_T$RU$=\E"^,D3B)7F5JA\4.8):.JU=_'^ZM/G
MZX_7[R\_7__VWS6->4;5]RZN&^R3BD!;]FN+?1%2@K4-%N,-D4Z9'7'[9K_7
M/UM']9Y3W?)(0MT:*8U+T403)"\,#.HO9XDPA>33@<B=2F[0624K4M:JC,2=
MC4F/F,OJT;J%]LT5]TY/6R?!"='/(EAL4D]<,;/EF'EDD\6V=JO?ZZ]L#5KA
MRK;'I'9:8:^])5+[QZUN9[TE.'*KZU<8GZ$I>/YVK[-7#RAXDJ"W'@0L=!BH
MY3W2M5W<4N=YXDI(%Y^X*IZ+#LZ+S_S80Q..M\6$:S;B8V :Q@(F&$CM2!AV
MF><EE^P3% JIKG+V4>F,A4'S/TRE&%:'.=SB/UU4/@Q)?WIV;RU>#03:VP^!
M=]S@@\>GG$W93:XF$I(A-#P2M(= HL"P7&&^A=*XR!G/IZS,K2[)>6,&YI(Q
MQ 9G&5Z13BSE,=[23&7",JM\OX4..<1@#-=3ZI+Q&\!YYV0:O)>@,CBE=)D<
MSD$=8J$Q<\-N.0YG+H2RR4C$(V9*^IB-GX"&2@@9D DC,<6C;'$B[ @-- 7$
M3D&26Z!JBAXB/A-<E&@ZOPRO&.:=%PQS8*G($4B$R1EP&HAQ[([->JY=Y"FZ
M0N?T\'LLRP1E(CCG4-) 8 LMIZQ ;!$MB"Y2SG!?0<X\F!JIE0@2W* >I<0.
M"':%B'33&:=/S,V(I5)-3,T$#4-AK.8X$:>;7F_4LC$':%,KLZ#M*\9T=_LQ
M_?D> -[L]]OAR9FI4%NEY>3J5)H*O#PPAPX=UXQK<#A$7 G*P!$O# PEUL*,
M: 1UR]#3D[>G:TS!8ZE,B>,H!FA<*M>GT"J&!&\;=H#X2P ![4%V=1N/>#X$
M=HGN]5,IL4?8X<VP=P!>B["7^"M_*:@0RST12#XC'SS'#X]7TF7MB=)[$Z4X
M$=GYD#78@W*@^Y7+TS!A^TESP ]7TN:[C?!%VK/:\0$,SHP <OG"U]'=H%0F
MYJ59?PCE%!$@4JN9?):B2HT"T"V/A7'.'GM![N10_3P+$_.A1H/D#OI5FC*#
M;Z,*0]0H,&2@+D9)D;A=,5-&1B2":T$&")],N>"7DZ324(+CG(5QV9 +#<H
M*F0Q%-&@@M.3*B6GB(9F.25FB1*.\&G7?+:(WR*@CAAT<#PDSQ%D7@"UHI=(
MK;7=^@+#U@\(:Q,-R3D6"?&'&Y6[O2=ND'M41A"IN$YJ@"/E!(^$%'9*J=:R
M:8GNC@L.YIZI][K.E2$NP-Y6!A4EELX&/02EAG&L=.(4< 7)$'+,^"2R#5N@
M(!I3%RRV/*.0[J+ &+?CU%J<BE\&IZ[&7);.IQ/@($VQ@!!CA(I94@C<Y8%K
MQ"A_N;PV<!3"@1A?C*] (E7:U1JL$T7Y76^@\BK]>M7-HKIP<UX!_$K4NTXT
MP8X%7V-!\C)8\,$#;!&HM!U5%0&N92D;OB&>4"*FXKC4!,>YK&>)U$P9B_?I
M/1+*,K@^[,\2DR84?;!B2(J\0D__H'>E.%;XX';2:)/-;<-ZO0Z]5B-N[E)$
MBA&.AY"XX.G6HPIL4R;%#<AJ6^U!_\;_O43/Q;T?E%"]S6\=_ -T^N[= _?*
M(*G)V)AY: H8\X28.6N"]#>D@@MUSIUV'&L=J[2YR[[<#1299<):@$?"8:0P
MOZ/V1*!^3L@!T@:CCZ'HAO^IXJJY#G^6 M5WO"[SV.W!'>XV"5[3)L&EQ!P>
MYQ:(?]HJHDVG6 "BM<J<[HKU"? ;2H5\3N^2(5>-N!<@]1;N-W&@JJO]1MT2
MI\X3'&C@SJ>OY$M5P^ 038<.D*XN'S.8C)DRR[C&!7'&5+%TZ6;W+M=Z;57\
M):94J4;GVD D@@L)B&7W"JT"?<-G)"(?*SD&2DMR/JS>!.HJBD!62#4%;)V,
ME(\;_!ZED (;R=E:B\ \<N=$[ATR>N;C)B>M_O<=-^FV^B>G&S_"T3YM];NK
MASXF]K&V=BOH/L4IEJ#?V[C4,&B=!$]QD*?7Z6Q\88-6KWNR>5W[K<[Q>BN[
MIG]?XL3<T;Q_VA5_0$>UF+!M953Y")$NZ91$V&FXTZP_=HSIKV74F_WP./B6
MA[/Y[& +C/Y!$?EN^D34VCV2[WTD;_:[F#.YS\5CNEN7N&\!#G9&OW2CJQJ!
M#JRC(<R]6F>U4C^X.]BY@!T;=D:_]*#_NP8C$J@.LKT?"4C9U2W$);V=9;_Y
MK7OZ<=3![_[L )>+[8=K[)[4YE2S=VD+I%#&'5D=^ -*8UCY([=JWR28#>$1
M>M/2KAZRZE=:*W\E5GWZ'^\=N1\-_@U02P,$%     @ \#--6I"M<K8("
M=3@  !P   !C9VYX+3(P,C0Q,C,Q>&5X:&EB:70S,3(N:'1M[5MM4R*Y%OY^
M?T6NULYJ%2 TH(*.5<XXUK5NU=VMV:G=_;85.J<A97?2FZ1!]M??<Y)N00&'
M<=4=E/G@T)WDY)SD><Y+"*<CEZ5GIR/@XNQ?I_^NU]F%CHL,E&.Q >Y L,)*
M-62_";#7K%XO>WW4^=3(X<BQJ!EUV6_:7,LQ#^U.NA3.*CFG!^'Y],!/<CK0
M8GIV*N282?%^1T:#;K/7B41WT.*==J]WW(;>4?/X*!%QIQWUHC]:.S@4NX<Q
MUDU3>+^3254? <W?/XIR=S*1PHWZK6;SAYT[_1S<N#I/Y5#UO;;8FFCE4 N#
M4L/'!>%/.:AJCG6J37^WZ?^=4$L]X9E,I_T?SXWDZ8\URY6M6S R"<U6_@5H
M$1KG'R>EM3@ZE0HJZUL1F?SI]_]<?;CZPMJM1O0T9JUL>YK5RK@9XA8ZG?=[
M:.&<C!@A ^:95J^S9/7"Y )B;;B36O4+)<!0KYVSCY\^?[FZO/IX_N7JI_^M
M:<P+JKYS=E5C%Z"4M.P21J;&8C!.)E/F1MR]V^T>GZRC=-<K[?@@A:IUH TN
M0AV53WENH5]].!'2YBF?]J7RROA!)Z6L@79.9R3N9$QZQ#PM-]4O<6@NJ=KK
M-8Z:1\16AS!QHIJX)'+#$_G B<6VJ''</5[9VFRT5K8])+7=:'6C#9%Z?-CH
MM-=;@@._NF&%<0]MSM7[G?9.-2#G0J!S[S=9RV.@DO= URB_H<[SE$TA6=QQ
MG;\4$;S3;]T"_;X)AYMBPA4;\3$P V,)$XR[;H2T/E>JX"G[#+DVCFG%+K7)
M6*M9_R_3"4;AH8(;_,_DI?="TO=.[JS%FX% M/D0^, M;CSN<C9EUTI/4A!#
MJ 4DF  !H<$RI3$]0VE<*L;5E!7*F8*<-R9L/G=#;'"6X1/IQ!(>XRO#="8=
M<SKT6^B@( 9KN9E2EXQ? \X[)]/B.X'*X)2I3_QP#NH02X.)'G93.)SYX,DF
M(QF/F"WHSVS\! R40LB 3-H4,T)*+B?2C=! FT/L%22Y.:JF:1-Q3W!1!M/Y
M97C#,&^_8I@#2Z1"(!$F9\"I(<:Q.S:;N7:I$G2%WNGAYS@M!,I$<,ZAI(;
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
M35IX<\;O:!P  $Q6   <              "  0    !A,C R-&EN<VED97)T
M<F%D:6YG<&]L:6,N:'1M4$L! A0#%     @ \#--6D8L:W1_5@( ]>8> !$
M             ( !HAP  &-G;G@M,C R-#$R,S$N:'1M4$L! A0#%     @
M\#--6J<[)"?'&P  Q3\! !$              ( !4'," &-G;G@M,C R-#$R
M,S$N>'-D4$L! A0#%     @ \#--6OPA;UF2,P  W1L" !4
M ( !1H\" &-G;G@M,C R-#$R,S%?8V%L+GAM;%!+ 0(4 Q0    ( / S35H$
M.GBX2H0  !7X!0 5              "  0O# @!C9VYX+3(P,C0Q,C,Q7V1E
M9BYX;6Q02P$"% ,4    " #P,TU:6=?>561( @ QNP( %
M@ &(1P, 8V=N>"TR,#(T,3(S,5]G,2YJ<&=02P$"% ,4    " #P,TU:[OJ@
M=?.E 0":61  %0              @ $>D 4 8V=N>"TR,#(T,3(S,5]L86(N
M>&UL4$L! A0#%     @ \#--6N]D&Q)2^@  (;X+ !4              ( !
M1#8' &-G;G@M,C R-#$R,S%?<')E+GAM;%!+ 0(4 Q0    ( / S35HV!N?L
MD0<  ,64   ;              "  <DP" !C9VYX+3(P,C0Q,C,Q>&5X:&EB
M:70R,2YH=&U02P$"% ,4    " #P,TU:54_#'B #  #B"0  '
M    @ &3. @ 8V=N>"TR,#(T,3(S,7AE>&AI8FET,C,Q+FAT;5!+ 0(4 Q0
M   ( / S35J)+>*]_@<  #LX   <              "  >T[" !C9VYX+3(P
M,C0Q,C,Q>&5X:&EB:70S,3$N:'1M4$L! A0#%     @ \#--6I"M<K8("
M=3@  !P              ( !)40( &-G;G@M,C R-#$R,S%X97AH:6)I=#,Q
M,BYH=&U02P$"% ,4    " #P,TU:)&MGOBH%   ['P  '
M@ %G3 @ 8V=N>"TR,#(T,3(S,7AE>&AI8FET,S(Q+FAT;5!+ 0(4 Q0    (
M / S35I%S@1W) 4  # ?   <              "  <M1" !C9VYX+3(P,C0Q
H,C,Q>&5X:&EB:70S,C(N:'1M4$L%!@     .  X T0,  "E7"     $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>141
<FILENAME>cgnx-20241231_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:cgnx="http://cognex.com/20241231"
  xmlns:country="http://xbrl.sec.gov/country/2024"
  xmlns:currency="http://xbrl.sec.gov/currency/2024"
  xmlns:cyd="http://xbrl.sec.gov/cyd/2024"
  xmlns:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2024"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2024"
  xmlns:us-gaap="http://fasb.org/us-gaap/2024"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="cgnx-20241231.xsd" xlink:type="simple"/>
    <context id="c-1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2024-06-28</instant>
        </period>
    </context>
    <context id="c-3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2025-01-26</instant>
        </period>
    </context>
    <context id="c-4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-10">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-11">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-12">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-13">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-14">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-15">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-16">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-17">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-18">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-19">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-20">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-21">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-22">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-23">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-24">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-25">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-26">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-28">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-29">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-32">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-33">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-34">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-35">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-36">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-37">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-38">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-39">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-40">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-41">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:ComputerHardwareAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-42">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:ComputerHardwareAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-43">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-44">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-45">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologiesAndOtherIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-46">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologiesAndOtherIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-47">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-48">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-49">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-50">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-51">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-52">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-53">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-54">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-55">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-56">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-57">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-58">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-59">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-60">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-61">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryBillSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-62">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryBillSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-63">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-64">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-65">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-66">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-67">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-68">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-69">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-70">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-71">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-72">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-73">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-74">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-75">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-76">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-77">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-78">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-79">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-80">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-81">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-82">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-83">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-84">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-85">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-86">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-87">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-88">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-89">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-90">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:HardwareAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-91">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:HardwareAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-92">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-93">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-94">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-95">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-96">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="c-97">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A88000SquareFootPremisesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="c-98">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="c-99">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="c-101">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AachenGermanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-102">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:AachenGermanyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-103">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SACSiriusAdvancedCyberneticsGmbHMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-104">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-105">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-106">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-107">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-108">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-109">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-110">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-111">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OtherIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-112">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-113">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-114">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-115">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-116">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-117">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-118">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-119">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-120">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-121">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-122">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-123">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:GBP</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-124">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:GBP</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-125">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-126">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-127">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CHF</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-128">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CHF</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-129">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-131">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-132">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-133">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-134">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-135">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-136">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-137">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-138">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-139">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-140">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-141">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-142">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-143">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-144">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-145">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-146">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-147">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-148">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-149">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-150">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-151">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-152">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-153">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2018-04-25</instant>
        </period>
    </context>
    <context id="c-154">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-12</instant>
        </period>
    </context>
    <context id="c-155">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-156">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-03</instant>
        </period>
    </context>
    <context id="c-157">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-158">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-159">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-160">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-10-02</endDate>
        </period>
    </context>
    <context id="c-161">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2022-10-03</startDate>
            <endDate>2023-10-01</endDate>
        </period>
    </context>
    <context id="c-162">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2023-10-02</startDate>
            <endDate>2024-09-29</endDate>
        </period>
    </context>
    <context id="c-163">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2024-09-30</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-164">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-05-03</instant>
        </period>
    </context>
    <context id="c-165">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2021And2007StockOptionAndIncentivePlansMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-05-03</instant>
        </period>
    </context>
    <context id="c-166">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-04</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-167">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-168">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-169">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-170">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-171">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-172">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-173">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-174">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-175">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-176">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-177">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-178">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-179">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-180">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-181">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-182">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-183">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-184">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-185">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-186">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-187">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-188">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-189">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-190">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-191">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-192">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-193">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-194">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-195">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-196">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-197">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-198">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:RevenueCommissionersIrelandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-199">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:StateAdministrationOfTaxationChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-200">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">country:JP</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">country:KP</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-202">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-203">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c-204">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-205">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-206">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-207">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-208">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">cgnx:OperatingLossCarryforwardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-209">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">cgnx:TaxCreditCarryforwardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-210">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowanceByDeferredTaxAssetAxis">cgnx:TaxCreditCarryforwardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-212">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-213">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-214">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-215">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-216">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-217">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-218">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-219">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-220">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-221">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-222">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-223">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-224">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-225">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-226">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-227">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-228">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-229">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-230">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-232">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-233">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-234">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-235">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-236">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-237">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-238">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-239">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-240">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-241">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-242">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:ResearchDevelopmentAndEngineeringExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-243">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:ResearchDevelopmentAndEngineeringExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-244">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:ResearchDevelopmentAndEngineeringExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-245">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:SegmentGeneralAndEngineeringExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-246">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:SegmentGeneralAndEngineeringExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-247">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementBusinessSegmentsAxis">cgnx:SegmentGeneralAndEngineeringExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-248">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-18</instant>
        </period>
    </context>
    <context id="c-249">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-18</startDate>
            <endDate>2023-10-18</endDate>
        </period>
    </context>
    <context id="c-250">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c-251">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-09-30</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-252">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-18</instant>
        </period>
    </context>
    <context id="c-253">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-18</instant>
        </period>
    </context>
    <context id="c-254">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-18</instant>
        </period>
    </context>
    <context id="c-255">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:UnusualOrInfrequentItemAxis">us-gaap:FireMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-256">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:UnusualOrInfrequentItemAxis">us-gaap:FireMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-257">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2025-02-12</instant>
        </period>
    </context>
    <context id="c-258">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-259">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-260">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-261">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-262">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-263">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-264">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-265">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-266">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-267">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-268">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-269">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-270">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-271">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-272">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-273">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-274">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-275">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-276">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-277">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-278">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-279">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-09-30</startDate>
            <endDate>2024-12-31</endDate>
        </period>
    </context>
    <context id="c-280">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:TradingArrAxis">cgnx:JoergKuechenRuleTradingArrangementCommonStockPurchaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <context id="c-281">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:TradingArrAxis">cgnx:JoergKuechenRuleTradingArrangementCommonStockSaleMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-12-31</instant>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="lease_component">
        <measure>cgnx:lease_component</measure>
    </unit>
    <unit id="sqft">
        <measure>utr:sqft</measure>
    </unit>
    <unit id="sgd">
        <measure>iso4217:SGD</measure>
    </unit>
    <unit id="eur">
        <measure>iso4217:EUR</measure>
    </unit>
    <unit id="cny">
        <measure>iso4217:CNY</measure>
    </unit>
    <unit id="mxn">
        <measure>iso4217:MXN</measure>
    </unit>
    <unit id="huf">
        <measure>iso4217:HUF</measure>
    </unit>
    <unit id="gbp">
        <measure>iso4217:GBP</measure>
    </unit>
    <unit id="jpy">
        <measure>iso4217:JPY</measure>
    </unit>
    <unit id="chf">
        <measure>iso4217:CHF</measure>
    </unit>
    <unit id="cad">
        <measure>iso4217:CAD</measure>
    </unit>
    <unit id="vote">
        <measure>cgnx:Vote</measure>
    </unit>
    <unit id="group">
        <measure>cgnx:group</measure>
    </unit>
    <unit id="segment">
        <measure>cgnx:Segment</measure>
    </unit>
    <dei:AmendmentFlag contextRef="c-1" id="f-30">false</dei:AmendmentFlag>
    <dei:DocumentFiscalYearFocus contextRef="c-1" id="f-31">2024</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus contextRef="c-1" id="f-32">FY</dei:DocumentFiscalPeriodFocus>
    <dei:EntityCentralIndexKey contextRef="c-1" id="f-33">0000851205</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate contextRef="c-1" id="f-34">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:EntityCommonStockSharesOutstanding contextRef="c-3" decimals="0" id="f-35" unitRef="shares">169865714</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityPublicFloat contextRef="c-2" decimals="0" id="f-36" unitRef="usd">8001170186</dei:EntityPublicFloat>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="c-1" decimals="-3" id="f-419" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="c-4" decimals="-3" id="f-420" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="c-5" decimals="-3" id="f-421" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-39" id="f-435">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-41" id="f-437">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-43" id="f-443">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-45" id="f-445">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-47" id="f-447">P6Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <cgnx:ProductWarrantyPeriod contextRef="c-50" id="f-451">P1Y</cgnx:ProductWarrantyPeriod>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax contextRef="c-1" decimals="-3" id="f-475" unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax contextRef="c-4" decimals="0" id="f-476" unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-52" id="f-477">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-41" id="f-478">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-53" id="f-479">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-54" id="f-480">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-55" id="f-481">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <cgnx:MaximumInvestmentOfCompanyInPartnership contextRef="c-1" decimals="INF" id="f-482" unitRef="number">0.05</cgnx:MaximumInvestmentOfCompanyInPartnership>
    <cgnx:ProductWarrantyPeriod contextRef="c-50" id="f-483">P1Y</cgnx:ProductWarrantyPeriod>
    <cgnx:RevenuePaymentTerms contextRef="c-50" id="f-484">P30D</cgnx:RevenuePaymentTerms>
    <us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration contextRef="c-7" id="f-922">http://fasb.org/us-gaap/2024#OtherAssetsNoncurrent</us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration contextRef="c-6" id="f-923">http://fasb.org/us-gaap/2024#OtherAssetsNoncurrent</us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration contextRef="c-7" id="f-924">http://fasb.org/us-gaap/2024#OtherLiabilitiesNoncurrent</us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration contextRef="c-6" id="f-925">http://fasb.org/us-gaap/2024#OtherLiabilitiesNoncurrent</us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-169" id="f-1020">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-172" id="f-1023">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-174" id="f-1025">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-173" id="f-1026">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-175" id="f-1027">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
      contextRef="c-1"
      decimals="INF"
      id="f-1160"
      unitRef="number">0.50</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-4"
      decimals="INF"
      id="f-1469"
      unitRef="segment">1</us-gaap:NumberOfReportableSegments>
    <ecd:TrdArrDuration contextRef="c-279" id="f-1573">P360D</ecd:TrdArrDuration>
    <dei:DocumentType contextRef="c-1" id="f-1">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport contextRef="c-1" id="f-2">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate contextRef="c-1" id="f-3">2024-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport contextRef="c-1" id="f-4">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="c-1" id="f-5">001-34218</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="c-1" id="f-6">COGNEX CORP</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="c-1" id="f-7">MA</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="c-1" id="f-8">04-2713778</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="c-1" id="f-9">One Vision Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="c-1" id="f-10">Natick</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="c-1" id="f-11">MA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="c-1" id="f-12">01760</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="c-1" id="f-13">508</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="c-1" id="f-14">650-3000</dei:LocalPhoneNumber>
    <dei:Security12bTitle contextRef="c-1" id="f-15">Common Stock, par value $.002 per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="c-1" id="f-16">CGNX</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="c-1" id="f-17">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer contextRef="c-1" id="f-18">Yes</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers contextRef="c-1" id="f-19">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus contextRef="c-1" id="f-20">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="c-1" id="f-21">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="c-1" id="f-22">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="c-1" id="f-23">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="c-1" id="f-24">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag contextRef="c-1" id="f-25">true</dei:IcfrAuditorAttestationFlag>
    <dei:DocumentFinStmtErrorCorrectionFlag contextRef="c-1" id="f-26">false</dei:DocumentFinStmtErrorCorrectionFlag>
    <dei:EntityShellCompany contextRef="c-1" id="f-27">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat contextRef="c-2" decimals="0" id="f-28" unitRef="usd">8001170186</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding contextRef="c-3" decimals="0" id="f-29" unitRef="shares">169865714</dei:EntityCommonStockSharesOutstanding>
    <cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock contextRef="c-1" id="f-38">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As part of our overall &#x201c;Enterprise Risk Management&#x201d; program, the Company has implemented a cybersecurity risk management program that is informed by recognized industry standards and frameworks. Our cybersecurity risk &lt;/span&gt;&lt;/div&gt;management program includes a number of components, including information security program assessments, penetration testing, and threat simulation exercises that are conducted periodically by both internal and external resources, as well as continuous monitoring of critical risks from cybersecurity threats using automated tools. During onboarding and periodically thereafter, we conduct trainings for the Company&#x2019;s employees and contractors about cybersecurity risks, including sending test phishing emails for training purposes to all users of the Company&#x2019;s email system.</cyd:CybersecurityRiskManagementProcessesIntegratedTextBlock>
    <cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock contextRef="c-1" id="f-37">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As part of our overall &#x201c;Enterprise Risk Management&#x201d; program, the Company has implemented a cybersecurity risk management program that is informed by recognized industry standards and frameworks. Our cybersecurity risk &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;management program includes a number of components, including information security program assessments, penetration testing, and threat simulation exercises that are conducted periodically by both internal and external resources, as well as continuous monitoring of critical risks from cybersecurity threats using automated tools. During onboarding and periodically thereafter, we conduct trainings for the Company&#x2019;s employees and contractors about cybersecurity risks, including sending test phishing emails for training purposes to all users of the Company&#x2019;s email system. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As part of our cybersecurity risk management program, we maintain processes to assess and review the cybersecurity practices of third-party vendors and service providers, including utilization of software to evaluate, assess, and monitor cybersecurity risks posed by third parties that provide critical services or handle confidential information. Additionally, prior to engaging a critical third-party vendor or service provider, and periodically thereafter, we conduct security audits of such third parties, and, as appropriate, include security requirements in contracts. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We, like other companies in our industry, face a number of cybersecurity risks in connection with our business. Although such risks have not materially affected us, including our business strategy, results of operations, or financial condition, to date, we have, from time to time, experienced threats and security incidents related to our data and systems, including denial of service and phishing attacks. For more information about the cybersecurity risks we face, see the risk factor entitled &#x201c;Information security breaches may adversely affect our business&#x201d; in Item 1A- Risk Factors.&lt;/span&gt;&lt;/div&gt;</cyd:CybersecurityRiskManagementProcessesForAssessingIdentifyingAndManagingThreatsTextBlock>
    <cyd:CybersecurityRiskManagementProcessesIntegratedFlag contextRef="c-1" id="f-39">true</cyd:CybersecurityRiskManagementProcessesIntegratedFlag>
    <cyd:CybersecurityRiskManagementThirdPartyEngagedFlag contextRef="c-1" id="f-40">true</cyd:CybersecurityRiskManagementThirdPartyEngagedFlag>
    <cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag contextRef="c-1" id="f-41">true</cyd:CybersecurityRiskThirdPartyOversightAndIdentificationProcessesFlag>
    <cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock contextRef="c-1" id="f-43">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our cybersecurity risk management program and related operations and processes are managed by our Information Security team (the &#x201c;IS Team&#x201d;), which is led by the Senior Director of Information Security. The Senior Director of Information Security role is currently held by an individual who has over fifteen years of experience managing information security programs. The IS Team is responsible for assessing risks from cybersecurity threats, including their potential business impact and likelihood of occurrence, as well as implementing risk mitigations and remediations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The IS Team provides reports on cybersecurity risk management processes to the Chief Financial Officer and other leaders of the Company on a quarterly basis, or as potentially critical risks from cybersecurity threats or incidents arise. &lt;/span&gt;&lt;/div&gt;The IS Team provides reports on a semi-annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter. The Audit Committee periodically reports on cybersecurity risk management to the full Board of Directors. The Board of Directors, as a whole and through its committees, has responsibility for the oversight of risk management.</cyd:CybersecurityRiskProcessForInformingBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock>
    <cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock contextRef="c-1" id="f-42">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our cybersecurity risk management program and related operations and processes are managed by our Information Security team (the &#x201c;IS Team&#x201d;), which is led by the Senior Director of Information Security. The Senior Director of Information Security role is currently held by an individual who has over fifteen years of experience managing information security programs. The IS Team is responsible for assessing risks from cybersecurity threats, including their potential business impact and likelihood of occurrence, as well as implementing risk mitigations and remediations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The IS Team provides reports on cybersecurity risk management processes to the Chief Financial Officer and other leaders of the Company on a quarterly basis, or as potentially critical risks from cybersecurity threats or incidents arise. &lt;/span&gt;&lt;/div&gt;The IS Team provides reports on a semi-annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter. The Audit Committee periodically reports on cybersecurity risk management to the full Board of Directors. The Board of Directors, as a whole and through its committees, has responsibility for the oversight of risk management.</cyd:CybersecurityRiskBoardOfDirectorsOversightTextBlock>
    <cyd:CybersecurityRiskRoleOfManagementTextBlock contextRef="c-1" id="f-44">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Our cybersecurity risk management program and related operations and processes are managed by our Information Security team (the &#x201c;IS Team&#x201d;), which is led by the Senior Director of Information Security. The Senior Director of Information Security role is currently held by an individual who has over fifteen years of experience managing information security programs. The IS Team is responsible for assessing risks from cybersecurity threats, including their potential business impact and likelihood of occurrence, as well as implementing risk mitigations and remediations.&lt;/span&gt;&lt;/div&gt;</cyd:CybersecurityRiskRoleOfManagementTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag contextRef="c-1" id="f-45">true</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleFlag>
    <cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock contextRef="c-1" id="f-46">The Senior Director of Information Security role is currently held by an individual who has over fifteen years of experience managing information security programs.</cyd:CybersecurityRiskManagementExpertiseOfManagementResponsibleTextBlock>
    <cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock contextRef="c-1" id="f-47">The IS Team is responsible for assessing risks from cybersecurity threats, including their potential business impact and likelihood of occurrence, as well as implementing risk mitigations and remediations.&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The IS Team provides reports on cybersecurity risk management processes to the Chief Financial Officer and other leaders of the Company on a quarterly basis, or as potentially critical risks from cybersecurity threats or incidents arise. &lt;/span&gt;&lt;/div&gt;The IS Team provides reports on a semi-annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter. The Audit Committee periodically reports on cybersecurity risk management to the full Board of Directors. The Board of Directors, as a whole and through its committees, has responsibility for the oversight of risk management.</cyd:CybersecurityRiskProcessForInformingManagementOrCommitteesResponsibleTextBlock>
    <cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag contextRef="c-1" id="f-48">false</cyd:CybersecurityRiskMateriallyAffectedOrReasonablyLikelyToMateriallyAffectRegistrantFlag>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock contextRef="c-1" id="f-49">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The IS Team provides reports on cybersecurity risk management processes to the Chief Financial Officer and other leaders of the Company on a quarterly basis, or as potentially critical risks from cybersecurity threats or incidents arise. &lt;/span&gt;&lt;/div&gt;The IS Team provides reports on a semi-annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleTextBlock>
    <cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock contextRef="c-1" id="f-50">The IS Team provides reports on a semi-annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter. The Audit Committee periodically reports on cybersecurity risk management to the full Board of Directors. The Board of Directors, as a whole and through its committees, has responsibility for the oversight of risk management.</cyd:CybersecurityRiskBoardCommitteeOrSubcommitteeResponsibleForOversightTextBlock>
    <cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag contextRef="c-1" id="f-51">true</cyd:CybersecurityRiskManagementPositionsOrCommitteesResponsibleReportToBoardFlag>
    <dei:AuditorFirmId contextRef="c-1" id="f-52">248</dei:AuditorFirmId>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-53" unitRef="usd">914515000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-4" decimals="-3" id="f-54" unitRef="usd">837547000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-5" decimals="-3" id="f-55" unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-1" decimals="-3" id="f-56" unitRef="usd">288721000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-4" decimals="-3" id="f-57" unitRef="usd">236306000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-5" decimals="-3" id="f-58" unitRef="usd">284185000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit contextRef="c-1" decimals="-3" id="f-59" unitRef="usd">625794000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-4" decimals="-3" id="f-60" unitRef="usd">601241000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-5" decimals="-3" id="f-61" unitRef="usd">721905000</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-1" decimals="-3" id="f-62" unitRef="usd">139815000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-4" decimals="-3" id="f-63" unitRef="usd">139400000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-5" decimals="-3" id="f-64" unitRef="usd">141133000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-1" decimals="-3" id="f-65" unitRef="usd">370914000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-4" decimals="-3" id="f-66" unitRef="usd">339139000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-5" decimals="-3" id="f-67" unitRef="usd">312107000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <cgnx:LossGainFromCatastrophes contextRef="c-1" decimals="-3" id="f-68" unitRef="usd">0</cgnx:LossGainFromCatastrophes>
    <cgnx:LossGainFromCatastrophes contextRef="c-4" decimals="-3" id="f-69" unitRef="usd">-8000000</cgnx:LossGainFromCatastrophes>
    <cgnx:LossGainFromCatastrophes contextRef="c-5" decimals="-3" id="f-70" unitRef="usd">20779000</cgnx:LossGainFromCatastrophes>
    <us-gaap:RestructuringCharges contextRef="c-1" decimals="-3" id="f-71" unitRef="usd">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-4" decimals="-3" id="f-72" unitRef="usd">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-5" decimals="-3" id="f-73" unitRef="usd">1657000</us-gaap:RestructuringCharges>
    <us-gaap:OperatingIncomeLoss contextRef="c-1" decimals="-3" id="f-74" unitRef="usd">115065000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-4" decimals="-3" id="f-75" unitRef="usd">130702000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-5" decimals="-3" id="f-76" unitRef="usd">246229000</us-gaap:OperatingIncomeLoss>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c-1" decimals="-3" id="f-77" unitRef="usd">1531000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c-4" decimals="-3" id="f-78" unitRef="usd">-10039000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c-5" decimals="-3" id="f-79" unitRef="usd">-1837000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:InvestmentIncomeNonoperating contextRef="c-1" decimals="-3" id="f-80" unitRef="usd">13971000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating contextRef="c-4" decimals="-3" id="f-81" unitRef="usd">14093000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating contextRef="c-5" decimals="-3" id="f-82" unitRef="usd">6715000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-1" decimals="-3" id="f-83" unitRef="usd">922000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-4" decimals="-3" id="f-84" unitRef="usd">592000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-5" decimals="-3" id="f-85" unitRef="usd">-412000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-1" decimals="-3" id="f-86" unitRef="usd">131489000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-4" decimals="-3" id="f-87" unitRef="usd">135348000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-5" decimals="-3" id="f-88" unitRef="usd">250695000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-89" unitRef="usd">25318000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-90" unitRef="usd">22114000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-91" unitRef="usd">35170000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-92" unitRef="usd">106171000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-4" decimals="-3" id="f-93" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-5" decimals="-3" id="f-94" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-1"
      decimals="2"
      id="f-95"
      unitRef="usdPerShare">0.62</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-4"
      decimals="2"
      id="f-96"
      unitRef="usdPerShare">0.66</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-5"
      decimals="2"
      id="f-97"
      unitRef="usdPerShare">1.24</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-1"
      decimals="2"
      id="f-98"
      unitRef="usdPerShare">0.62</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-4"
      decimals="2"
      id="f-99"
      unitRef="usdPerShare">0.65</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-5"
      decimals="2"
      id="f-100"
      unitRef="usdPerShare">1.23</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-1" decimals="-3" id="f-101" unitRef="shares">171438000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-4" decimals="-3" id="f-102" unitRef="shares">172249000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-5" decimals="-3" id="f-103" unitRef="shares">173407000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-1" decimals="-3" id="f-104" unitRef="shares">172611000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-4" decimals="-3" id="f-105" unitRef="shares">173399000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-5" decimals="-3" id="f-106" unitRef="shares">174869000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-1"
      decimals="4"
      id="f-107"
      unitRef="usdPerShare">0.305</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-4"
      decimals="4"
      id="f-108"
      unitRef="usdPerShare">0.286</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-5"
      decimals="4"
      id="f-109"
      unitRef="usdPerShare">0.265</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-110" unitRef="usd">106171000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-4" decimals="-3" id="f-111" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-5" decimals="-3" id="f-112" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="c-1" decimals="-3" id="f-113" unitRef="usd">1245000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="c-4" decimals="-3" id="f-114" unitRef="usd">4389000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="c-5" decimals="-3" id="f-115" unitRef="usd">-5943000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-1" decimals="-3" id="f-116" unitRef="usd">3809000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-4" decimals="-3" id="f-117" unitRef="usd">10507000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-5" decimals="-3" id="f-118" unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-1" decimals="-3" id="f-119" unitRef="usd">-8000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-4" decimals="-3" id="f-120" unitRef="usd">-1954000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-5" decimals="-3" id="f-121" unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-1" decimals="-3" id="f-122" unitRef="usd">3817000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-4" decimals="-3" id="f-123" unitRef="usd">12461000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-5" decimals="-3" id="f-124" unitRef="usd">-16970000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-1" decimals="-3" id="f-125" unitRef="usd">-31258000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-4" decimals="-3" id="f-126" unitRef="usd">11500000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-5" decimals="-3" id="f-127" unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-1" decimals="-3" id="f-128" unitRef="usd">-31258000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-4" decimals="-3" id="f-129" unitRef="usd">11500000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-5" decimals="-3" id="f-130" unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="c-1" decimals="-3" id="f-131" unitRef="usd">-27441000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="c-4" decimals="-3" id="f-132" unitRef="usd">23961000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="c-5" decimals="-3" id="f-133" unitRef="usd">-21355000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c-1" decimals="-3" id="f-134" unitRef="usd">78730000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c-4" decimals="-3" id="f-135" unitRef="usd">137195000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c-5" decimals="-3" id="f-136" unitRef="usd">194170000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-6" decimals="-3" id="f-137" unitRef="usd">186094000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-7" decimals="-3" id="f-138" unitRef="usd">202655000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent contextRef="c-6" decimals="-3" id="f-139" unitRef="usd">60725000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent contextRef="c-7" decimals="-3" id="f-140" unitRef="usd">132799000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent contextRef="c-7" decimals="-3" id="f-141" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent contextRef="c-6" decimals="-3" id="f-142" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-6" decimals="-3" id="f-143" unitRef="usd">59956000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-7" decimals="-3" id="f-144" unitRef="usd">129392000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-6" decimals="-3" id="f-145" unitRef="usd">827000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-7" decimals="-3" id="f-146" unitRef="usd">583000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:AccountsReceivableNetCurrent contextRef="c-6" decimals="-3" id="f-147" unitRef="usd">143359000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent contextRef="c-7" decimals="-3" id="f-148" unitRef="usd">114164000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:UnbilledReceivablesCurrent contextRef="c-6" decimals="-3" id="f-149" unitRef="usd">3055000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledReceivablesCurrent contextRef="c-7" decimals="-3" id="f-150" unitRef="usd">2402000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:InventoryNet contextRef="c-6" decimals="-3" id="f-151" unitRef="usd">157527000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="c-7" decimals="-3" id="f-152" unitRef="usd">162285000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="c-6" decimals="-3" id="f-153" unitRef="usd">63376000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="c-7" decimals="-3" id="f-154" unitRef="usd">68099000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="c-6" decimals="-3" id="f-155" unitRef="usd">613367000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="c-7" decimals="-3" id="f-156" unitRef="usd">678997000</us-gaap:AssetsCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent contextRef="c-6" decimals="-3" id="f-157" unitRef="usd">345033000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent contextRef="c-7" decimals="-3" id="f-158" unitRef="usd">250790000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent contextRef="c-6" decimals="-3" id="f-159" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent contextRef="c-7" decimals="-3" id="f-160" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent>
    <us-gaap:LongTermInvestments contextRef="c-6" decimals="-3" id="f-161" unitRef="usd">340898000</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments contextRef="c-7" decimals="-3" id="f-162" unitRef="usd">244230000</us-gaap:LongTermInvestments>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-6" decimals="-3" id="f-163" unitRef="usd">98445000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-7" decimals="-3" id="f-164" unitRef="usd">105849000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-6" decimals="-3" id="f-165" unitRef="usd">67326000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-7" decimals="-3" id="f-166" unitRef="usd">75115000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill contextRef="c-6" decimals="-3" id="f-167" unitRef="usd">384937000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-7" decimals="-3" id="f-168" unitRef="usd">393181000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-6" decimals="-3" id="f-169" unitRef="usd">90684000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-7" decimals="-3" id="f-170" unitRef="usd">112952000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet contextRef="c-6" decimals="-3" id="f-171" unitRef="usd">392166000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet contextRef="c-7" decimals="-3" id="f-172" unitRef="usd">400400000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent contextRef="c-6" decimals="-3" id="f-173" unitRef="usd">5027000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent contextRef="c-7" decimals="-3" id="f-174" unitRef="usd">7088000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets contextRef="c-6" decimals="-3" id="f-175" unitRef="usd">1992850000</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-7" decimals="-3" id="f-176" unitRef="usd">2017812000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent contextRef="c-6" decimals="-3" id="f-177" unitRef="usd">38046000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent contextRef="c-7" decimals="-3" id="f-178" unitRef="usd">21454000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-6" decimals="-3" id="f-179" unitRef="usd">71760000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-7" decimals="-3" id="f-180" unitRef="usd">72374000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent contextRef="c-6" decimals="-3" id="f-181" unitRef="usd">25685000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent contextRef="c-7" decimals="-3" id="f-182" unitRef="usd">16907000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-6" decimals="-3" id="f-183" unitRef="usd">25035000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-7" decimals="-3" id="f-184" unitRef="usd">31525000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-6" decimals="-3" id="f-185" unitRef="usd">8854000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-7" decimals="-3" id="f-186" unitRef="usd">9624000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="c-6" decimals="-3" id="f-187" unitRef="usd">169380000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="c-7" decimals="-3" id="f-188" unitRef="usd">151884000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-6" decimals="-3" id="f-189" unitRef="usd">61363000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-7" decimals="-3" id="f-190" unitRef="usd">68977000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="c-6" decimals="-3" id="f-191" unitRef="usd">217155000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="c-7" decimals="-3" id="f-192" unitRef="usd">246877000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent contextRef="c-6" decimals="-3" id="f-193" unitRef="usd">26365000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent contextRef="c-7" decimals="-3" id="f-194" unitRef="usd">26685000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent contextRef="c-6" decimals="-3" id="f-195" unitRef="usd">0</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent contextRef="c-7" decimals="-3" id="f-196" unitRef="usd">18338000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent contextRef="c-6" decimals="-3" id="f-197" unitRef="usd">1082000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent contextRef="c-7" decimals="-3" id="f-198" unitRef="usd">299000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities contextRef="c-6" decimals="-3" id="f-199" unitRef="usd">475345000</us-gaap:Liabilities>
    <us-gaap:Liabilities contextRef="c-7" decimals="-3" id="f-200" unitRef="usd">513060000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies contextRef="c-6" id="f-201" unitRef="usd" xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies contextRef="c-7" id="f-202" unitRef="usd" xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c-6"
      decimals="INF"
      id="f-203"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c-7"
      decimals="INF"
      id="f-204"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized contextRef="c-6" decimals="INF" id="f-205" unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized contextRef="c-7" decimals="INF" id="f-206" unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued contextRef="c-7" decimals="INF" id="f-207" unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding contextRef="c-6" decimals="INF" id="f-208" unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued contextRef="c-6" decimals="INF" id="f-209" unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding contextRef="c-7" decimals="INF" id="f-210" unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockValueOutstanding contextRef="c-6" decimals="-3" id="f-211" unitRef="usd">0</us-gaap:PreferredStockValueOutstanding>
    <us-gaap:PreferredStockValueOutstanding contextRef="c-7" decimals="-3" id="f-212" unitRef="usd">0</us-gaap:PreferredStockValueOutstanding>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-7"
      decimals="INF"
      id="f-213"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-6"
      decimals="INF"
      id="f-214"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized contextRef="c-7" decimals="INF" id="f-215" unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized contextRef="c-6" decimals="INF" id="f-216" unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued contextRef="c-6" decimals="-3" id="f-217" unitRef="shares">170434000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-6" decimals="-3" id="f-218" unitRef="shares">170434000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-7" decimals="-3" id="f-219" unitRef="shares">171599000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued contextRef="c-7" decimals="-3" id="f-220" unitRef="shares">171599000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValueOutstanding contextRef="c-6" decimals="-3" id="f-221" unitRef="usd">341000</us-gaap:CommonStockValueOutstanding>
    <us-gaap:CommonStockValueOutstanding contextRef="c-7" decimals="-3" id="f-222" unitRef="usd">343000</us-gaap:CommonStockValueOutstanding>
    <us-gaap:AdditionalPaidInCapitalCommonStock contextRef="c-6" decimals="-3" id="f-223" unitRef="usd">1090638000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock contextRef="c-7" decimals="-3" id="f-224" unitRef="usd">1037202000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-6" decimals="-3" id="f-225" unitRef="usd">499303000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-7" decimals="-3" id="f-226" unitRef="usd">512543000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="c-6" decimals="-3" id="f-227" unitRef="usd">-72777000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="c-7" decimals="-3" id="f-228" unitRef="usd">-45336000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity contextRef="c-6" decimals="-3" id="f-229" unitRef="usd">1517505000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-7" decimals="-3" id="f-230" unitRef="usd">1504752000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c-6" decimals="-3" id="f-231" unitRef="usd">1992850000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c-7" decimals="-3" id="f-232" unitRef="usd">2017812000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-233" unitRef="usd">106171000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-4" decimals="-3" id="f-234" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-5" decimals="-3" id="f-235" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:StockOptionPlanExpense contextRef="c-1" decimals="-3" id="f-236" unitRef="usd">52443000</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense contextRef="c-4" decimals="-3" id="f-237" unitRef="usd">54768000</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense contextRef="c-5" decimals="-3" id="f-238" unitRef="usd">54505000</us-gaap:StockOptionPlanExpense>
    <us-gaap:Depreciation contextRef="c-1" decimals="-3" id="f-239" unitRef="usd">21271000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-4" decimals="-3" id="f-240" unitRef="usd">17270000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-5" decimals="-3" id="f-241" unitRef="usd">16347000</us-gaap:Depreciation>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="c-1" decimals="-3" id="f-242" unitRef="usd">-88000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="c-4" decimals="-3" id="f-243" unitRef="usd">-229000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="c-5" decimals="-3" id="f-244" unitRef="usd">-19000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:AmortizationOfIntangibleAssets contextRef="c-1" decimals="-3" id="f-245" unitRef="usd">11418000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets contextRef="c-4" decimals="-3" id="f-246" unitRef="usd">4610000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets contextRef="c-5" decimals="-3" id="f-247" unitRef="usd">3274000</us-gaap:AmortizationOfIntangibleAssets>
    <cgnx:NonCashLossFromCatastrophes contextRef="c-1" decimals="-3" id="f-248" unitRef="usd">0</cgnx:NonCashLossFromCatastrophes>
    <cgnx:NonCashLossFromCatastrophes contextRef="c-4" decimals="-3" id="f-249" unitRef="usd">0</cgnx:NonCashLossFromCatastrophes>
    <cgnx:NonCashLossFromCatastrophes contextRef="c-5" decimals="-3" id="f-250" unitRef="usd">46372000</cgnx:NonCashLossFromCatastrophes>
    <cgnx:ExcessAndObsoleteInventoryCharges contextRef="c-1" decimals="-3" id="f-251" unitRef="usd">2505000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:ExcessAndObsoleteInventoryCharges contextRef="c-4" decimals="-3" id="f-252" unitRef="usd">3775000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:ExcessAndObsoleteInventoryCharges contextRef="c-5" decimals="-3" id="f-253" unitRef="usd">3084000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:FairValueAdjustmentOnAcquiredInventories contextRef="c-1" decimals="-3" id="f-254" unitRef="usd">1224000</cgnx:FairValueAdjustmentOnAcquiredInventories>
    <cgnx:FairValueAdjustmentOnAcquiredInventories contextRef="c-4" decimals="-3" id="f-255" unitRef="usd">2829000</cgnx:FairValueAdjustmentOnAcquiredInventories>
    <cgnx:FairValueAdjustmentOnAcquiredInventories contextRef="c-5" decimals="-3" id="f-256" unitRef="usd">0</cgnx:FairValueAdjustmentOnAcquiredInventories>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments contextRef="c-1" decimals="-3" id="f-257" unitRef="usd">-306000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments contextRef="c-4" decimals="-3" id="f-258" unitRef="usd">-1745000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments contextRef="c-5" decimals="-3" id="f-259" unitRef="usd">-4968000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:GainLossOnSaleOfInvestments contextRef="c-1" decimals="-3" id="f-260" unitRef="usd">-8000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnSaleOfInvestments contextRef="c-4" decimals="-3" id="f-261" unitRef="usd">-1954000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnSaleOfInvestments contextRef="c-5" decimals="-3" id="f-262" unitRef="usd">-182000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes contextRef="c-1" decimals="-3" id="f-263" unitRef="usd">21507000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes contextRef="c-4" decimals="-3" id="f-264" unitRef="usd">19779000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes contextRef="c-5" decimals="-3" id="f-265" unitRef="usd">27338000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="c-1" decimals="-3" id="f-266" unitRef="usd">32128000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="c-4" decimals="-3" id="f-267" unitRef="usd">-23346000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="c-5" decimals="-3" id="f-268" unitRef="usd">-3454000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset contextRef="c-1" decimals="-3" id="f-269" unitRef="usd">693000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset contextRef="c-4" decimals="-3" id="f-270" unitRef="usd">255000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset contextRef="c-5" decimals="-3" id="f-271" unitRef="usd">-1806000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-1" decimals="-3" id="f-272" unitRef="usd">1253000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-4" decimals="-3" id="f-273" unitRef="usd">22591000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-5" decimals="-3" id="f-274" unitRef="usd">48934000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-1" decimals="-3" id="f-275" unitRef="usd">-1514000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-4" decimals="-3" id="f-276" unitRef="usd">-2469000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-5" decimals="-3" id="f-277" unitRef="usd">6998000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-1" decimals="-3" id="f-278" unitRef="usd">18352000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-4" decimals="-3" id="f-279" unitRef="usd">-13744000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-5" decimals="-3" id="f-280" unitRef="usd">-17277000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="c-1" decimals="-3" id="f-281" unitRef="usd">2916000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="c-4" decimals="-3" id="f-282" unitRef="usd">-35309000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="c-5" decimals="-3" id="f-283" unitRef="usd">2056000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable contextRef="c-1" decimals="-3" id="f-284" unitRef="usd">-9278000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable contextRef="c-4" decimals="-3" id="f-285" unitRef="usd">-16745000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable contextRef="c-5" decimals="-3" id="f-286" unitRef="usd">-444000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-1" decimals="-3" id="f-287" unitRef="usd">-6216000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-4" decimals="-3" id="f-288" unitRef="usd">-9122000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-5" decimals="-3" id="f-289" unitRef="usd">4886000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet contextRef="c-1" decimals="-3" id="f-290" unitRef="usd">-1940000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet contextRef="c-4" decimals="-3" id="f-291" unitRef="usd">-4232000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet contextRef="c-5" decimals="-3" id="f-292" unitRef="usd">12081000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-1" decimals="-3" id="f-293" unitRef="usd">149081000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-4" decimals="-3" id="f-294" unitRef="usd">112916000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-5" decimals="-3" id="f-295" unitRef="usd">243406000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireInvestments contextRef="c-1" decimals="-3" id="f-296" unitRef="usd">850852000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:PaymentsToAcquireInvestments contextRef="c-4" decimals="-3" id="f-297" unitRef="usd">184056000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:PaymentsToAcquireInvestments contextRef="c-5" decimals="-3" id="f-298" unitRef="usd">233720000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments contextRef="c-1" decimals="-3" id="f-299" unitRef="usd">828370000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments contextRef="c-4" decimals="-3" id="f-300" unitRef="usd">496462000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments contextRef="c-5" decimals="-3" id="f-301" unitRef="usd">253983000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-1" decimals="-3" id="f-302" unitRef="usd">15043000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-4" decimals="-3" id="f-303" unitRef="usd">23077000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-5" decimals="-3" id="f-304" unitRef="usd">19667000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="c-1" decimals="-3" id="f-305" unitRef="usd">1444000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="c-4" decimals="-3" id="f-306" unitRef="usd">257056000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="c-5" decimals="-3" id="f-307" unitRef="usd">5050000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-1" decimals="-3" id="f-308" unitRef="usd">-38969000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-4" decimals="-3" id="f-309" unitRef="usd">32273000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-5" decimals="-3" id="f-310" unitRef="usd">-4454000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions contextRef="c-1" decimals="-3" id="f-311" unitRef="usd">994000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions contextRef="c-4" decimals="-3" id="f-312" unitRef="usd">3268000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions contextRef="c-5" decimals="-3" id="f-313" unitRef="usd">9861000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="c-1" decimals="-3" id="f-314" unitRef="usd">67085000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="c-4" decimals="-3" id="f-315" unitRef="usd">79794000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="c-5" decimals="-3" id="f-316" unitRef="usd">204314000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock contextRef="c-1" decimals="-3" id="f-317" unitRef="usd">52329000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock contextRef="c-4" decimals="-3" id="f-318" unitRef="usd">49079000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock contextRef="c-5" decimals="-3" id="f-319" unitRef="usd">45921000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-1" decimals="-3" id="f-320" unitRef="usd">-118420000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-4" decimals="-3" id="f-321" unitRef="usd">-125605000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-5" decimals="-3" id="f-322" unitRef="usd">-240374000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-1" decimals="-3" id="f-323" unitRef="usd">-8253000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-4" decimals="-3" id="f-324" unitRef="usd">1697000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-5" decimals="-3" id="f-325" unitRef="usd">-3365000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-1" decimals="-3" id="f-326" unitRef="usd">-16561000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-4" decimals="-3" id="f-327" unitRef="usd">21281000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-5" decimals="-3" id="f-328" unitRef="usd">-4787000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-7" decimals="-3" id="f-329" unitRef="usd">202655000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-8" decimals="-3" id="f-330" unitRef="usd">181374000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-9" decimals="-3" id="f-331" unitRef="usd">186161000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-6" decimals="-3" id="f-332" unitRef="usd">186094000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-7" decimals="-3" id="f-333" unitRef="usd">202655000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-8" decimals="-3" id="f-334" unitRef="usd">181374000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CommonStockSharesIssued contextRef="c-10" decimals="-3" id="f-335" unitRef="shares">175481000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity contextRef="c-10" decimals="-3" id="f-336" unitRef="usd">351000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-11" decimals="-3" id="f-337" unitRef="usd">914802000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-12" decimals="-3" id="f-338" unitRef="usd">562882000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-13" decimals="-3" id="f-339" unitRef="usd">-47942000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-9" decimals="-3" id="f-340" unitRef="usd">1430093000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-14" decimals="-3" id="f-341" unitRef="shares">514000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-14" decimals="-3" id="f-342" unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-15" decimals="-3" id="f-343" unitRef="usd">9860000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-5" decimals="-3" id="f-344" unitRef="usd">9861000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares contextRef="c-14" decimals="-3" id="f-345" unitRef="shares">3364000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-14" decimals="-3" id="f-346" unitRef="usd">7000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-16" decimals="-3" id="f-347" unitRef="usd">204307000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-5" decimals="-3" id="f-348" unitRef="usd">204314000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-15" decimals="-3" id="f-349" unitRef="usd">54505000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-5" decimals="-3" id="f-350" unitRef="usd">54505000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash contextRef="c-16" decimals="-3" id="f-351" unitRef="usd">45921000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash contextRef="c-5" decimals="-3" id="f-352" unitRef="usd">45921000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss contextRef="c-16" decimals="-3" id="f-353" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-5" decimals="-3" id="f-354" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-17" decimals="-3" id="f-355" unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-5" decimals="-3" id="f-356" unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-17" decimals="-3" id="f-357" unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-5" decimals="-3" id="f-358" unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-17" decimals="-3" id="f-359" unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-5" decimals="-3" id="f-360" unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued contextRef="c-18" decimals="-3" id="f-361" unitRef="shares">172631000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity contextRef="c-18" decimals="-3" id="f-362" unitRef="usd">345000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-19" decimals="-3" id="f-363" unitRef="usd">979167000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-20" decimals="-3" id="f-364" unitRef="usd">528179000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-21" decimals="-3" id="f-365" unitRef="usd">-69297000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-8" decimals="-3" id="f-366" unitRef="usd">1438394000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-22" decimals="-3" id="f-367" unitRef="shares">691000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-22" decimals="-3" id="f-368" unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-23" decimals="-3" id="f-369" unitRef="usd">3267000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-4" decimals="-3" id="f-370" unitRef="usd">3268000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares contextRef="c-22" decimals="-3" id="f-371" unitRef="shares">1723000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-22" decimals="-3" id="f-372" unitRef="usd">3000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-24" decimals="-3" id="f-373" unitRef="usd">79791000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-4" decimals="-3" id="f-374" unitRef="usd">79794000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-23" decimals="-3" id="f-375" unitRef="usd">54768000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-4" decimals="-3" id="f-376" unitRef="usd">54768000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash contextRef="c-24" decimals="-3" id="f-377" unitRef="usd">49079000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash contextRef="c-4" decimals="-3" id="f-378" unitRef="usd">49079000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss contextRef="c-24" decimals="-3" id="f-379" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-4" decimals="-3" id="f-380" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-25" decimals="-3" id="f-381" unitRef="usd">10507000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-4" decimals="-3" id="f-382" unitRef="usd">10507000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-25" decimals="-3" id="f-383" unitRef="usd">-1954000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-4" decimals="-3" id="f-384" unitRef="usd">-1954000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-25" decimals="-3" id="f-385" unitRef="usd">11500000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-4" decimals="-3" id="f-386" unitRef="usd">11500000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued contextRef="c-26" decimals="-3" id="f-387" unitRef="shares">171599000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity contextRef="c-26" decimals="-3" id="f-388" unitRef="usd">343000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-27" decimals="-3" id="f-389" unitRef="usd">1037202000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-28" decimals="-3" id="f-390" unitRef="usd">512543000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-29" decimals="-3" id="f-391" unitRef="usd">-45336000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-7" decimals="-3" id="f-392" unitRef="usd">1504752000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-30" decimals="-3" id="f-393" unitRef="shares">546000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-30" decimals="-3" id="f-394" unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-31" decimals="-3" id="f-395" unitRef="usd">993000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-1" decimals="-3" id="f-396" unitRef="usd">994000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares contextRef="c-30" decimals="-3" id="f-397" unitRef="shares">1711000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-30" decimals="-3" id="f-398" unitRef="usd">3000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-32" decimals="-3" id="f-399" unitRef="usd">67082000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-1" decimals="-3" id="f-400" unitRef="usd">67085000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-31" decimals="-3" id="f-401" unitRef="usd">52443000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-1" decimals="-3" id="f-402" unitRef="usd">52443000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash contextRef="c-32" decimals="-3" id="f-403" unitRef="usd">52329000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash contextRef="c-1" decimals="-3" id="f-404" unitRef="usd">52329000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss contextRef="c-32" decimals="-3" id="f-405" unitRef="usd">106171000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-406" unitRef="usd">106171000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-33" decimals="-3" id="f-407" unitRef="usd">3809000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-1" decimals="-3" id="f-408" unitRef="usd">3809000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-33" decimals="-3" id="f-409" unitRef="usd">-8000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-1" decimals="-3" id="f-410" unitRef="usd">-8000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-33" decimals="-3" id="f-411" unitRef="usd">-31258000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-1" decimals="-3" id="f-412" unitRef="usd">-31258000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued contextRef="c-34" decimals="-3" id="f-413" unitRef="shares">170434000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity contextRef="c-34" decimals="-3" id="f-414" unitRef="usd">341000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-35" decimals="-3" id="f-415" unitRef="usd">1090638000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-36" decimals="-3" id="f-416" unitRef="usd">499303000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-37" decimals="-3" id="f-417" unitRef="usd">-72777000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-6" decimals="-3" id="f-418" unitRef="usd">1517505000</us-gaap:StockholdersEquity>
    <us-gaap:SignificantAccountingPoliciesTextBlock contextRef="c-1" id="f-422">Summary of Significant Accounting Policies&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Nature of Operations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cognex Corporation ("the Company" or "Cognex") is a leading global provider of machine vision products and solutions that improve efficiency and quality and address some of the most critical manufacturing and distribution challenges.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Use of Estimates in the Preparation of Financial Statements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America (U.S.&#160;GAAP) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and the disclosure of contingent liabilities as of the balance sheet date, and the reported amounts of revenues and expenses during the year. Actual results could differ from those estimates. Significant estimates and judgments include those related to revenue recognition and income taxes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Basis of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements include the accounts of Cognex Corporation and its subsidiaries, all of which are wholly owned. All intercompany accounts and transactions have been eliminated.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The financial statements of the Company&#x2019;s foreign subsidiaries, where the local currency is the functional currency, are translated using exchange rates in effect at the end of the year for assets and liabilities and average exchange rates during the year for results of operations. The resulting foreign currency translation adjustment, net of tax, is included in shareholders&#x2019; equity as accumulated other comprehensive loss.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company applies a three-level valuation hierarchy for fair value measurements. The categorization of assets and liabilities within the valuation hierarchy is based on the lowest level of input that is significant to the measurement of fair value. Level&#160;1 inputs to the valuation methodology utilize unadjusted quoted market prices in active markets for identical assets and liabilities. Level 2 inputs to the valuation methodology are other observable inputs, including quoted market prices for similar assets and liabilities, quoted prices for identical and similar assets and liabilities in markets that are not active, or other inputs that are observable or can be corroborated by observable market data. Level 3 inputs to the valuation methodology are unobservable inputs based on management&#x2019;s best estimate of the inputs that market participants would use in pricing the asset or liability at the measurement date, including assumptions about risk. A change to the level of an asset or liability within the fair value hierarchy is determined at the end of a reporting period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Cash, Cash Equivalents, and Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#x2019;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2024, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#x2019; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#x201c;Other income (expense)&#x201d; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company extends credit with various payment terms to customers based on an evaluation of their financial condition. Accounts that are outstanding longer than the payment terms are considered to be past due. The Company establishes an allowance against accounts receivable for credit losses when it determines receivables are at risk for collection based on the length of time the receivable has been outstanding, the customer&#x2019;s current ability to pay its obligations to the Company, and general economic and industry conditions, as well as various other factors. Receivables are written off against this allowance in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a recovery of the credit loss. Credit losses and recoveries related to accounts receivable are included in "Selling, general, and administrative expenses" on the Consolidated Statements of Operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories are stated at the lower of cost and net realizable value. Cost is determined using standard costs, which approximates actual costs under the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Purchase price variances are incurred when actual costs are different than standard costs due to favorable or unfavorable market prices. Management applies judgment to recognize purchase price variances in the same period that the associated standard costs of the finished goods that consume these components are sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s inventory is subject to technological change or obsolescence. The Company reviews inventory quantities on hand and estimates excess and obsolescence exposures based on assumptions about future demand, product transitions, general economic and industry conditions, and other circumstances, and records reserves to reduce the carrying value of inventories to their net realizable value. If actual future demand is less than estimated, additional inventory write-downs would be required.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company generally disposes of obsolete inventory upon determination of obsolescence. The Company does not dispose of excess inventory immediately, due to the possibility that some of this inventory could be sold to customers as a result of differences between actual and forecasted demand. When inventory has been written down below cost, such reduced amount is considered the new cost basis for subsequent accounting purposes. As a result, the Company could recognize a higher-than-normal gross margin if the reserved inventory were subsequently sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with the accounting principles applied in business combinations, acquired inventories are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of inventories above the acquired company&#x2019;s pre-acquisition carrying value, which results in a lower-than-normal gross margin when these acquired inventories are sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Property, Plant, and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant, and equipment are stated at cost and depreciated using the straight-line method over the assets&#x2019; estimated useful lives. Buildings&#x2019; original useful lives are 39 years, building improvements&#x2019; useful lives range from &lt;span style="-sec-ix-hidden:f-435"&gt;five&lt;/span&gt; to ten years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from &lt;span style="-sec-ix-hidden:f-437"&gt;two&lt;/span&gt; to ten years. Land that is leased or granted, as well as leasehold improvements, are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases. Maintenance and repairs are expensed when incurred; additions and improvements are capitalized. Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with the accounting principles applied in business combinations, acquired property, plant, and equipment are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of property, plant, and equipment above the acquired company&#x2019;s pre-acquisition carrying value, which results in a higher depreciation expense over the estimated lives of the assets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Internal-use Software&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Internal-use software is software acquired, internally developed, or modified solely to meet the Company's internal needs, and during the software's development no substantive plan exists to sell the software. The accounting treatment for computer software developed for internal use depends on the nature of activities performed at each stage of development. The preliminary project stage includes conceptual formulation of design alternatives, determination of system requirements, vendor demonstrations, and final selection of vendors, and during this stage costs are expensed as incurred. The application development stage includes software configuration, coding, hardware installation, and testing. During this stage, certain costs are capitalized, including external direct costs of materials and services, as well as payroll and payroll-related costs for employees who are directly associated with the project, while certain costs are expensed as incurred, including training and data conversion costs. The post-implementation stage includes support and maintenance, and during this stage costs are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Capitalization begins when both the preliminary project stage is completed and management commits to funding the project. Capitalization ceases at the point the project is substantially complete and ready for its intended use, that is, after all substantial testing is completed. Costs of specified upgrades and enhancements to internal-use software are capitalized if it is probable that those expenditures result in additional functionality. Capitalized costs are amortized on a straight-line basis over the estimated useful life.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At inception of a contract, the Company determines whether that contract is or contains a lease by assessing whether there is an identified asset and whether the contract conveys the right to control the use of the identified asset for a period of time in exchange for consideration. The Company has control of the asset if it has the right to direct the use of the asset and obtains substantially all of the economic benefits from the use of the asset throughout the period of use.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a practical expedient, the Company does not recognize a lease asset or lease liability for leases with a lease term of twelve months or less. In the determination of the lease term, the Company considers the existence of extension or termination options and the probability of those options being exercised.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease contracts may include fixed lease components and non-lease components, such as common area maintenance and utilities for property leases. As a practical expedient, the Company accounts for the non-lease components together with the lease components as a single lease component for all of its leases.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: (1) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; (2) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; (3) the lease term is for the major part of the remaining economic life of the underlying asset (the Company considers a major part to be 75% or more of the remaining economic life of the underlying asset); (4) the present value of the sum of the lease payments and any residual value guaranteed by the Company equals or exceeds substantially all of the fair value of the underlying asset (the Company considers substantially all the fair value to be 90% or more of the fair value of the underlying asset amount); or (5) the underlying asset is of such a specialized nature that it is expected to have no alternative use to the lessor at the end of the lease term. When none of the criteria above are met, the Company classifies the lease as an operating lease.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On the lease commencement date, the Company records a lease asset and lease liability on the balance sheet. The lease asset consists of: (1) the amount of the initial lease liability; (2) any lease payments made to the lessor at or before the lease commencement date, minus any lease incentives received; and (3) any initial direct cost incurred by the Company. Initial direct costs are incremental costs of a lease that would not have been incurred if the lease had not been obtained and are capitalized as part of the lease asset. The lease liability equals the present value of the future cash payments discounted using the Company's incremental borrowing rate. The Company&#x2019;s incremental borrowing rate is the rate of interest that the Company would have to pay to borrow an amount equal to the lease payments over a similar term which was estimated using the Secured Overnight Financing Rate (SOFR) plus a 2% credit risk spread.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease expense equals the total cash payments recognized on a straight-line basis over the lease term. The amortization of the lease asset is calculated as the straight-line lease expense less the accretion of the interest on the lease liability each period. The lease liability is reduced by the cash payment less the interest each period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill is stated at cost. The Company evaluates the potential impairment of goodwill annually each fourth quarter &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;and whenever events or circumstances indicate the carrying value of the goodwill may not be recoverable. The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary. Factors that management considers in this assessment include general economic and industry conditions, overall financial performance (both current and projected), changes in strategy, changes in the composition or carrying amount of net assets, and market capitalization. If this qualitative assessment indicates that it is more likely than not that the fair value of a reporting unit is less than its carrying value, the Company proceeds to perform a quantitative impairment test. Under this quantitative analysis, the fair value of the reporting unit is compared with its carrying value, including goodwill. If the carrying value exceeds the fair value of the reporting unit, the Company recognizes an impairment charge. The Company estimates the fair value of its reporting unit using the income approach based on a discounted cash flow model. In addition, the Company uses the market approach, which compares the reporting unit to publicly traded companies and transactions involving similar businesses, to support the conclusions based on the income approach. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Intangible Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets are stated at cost and amortized over the assets&#x2019; estimated useful lives. Intangible assets are either amortized in relation to the relative cash flows anticipated from the intangible asset or using the straight-line method, depending on facts and circumstances. The useful lives of customer relationships range from &lt;span style="-sec-ix-hidden:f-443"&gt;five&lt;/span&gt; to fifteen years, completed technologies from &lt;span style="-sec-ix-hidden:f-445"&gt;five&lt;/span&gt; to nine years, non-compete agreements from &lt;span style="-sec-ix-hidden:f-447"&gt;six&lt;/span&gt; to seven years, and trademarks for three years. In-process technology is an indefinite-lived intangible asset until the technology is completed, at which point it is amortized over its estimated useful life. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company evaluates the potential impairment of intangible assets whenever events or circumstances indicate the carrying value of the assets may not be recoverable. For finite-lived intangible assets that are subject to amortization, the Company follows a two-step process for impairment testing. In step one, known as the recoverability test, the carrying value of the asset is compared to the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the asset. If the sum of the undiscounted future cash flows is less than the carrying value, the asset is not recoverable and step two is performed. In step two, the impairment charge is measured as the amount by which the carrying value of the asset exceeds its fair value.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Warranty Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from &lt;span style="-sec-ix-hidden:f-451"&gt;one&lt;/span&gt; to three years from the time of sale based on the product being purchased and the terms of the customer arrangement. Warranty obligations are evaluated and recorded at the time of sale since it is probable that customers will make claims under warranties related to products that have been sold and the amount of these claims can be reasonably estimated based on historical costs to fulfill claims. Obligations may also be recorded subsequent to the time of sale whenever specific events or circumstances impacting product quality become known that would not have been taken into account using historical data.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Contingencies&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Loss contingencies are accrued if the loss is probable and the amount of the loss can be reasonably estimated. Legal costs associated with potential loss contingencies are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Derivative Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Derivative instruments are recorded on the Consolidated Balance Sheets at fair value. Changes in the fair value of the Company&#x2019;s economic hedges utilizing foreign currency forward contracts are included in "Foreign currency gain (loss)" on the Consolidated Statements of Operations. When the Company is engaged in more than one outstanding derivative contract with the same counterparty and also has a legally enforceable master netting agreement with that counterparty, the &#x201c;net&#x201d; mark-to-market exposure represents the netting of the positive and negative exposures with that counterparty. The cash flows from derivative instruments are presented in the same category on the Consolidated Statements of Cash Flows as the category for the cash flows from the hedged item. Generally, this accounting policy election results in cash flows related to derivative instruments being classified as an operating activity on the Consolidated Statements of Cash Flows. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &#x201c;Revenue from Contracts with Customers.&#x201d; The core principle of ASC 606 is to recognize revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Company expects to be entitled in exchange for those goods or services. The framework in support of this core principle includes: (1) identifying the contract with the customer; (2) identifying the performance obligations in the contract; (3) determining the transaction price; (4) allocating the transaction price to the performance obligations; and (5) recognizing revenue when (or as) the performance obligations are satisfied. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Identifying the Contract with the Customer&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company identifies contracts with customers as agreements that create enforceable rights and obligations, which typically take the form of customer contracts or purchase orders. 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.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Identifying the Performance Obligations in the Contract&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company identifies performance obligations as promises in contracts to transfer distinct goods or services. Standard products and services that the Company regularly sells separately, which customers can benefit from either on their own or with other readily available resources and are distinct within the context of the customer contract, are accounted for as distinct performance obligations. Application-specific customer solutions that are comprised of a combination of products and services are accounted for as one performance obligation to deliver a total solution to the customer. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Shipping and handling activities for which the Company is responsible under the terms and conditions of the sale are not accounted for as performance obligations but as fulfillment costs. These activities are required to fulfill the Company&#x2019;s promise to transfer the goods and are expensed when revenue is recognized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company does not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract. If revenue is recognized before immaterial promises have been completed, then the costs related to such immaterial promises are accrued at the time of sale.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Determining the Transaction Price&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company determines the transaction price as the amount of consideration it expects to receive in exchange for transferring promised goods or services to the customer. Amounts collected from customers for sales taxes are excluded from the transaction price. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;If a contract includes a variable amount, such as a rebate, then the Company estimates the transaction price using either the expected value or the most likely amount of consideration to be received, depending on the specific facts and circumstances. The Company includes estimated variable consideration in the transaction price only to the extent it is probable that a significant reversal of revenue will not occur when the uncertainty is resolved. The Company updates its estimate of variable consideration at the end of each reporting period to reflect changes in facts and circumstances.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company records revenue net of estimated returns. As a practical expedient, the Company estimates the transaction price using the expected value based on its history of return experience using a portfolio approach in which the Company&#x2019;s total revenue is reduced by an estimate of total customer returns. Management reasonably expects that the effect of applying a portfolio approach to a group of contracts would not differ materially from considering each contract separately.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Allocating the Transaction Price to the Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company allocates the transaction price to each performance obligation at contract inception based on a relative stand-alone selling price basis, or the price at which the Company would sell the good or service separately to similar customers in similar circumstances.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recognizing Revenue When (or As) the Performance Obligations are Satisfied&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue when it transfers the promised goods or services to the customer. Revenue for standard products is recognized at the point in time when the customer obtains control of the goods, which is typically upon shipment or delivery when the customer has legal title, physical possession, the risks and rewards of ownership, and an enforceable obligation to pay for the products. Revenue for services, which are not material, is typically recognized over the time the service is provided. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can reasonably determine that the agreed-upon specifications in the contract have been met and the customer should reasonably accept the performance obligations in the &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#x2019;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#x2019;s requirements. If the Company can reasonably determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the Company&#x2019;s standard products and services, revenue recognition and billing typically occur at the same time. For application-specific customer solutions, however, the agreement with the customer may provide for billing terms which differ from the timing of revenue recognition, resulting in either deferred revenue or unbilled revenue. Credit assessments are performed to determine payment terms, which vary by region, industry, and customer. Prepayment terms result in contract liabilities for customer deposits. When credit is granted to customers, payment is typically due 30 to 90 days from billing. The Company's contracts typically have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on such contracts and to expense sales commissions. The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management exercises judgment when determining the amount of revenue to be recognized each period. Such judgments include, but are not limited to, assessing the customer&#x2019;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Research and Development&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development costs primarily include costs related to personnel, prototyping materials and equipment, and outside services. Research and development costs are expensed when incurred until technological feasibility has been established for the product. Thereafter, all software costs may be capitalized until the product is available for general release to customers. The Company determines technological feasibility at the time the product reaches beta in its stage of development. Historically, the time incurred between beta and general release to customers has been short, and therefore, the costs have been insignificant. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Advertising Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Advertising costs are expensed as incurred and totaled $1,286,000 in 2024, $1,190,000 in 2023, and $1,257,000 in 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s stock-based awards that result in compensation expense consist of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). The Company has reserved a specific number of shares of its authorized but unissued shares for issuance upon the exercise of stock options or the settlement of RSUs. When a stock option is exercised or an RSU is settled, the Company issues new shares from this pool. Management is responsible for determining the appropriate valuation model and estimating the fair value of stock-based awards, and in doing so, considers a number of factors, including information provided by an outside valuation advisor and the observable market price of the Company's common stock on the grant date. The fair value of RSUs is determined based on the observable market price of the Company's common stock on the grant date less the present value of expected future dividends. The fair value of PRSUs where the performance goal includes service and market conditions is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. When determining the grant-date fair value of stock-based awards, management further considers whether an adjustment is required to the observable &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;market price or volatility of the Company's common stock that is used in the valuation as a result of material non-public information if that information is expected to result in a material increase in share price.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes compensation expense related to stock-based awards using the graded attribution method, in which expense is recognized on a straight-line basis over the service period for each separately vesting portion of the stock option or RSU as if the award was, in substance, multiple awards. The amount of compensation expense recognized at the end of the vesting period is based on the number of awards for which the requisite service has been completed. No compensation expense is recognized for awards that are forfeited for which the employee does not render the requisite service. The term &#x201c;forfeitures&#x201d; is distinct from &#x201c;expirations&#x201d; and represents only the unvested portion of the surrendered award. The Company applies estimated forfeiture rates to its unvested awards to arrive at the amount of compensation expense that is expected to be recognized over the requisite service period. At the end of each separately vesting portion of an award, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based on the employee&#x2019;s service, and an increase or decrease to compensation expense is recorded to true up the final expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes a tax position in its financial statements when that tax position, based solely upon its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statutes of limitations. Derecognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The portion of the liability that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statutes of limitations) or are not expected to be paid within one year are classified as a non-current liability. It is the Company&#x2019;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred tax assets and liabilities are determined based on the differences between the financial statement and tax bases of assets and liabilities as measured by the enacted tax rates that will be in effect when these differences reverse. Valuation allowances are provided if, based on the weight of available evidence, it is more likely than not that some or all of the deferred tax assets will not be realized. The Company accounts for the impact of Global Intangible Low-Taxed Income (GILTI) tax in deferred taxes. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sales tax in the United States and similar taxes in other jurisdictions that are collected from customers and remitted to government authorities are presented on a gross basis (i.e., a receivable from the customer with a corresponding payable to the government). Amounts collected from customers and retained by the Company during tax holidays are recognized as non-operating income when earned.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Net Income Per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period. Diluted net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period plus potential dilutive common shares. Dilutive common equivalent shares consist of stock options and restricted stock units and are calculated using the treasury stock method. Common equivalent shares do not qualify as participating securities. In periods where the Company records a net loss, potential common stock equivalents are not included in the calculation of diluted net loss per share as their effect would be anti-dilutive.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Comprehensive Income&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Comprehensive income is defined as the change in equity of a company during a period from transactions and other events and circumstances, excluding transactions resulting from investments by owners and distributions to owners. Accumulated other comprehensive loss, net of tax, consists of foreign currency translation adjustment losses of $67,808,000 and $36,550,000, as of December 31, 2024 and December 31, 2023, respectively; net unrealized losses on available-for-sale investments of $3,698,000 and $7,515,000 as of December 31, 2024 and December 31, 2023, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,000 at each year end.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Concentrations of Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and accounts receivable. The Company has certain domestic and foreign cash balances that exceed the insured limits set by the Federal Deposit Insurance Corporation (FDIC) in the United States and equivalent regulatory agencies in foreign countries. The Company primarily invests in investment-grade debt securities and has established guidelines relative to credit ratings, diversification, and maturities of its debt securities that maintain liquidity and safety. The Company has historically not experienced any significant realized losses on its debt securities. The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has historically not experienced any significant losses related to the collection of its accounts receivable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A significant portion of the Company's products is presently manufactured by a third-party contractor located in Indonesia. This contract manufacturer has agreed to provide the Company with termination notification periods and last-time-buy rights, if and when that may be applicable. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges or other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, delivery costs, and manufacturing delays.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company sources components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components may typically be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain of the Company&#x2019;s products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Business Combinations&lt;/span&gt;&lt;/div&gt;The Company determines whether a transaction qualifies as a business combination by applying the definition of a business, which requires the assets acquired and liabilities assumed to be inputs and processes that have the ability to contribute to the creation of outputs. The Company accounts for business combinations under the acquisition method of accounting, which requires the following steps: (1) identifying the acquirer, (2) determining the acquisition date, (3) recognizing and measuring the identifiable assets acquired and the liabilities assumed, and (4) recognizing and measuring goodwill. The Company measures the identifiable assets acquired and liabilities assumed at their estimated fair values as of the acquisition date. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired, on detailed valuations that use information and assumptions provided by management, which consider management&#x2019;s best estimates of inputs and assumptions that a market participant would use. Goodwill is recognized as of the acquisition date as the excess of the consideration transferred over the net amount of assets acquired and liabilities assumed. Transaction costs are expensed as incurred.</us-gaap:SignificantAccountingPoliciesTextBlock>
    <cgnx:NatureOfOperationsPolicyTextBlock contextRef="c-1" id="f-423">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Nature of Operations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cognex Corporation ("the Company" or "Cognex") is a leading global provider of machine vision products and solutions that improve efficiency and quality and address some of the most critical manufacturing and distribution challenges.&lt;/span&gt;&lt;/div&gt;</cgnx:NatureOfOperationsPolicyTextBlock>
    <us-gaap:UseOfEstimates contextRef="c-1" id="f-424">&lt;div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Use of Estimates in the Preparation of Financial Statements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America (U.S.&#160;GAAP) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and the disclosure of contingent liabilities as of the balance sheet date, and the reported amounts of revenues and expenses during the year. Actual results could differ from those estimates. Significant estimates and judgments include those related to revenue recognition and income taxes.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:ConsolidationPolicyTextBlock contextRef="c-1" id="f-425">&lt;div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Basis of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements include the accounts of Cognex Corporation and its subsidiaries, all of which are wholly owned. All intercompany accounts and transactions have been eliminated.&lt;/span&gt;&lt;/div&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock contextRef="c-1" id="f-426">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The financial statements of the Company&#x2019;s foreign subsidiaries, where the local currency is the functional currency, are translated using exchange rates in effect at the end of the year for assets and liabilities and average exchange rates during the year for results of operations. The resulting foreign currency translation adjustment, net of tax, is included in shareholders&#x2019; equity as accumulated other comprehensive loss.&lt;/span&gt;&lt;/div&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy contextRef="c-1" id="f-427">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company applies a three-level valuation hierarchy for fair value measurements. The categorization of assets and liabilities within the valuation hierarchy is based on the lowest level of input that is significant to the measurement of fair value. Level&#160;1 inputs to the valuation methodology utilize unadjusted quoted market prices in active markets for identical assets and liabilities. Level 2 inputs to the valuation methodology are other observable inputs, including quoted market prices for similar assets and liabilities, quoted prices for identical and similar assets and liabilities in markets that are not active, or other inputs that are observable or can be corroborated by observable market data. Level 3 inputs to the valuation methodology are unobservable inputs based on management&#x2019;s best estimate of the inputs that market participants would use in pricing the asset or liability at the measurement date, including assumptions about risk. A change to the level of an asset or liability within the fair value hierarchy is determined at the end of a reporting period.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:InvestmentPolicyTextBlock contextRef="c-1" id="f-429">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Cash, Cash Equivalents, and Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#x2019;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2024, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#x2019; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#x201c;Other income (expense)&#x201d; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.&lt;/span&gt;&lt;/div&gt;</us-gaap:InvestmentPolicyTextBlock>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="c-1" id="f-428">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Cash, Cash Equivalents, and Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#x2019;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2024, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#x2019; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#x201c;Other income (expense)&#x201d; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.&lt;/span&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum contextRef="c-1" id="f-430">P5Y</cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy contextRef="c-1" id="f-431">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company extends credit with various payment terms to customers based on an evaluation of their financial condition. Accounts that are outstanding longer than the payment terms are considered to be past due. The Company establishes an allowance against accounts receivable for credit losses when it determines receivables are at risk for collection based on the length of time the receivable has been outstanding, the customer&#x2019;s current ability to pay its obligations to the Company, and general economic and industry conditions, as well as various other factors. Receivables are written off against this allowance in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a recovery of the credit loss. Credit losses and recoveries related to accounts receivable are included in "Selling, general, and administrative expenses" on the Consolidated Statements of Operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:TradeAndOtherAccountsReceivablePolicy>
    <us-gaap:InventoryPolicyTextBlock contextRef="c-1" id="f-432">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories are stated at the lower of cost and net realizable value. Cost is determined using standard costs, which approximates actual costs under the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Purchase price variances are incurred when actual costs are different than standard costs due to favorable or unfavorable market prices. Management applies judgment to recognize purchase price variances in the same period that the associated standard costs of the finished goods that consume these components are sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s inventory is subject to technological change or obsolescence. The Company reviews inventory quantities on hand and estimates excess and obsolescence exposures based on assumptions about future demand, product transitions, general economic and industry conditions, and other circumstances, and records reserves to reduce the carrying value of inventories to their net realizable value. If actual future demand is less than estimated, additional inventory write-downs would be required.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company generally disposes of obsolete inventory upon determination of obsolescence. The Company does not dispose of excess inventory immediately, due to the possibility that some of this inventory could be sold to customers as a result of differences between actual and forecasted demand. When inventory has been written down below cost, such reduced amount is considered the new cost basis for subsequent accounting purposes. As a result, the Company could recognize a higher-than-normal gross margin if the reserved inventory were subsequently sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with the accounting principles applied in business combinations, acquired inventories are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of inventories above the acquired company&#x2019;s pre-acquisition carrying value, which results in a lower-than-normal gross margin when these acquired inventories are sold.&lt;/span&gt;&lt;/div&gt;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="c-1" id="f-433">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Property, Plant, and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant, and equipment are stated at cost and depreciated using the straight-line method over the assets&#x2019; estimated useful lives. Buildings&#x2019; original useful lives are 39 years, building improvements&#x2019; useful lives range from &lt;span style="-sec-ix-hidden:f-435"&gt;five&lt;/span&gt; to ten years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from &lt;span style="-sec-ix-hidden:f-437"&gt;two&lt;/span&gt; to ten years. Land that is leased or granted, as well as leasehold improvements, are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases. Maintenance and repairs are expensed when incurred; additions and improvements are capitalized. Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with the accounting principles applied in business combinations, acquired property, plant, and equipment are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of property, plant, and equipment above the acquired company&#x2019;s pre-acquisition carrying value, which results in a higher depreciation expense over the estimated lives of the assets.&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-38" id="f-434">P39Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-40" id="f-436">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-42" id="f-438">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:InternalUseSoftwarePolicy contextRef="c-1" id="f-439">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Internal-use Software&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Internal-use software is software acquired, internally developed, or modified solely to meet the Company's internal needs, and during the software's development no substantive plan exists to sell the software. The accounting treatment for computer software developed for internal use depends on the nature of activities performed at each stage of development. The preliminary project stage includes conceptual formulation of design alternatives, determination of system requirements, vendor demonstrations, and final selection of vendors, and during this stage costs are expensed as incurred. The application development stage includes software configuration, coding, hardware installation, and testing. During this stage, certain costs are capitalized, including external direct costs of materials and services, as well as payroll and payroll-related costs for employees who are directly associated with the project, while certain costs are expensed as incurred, including training and data conversion costs. The post-implementation stage includes support and maintenance, and during this stage costs are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Capitalization begins when both the preliminary project stage is completed and management commits to funding the project. Capitalization ceases at the point the project is substantially complete and ready for its intended use, that is, after all substantial testing is completed. Costs of specified upgrades and enhancements to internal-use software are capitalized if it is probable that those expenditures result in additional functionality. Capitalized costs are amortized on a straight-line basis over the estimated useful life.&lt;/span&gt;&lt;/div&gt;</us-gaap:InternalUseSoftwarePolicy>
    <us-gaap:LesseeLeasesPolicyTextBlock contextRef="c-1" id="f-440">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At inception of a contract, the Company determines whether that contract is or contains a lease by assessing whether there is an identified asset and whether the contract conveys the right to control the use of the identified asset for a period of time in exchange for consideration. The Company has control of the asset if it has the right to direct the use of the asset and obtains substantially all of the economic benefits from the use of the asset throughout the period of use.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a practical expedient, the Company does not recognize a lease asset or lease liability for leases with a lease term of twelve months or less. In the determination of the lease term, the Company considers the existence of extension or termination options and the probability of those options being exercised.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease contracts may include fixed lease components and non-lease components, such as common area maintenance and utilities for property leases. As a practical expedient, the Company accounts for the non-lease components together with the lease components as a single lease component for all of its leases.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: (1) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; (2) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; (3) the lease term is for the major part of the remaining economic life of the underlying asset (the Company considers a major part to be 75% or more of the remaining economic life of the underlying asset); (4) the present value of the sum of the lease payments and any residual value guaranteed by the Company equals or exceeds substantially all of the fair value of the underlying asset (the Company considers substantially all the fair value to be 90% or more of the fair value of the underlying asset amount); or (5) the underlying asset is of such a specialized nature that it is expected to have no alternative use to the lessor at the end of the lease term. When none of the criteria above are met, the Company classifies the lease as an operating lease.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On the lease commencement date, the Company records a lease asset and lease liability on the balance sheet. The lease asset consists of: (1) the amount of the initial lease liability; (2) any lease payments made to the lessor at or before the lease commencement date, minus any lease incentives received; and (3) any initial direct cost incurred by the Company. Initial direct costs are incremental costs of a lease that would not have been incurred if the lease had not been obtained and are capitalized as part of the lease asset. The lease liability equals the present value of the future cash payments discounted using the Company's incremental borrowing rate. The Company&#x2019;s incremental borrowing rate is the rate of interest that the Company would have to pay to borrow an amount equal to the lease payments over a similar term which was estimated using the Secured Overnight Financing Rate (SOFR) plus a 2% credit risk spread.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease expense equals the total cash payments recognized on a straight-line basis over the lease term. The amortization of the lease asset is calculated as the straight-line lease expense less the accretion of the interest on the lease liability each period. The lease liability is reduced by the cash payment less the interest each period.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy contextRef="c-1" id="f-441">&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill is stated at cost. The Company evaluates the potential impairment of goodwill annually each fourth quarter &lt;/span&gt;&lt;/div&gt;and whenever events or circumstances indicate the carrying value of the goodwill may not be recoverable. The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary. Factors that management considers in this assessment include general economic and industry conditions, overall financial performance (both current and projected), changes in strategy, changes in the composition or carrying amount of net assets, and market capitalization. If this qualitative assessment indicates that it is more likely than not that the fair value of a reporting unit is less than its carrying value, the Company proceeds to perform a quantitative impairment test. Under this quantitative analysis, the fair value of the reporting unit is compared with its carrying value, including goodwill. If the carrying value exceeds the fair value of the reporting unit, the Company recognizes an impairment charge. The Company estimates the fair value of its reporting unit using the income approach based on a discounted cash flow model. In addition, the Company uses the market approach, which compares the reporting unit to publicly traded companies and transactions involving similar businesses, to support the conclusions based on the income approach.</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <us-gaap:IntangibleAssetsFiniteLivedPolicy contextRef="c-1" id="f-442">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Intangible Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets are stated at cost and amortized over the assets&#x2019; estimated useful lives. Intangible assets are either amortized in relation to the relative cash flows anticipated from the intangible asset or using the straight-line method, depending on facts and circumstances. The useful lives of customer relationships range from &lt;span style="-sec-ix-hidden:f-443"&gt;five&lt;/span&gt; to fifteen years, completed technologies from &lt;span style="-sec-ix-hidden:f-445"&gt;five&lt;/span&gt; to nine years, non-compete agreements from &lt;span style="-sec-ix-hidden:f-447"&gt;six&lt;/span&gt; to seven years, and trademarks for three years. In-process technology is an indefinite-lived intangible asset until the technology is completed, at which point it is amortized over its estimated useful life. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company evaluates the potential impairment of intangible assets whenever events or circumstances indicate the carrying value of the assets may not be recoverable. For finite-lived intangible assets that are subject to amortization, the Company follows a two-step process for impairment testing. In step one, known as the recoverability test, the carrying value of the asset is compared to the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the asset. If the sum of the undiscounted future cash flows is less than the carrying value, the asset is not recoverable and step two is performed. In step two, the impairment charge is measured as the amount by which the carrying value of the asset exceeds its fair value.&lt;/span&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsFiniteLivedPolicy>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-44" id="f-444">P15Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-46" id="f-446">P9Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-48" id="f-448">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-49" id="f-449">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:StandardProductWarrantyPolicy contextRef="c-1" id="f-450">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Warranty Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from &lt;span style="-sec-ix-hidden:f-451"&gt;one&lt;/span&gt; to three years from the time of sale based on the product being purchased and the terms of the customer arrangement. Warranty obligations are evaluated and recorded at the time of sale since it is probable that customers will make claims under warranties related to products that have been sold and the amount of these claims can be reasonably estimated based on historical costs to fulfill claims. Obligations may also be recorded subsequent to the time of sale whenever specific events or circumstances impacting product quality become known that would not have been taken into account using historical data.&lt;/span&gt;&lt;/div&gt;</us-gaap:StandardProductWarrantyPolicy>
    <cgnx:ProductWarrantyPeriod contextRef="c-51" id="f-452">P3Y</cgnx:ProductWarrantyPeriod>
    <us-gaap:CommitmentsAndContingenciesPolicyTextBlock contextRef="c-1" id="f-453">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Contingencies&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Loss contingencies are accrued if the loss is probable and the amount of the loss can be reasonably estimated. Legal costs associated with potential loss contingencies are expensed as incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesPolicyTextBlock>
    <us-gaap:DerivativesPolicyTextBlock contextRef="c-1" id="f-454">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Derivative Instruments&lt;/span&gt;&lt;/div&gt;Derivative instruments are recorded on the Consolidated Balance Sheets at fair value. Changes in the fair value of the Company&#x2019;s economic hedges utilizing foreign currency forward contracts are included in "Foreign currency gain (loss)" on the Consolidated Statements of Operations. When the Company is engaged in more than one outstanding derivative contract with the same counterparty and also has a legally enforceable master netting agreement with that counterparty, the &#x201c;net&#x201d; mark-to-market exposure represents the netting of the positive and negative exposures with that counterparty. The cash flows from derivative instruments are presented in the same category on the Consolidated Statements of Cash Flows as the category for the cash flows from the hedged item. Generally, this accounting policy election results in cash flows related to derivative instruments being classified as an operating activity on the Consolidated Statements of Cash Flows.</us-gaap:DerivativesPolicyTextBlock>
    <us-gaap:RevenueRecognitionPolicyTextBlock contextRef="c-1" id="f-455">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &#x201c;Revenue from Contracts with Customers.&#x201d; The core principle of ASC 606 is to recognize revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Company expects to be entitled in exchange for those goods or services. The framework in support of this core principle includes: (1) identifying the contract with the customer; (2) identifying the performance obligations in the contract; (3) determining the transaction price; (4) allocating the transaction price to the performance obligations; and (5) recognizing revenue when (or as) the performance obligations are satisfied. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Identifying the Contract with the Customer&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company identifies contracts with customers as agreements that create enforceable rights and obligations, which typically take the form of customer contracts or purchase orders. 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.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Identifying the Performance Obligations in the Contract&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company identifies performance obligations as promises in contracts to transfer distinct goods or services. Standard products and services that the Company regularly sells separately, which customers can benefit from either on their own or with other readily available resources and are distinct within the context of the customer contract, are accounted for as distinct performance obligations. Application-specific customer solutions that are comprised of a combination of products and services are accounted for as one performance obligation to deliver a total solution to the customer. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Shipping and handling activities for which the Company is responsible under the terms and conditions of the sale are not accounted for as performance obligations but as fulfillment costs. These activities are required to fulfill the Company&#x2019;s promise to transfer the goods and are expensed when revenue is recognized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company does not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract. If revenue is recognized before immaterial promises have been completed, then the costs related to such immaterial promises are accrued at the time of sale.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Determining the Transaction Price&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company determines the transaction price as the amount of consideration it expects to receive in exchange for transferring promised goods or services to the customer. Amounts collected from customers for sales taxes are excluded from the transaction price. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;If a contract includes a variable amount, such as a rebate, then the Company estimates the transaction price using either the expected value or the most likely amount of consideration to be received, depending on the specific facts and circumstances. The Company includes estimated variable consideration in the transaction price only to the extent it is probable that a significant reversal of revenue will not occur when the uncertainty is resolved. The Company updates its estimate of variable consideration at the end of each reporting period to reflect changes in facts and circumstances.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company records revenue net of estimated returns. As a practical expedient, the Company estimates the transaction price using the expected value based on its history of return experience using a portfolio approach in which the Company&#x2019;s total revenue is reduced by an estimate of total customer returns. Management reasonably expects that the effect of applying a portfolio approach to a group of contracts would not differ materially from considering each contract separately.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Allocating the Transaction Price to the Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company allocates the transaction price to each performance obligation at contract inception based on a relative stand-alone selling price basis, or the price at which the Company would sell the good or service separately to similar customers in similar circumstances.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recognizing Revenue When (or As) the Performance Obligations are Satisfied&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue when it transfers the promised goods or services to the customer. Revenue for standard products is recognized at the point in time when the customer obtains control of the goods, which is typically upon shipment or delivery when the customer has legal title, physical possession, the risks and rewards of ownership, and an enforceable obligation to pay for the products. Revenue for services, which are not material, is typically recognized over the time the service is provided. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can reasonably determine that the agreed-upon specifications in the contract have been met and the customer should reasonably accept the performance obligations in the &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#x2019;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#x2019;s requirements. If the Company can reasonably determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the Company&#x2019;s standard products and services, revenue recognition and billing typically occur at the same time. For application-specific customer solutions, however, the agreement with the customer may provide for billing terms which differ from the timing of revenue recognition, resulting in either deferred revenue or unbilled revenue. Credit assessments are performed to determine payment terms, which vary by region, industry, and customer. Prepayment terms result in contract liabilities for customer deposits. When credit is granted to customers, payment is typically due 30 to 90 days from billing. The Company's contracts typically have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on such contracts and to expense sales commissions. The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management exercises judgment when determining the amount of revenue to be recognized each period. Such judgments include, but are not limited to, assessing the customer&#x2019;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueRecognitionPolicyTextBlock>
    <cgnx:RevenuePaymentTerms contextRef="c-50" id="f-456">P30D</cgnx:RevenuePaymentTerms>
    <cgnx:RevenuePaymentTerms contextRef="c-51" id="f-457">P90D</cgnx:RevenuePaymentTerms>
    <us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock contextRef="c-1" id="f-458">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Research and Development&lt;/span&gt;&lt;/div&gt;Research and development costs primarily include costs related to personnel, prototyping materials and equipment, and outside services. Research and development costs are expensed when incurred until technological feasibility has been established for the product. Thereafter, all software costs may be capitalized until the product is available for general release to customers. The Company determines technological feasibility at the time the product reaches beta in its stage of development. Historically, the time incurred between beta and general release to customers has been short, and therefore, the costs have been insignificant.</us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock>
    <us-gaap:AdvertisingCostsPolicyTextBlock contextRef="c-1" id="f-459">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Advertising Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Advertising costs are expensed as incurred and totaled $1,286,000 in 2024, $1,190,000 in 2023, and $1,257,000 in 2022.&lt;/span&gt;&lt;/div&gt;</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense contextRef="c-1" decimals="0" id="f-460" unitRef="usd">1286000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense contextRef="c-4" decimals="0" id="f-461" unitRef="usd">1190000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense contextRef="c-5" decimals="0" id="f-462" unitRef="usd">1257000</us-gaap:AdvertisingExpense>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="c-1" id="f-463">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s stock-based awards that result in compensation expense consist of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). The Company has reserved a specific number of shares of its authorized but unissued shares for issuance upon the exercise of stock options or the settlement of RSUs. When a stock option is exercised or an RSU is settled, the Company issues new shares from this pool. Management is responsible for determining the appropriate valuation model and estimating the fair value of stock-based awards, and in doing so, considers a number of factors, including information provided by an outside valuation advisor and the observable market price of the Company's common stock on the grant date. The fair value of RSUs is determined based on the observable market price of the Company's common stock on the grant date less the present value of expected future dividends. The fair value of PRSUs where the performance goal includes service and market conditions is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. When determining the grant-date fair value of stock-based awards, management further considers whether an adjustment is required to the observable &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;market price or volatility of the Company's common stock that is used in the valuation as a result of material non-public information if that information is expected to result in a material increase in share price.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes compensation expense related to stock-based awards using the graded attribution method, in which expense is recognized on a straight-line basis over the service period for each separately vesting portion of the stock option or RSU as if the award was, in substance, multiple awards. The amount of compensation expense recognized at the end of the vesting period is based on the number of awards for which the requisite service has been completed. No compensation expense is recognized for awards that are forfeited for which the employee does not render the requisite service. The term &#x201c;forfeitures&#x201d; is distinct from &#x201c;expirations&#x201d; and represents only the unvested portion of the surrendered award. The Company applies estimated forfeiture rates to its unvested awards to arrive at the amount of compensation expense that is expected to be recognized over the requisite service period. At the end of each separately vesting portion of an award, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based on the employee&#x2019;s service, and an increase or decrease to compensation expense is recorded to true up the final expense.&lt;/span&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="c-1" id="f-464">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes a tax position in its financial statements when that tax position, based solely upon its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statutes of limitations. Derecognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The portion of the liability that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statutes of limitations) or are not expected to be paid within one year are classified as a non-current liability. It is the Company&#x2019;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred tax assets and liabilities are determined based on the differences between the financial statement and tax bases of assets and liabilities as measured by the enacted tax rates that will be in effect when these differences reverse. Valuation allowances are provided if, based on the weight of available evidence, it is more likely than not that some or all of the deferred tax assets will not be realized. The Company accounts for the impact of Global Intangible Low-Taxed Income (GILTI) tax in deferred taxes. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sales tax in the United States and similar taxes in other jurisdictions that are collected from customers and remitted to government authorities are presented on a gross basis (i.e., a receivable from the customer with a corresponding payable to the government). Amounts collected from customers and retained by the Company during tax holidays are recognized as non-operating income when earned.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock contextRef="c-1" id="f-465">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Net Income Per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period. Diluted net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period plus potential dilutive common shares. Dilutive common equivalent shares consist of stock options and restricted stock units and are calculated using the treasury stock method. Common equivalent shares do not qualify as participating securities. In periods where the Company records a net loss, potential common stock equivalents are not included in the calculation of diluted net loss per share as their effect would be anti-dilutive.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ComprehensiveIncomePolicyPolicyTextBlock contextRef="c-1" id="f-466">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Comprehensive Income&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Comprehensive income is defined as the change in equity of a company during a period from transactions and other events and circumstances, excluding transactions resulting from investments by owners and distributions to owners. Accumulated other comprehensive loss, net of tax, consists of foreign currency translation adjustment losses of $67,808,000 and $36,550,000, as of December 31, 2024 and December 31, 2023, respectively; net unrealized losses on available-for-sale investments of $3,698,000 and $7,515,000 as of December 31, 2024 and December 31, 2023, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,000 at each year end.&lt;/span&gt;&lt;/div&gt;</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax contextRef="c-6" decimals="0" id="f-467" unitRef="usd">-67808000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax contextRef="c-7" decimals="0" id="f-468" unitRef="usd">36550000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-6" decimals="0" id="f-469" unitRef="usd">-3698000</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-7" decimals="0" id="f-470" unitRef="usd">7515000</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax contextRef="c-1" decimals="0" id="f-471" unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax contextRef="c-4" decimals="0" id="f-472" unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock contextRef="c-1" id="f-473">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Concentrations of Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and accounts receivable. The Company has certain domestic and foreign cash balances that exceed the insured limits set by the Federal Deposit Insurance Corporation (FDIC) in the United States and equivalent regulatory agencies in foreign countries. The Company primarily invests in investment-grade debt securities and has established guidelines relative to credit ratings, diversification, and maturities of its debt securities that maintain liquidity and safety. The Company has historically not experienced any significant realized losses on its debt securities. The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has historically not experienced any significant losses related to the collection of its accounts receivable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A significant portion of the Company's products is presently manufactured by a third-party contractor located in Indonesia. This contract manufacturer has agreed to provide the Company with termination notification periods and last-time-buy rights, if and when that may be applicable. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges or other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, delivery costs, and manufacturing delays.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company sources components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components may typically be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain of the Company&#x2019;s products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.&lt;/span&gt;&lt;/div&gt;</cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock>
    <us-gaap:BusinessCombinationsPolicy contextRef="c-1" id="f-474">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Business Combinations&lt;/span&gt;&lt;/div&gt;The Company determines whether a transaction qualifies as a business combination by applying the definition of a business, which requires the assets acquired and liabilities assumed to be inputs and processes that have the ability to contribute to the creation of outputs. The Company accounts for business combinations under the acquisition method of accounting, which requires the following steps: (1) identifying the acquirer, (2) determining the acquisition date, (3) recognizing and measuring the identifiable assets acquired and the liabilities assumed, and (4) recognizing and measuring goodwill. The Company measures the identifiable assets acquired and liabilities assumed at their estimated fair values as of the acquisition date. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired, on detailed valuations that use information and assumptions provided by management, which consider management&#x2019;s best estimates of inputs and assumptions that a market participant would use. Goodwill is recognized as of the acquisition date as the excess of the consideration transferred over the net amount of assets acquired and liabilities assumed. Transaction costs are expensed as incurred.</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="c-1" id="f-486">New Pronouncements&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendments in this ASU apply to all public entities, including public entities with a single reportable segment, that are required to report segment information in accordance with Topic 280, Segment Reporting. The amendments require public business entities to provide in interim and annual periods one or more measures of segment profit or loss used by the chief operating decision maker to allocate resources and assess performance. Additionally, the amendments require disclosure of significant segment expenses and other segment items, as well as incremental qualitative disclosures. The amendments in this ASU are effective for fiscal years beginning after December 15, 2023 and should be applied on a retrospective basis. The Company adopted ASU 2023-07 in 2024. Refer to Note 20 for related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendments in this ASU apply to all entities that are subject to Topic 740, Income Taxes. The amendments require public business entities to disclose specific categories in their rate reconciliation and provide additional information for reconciling items that meet a quantitative threshold. They also require all entities to disclose income taxes paid, net of refund received, disaggregated by federal, state, and foreign taxes and by individual jurisdictions in which income taxes paid, net of refunds received, is equal to or greater than five percent of total income taxes paid. For public business entities, the amendments in this ASU are effective for annual periods beginning after December 15, 2024. The amendments in this ASU should be applied on a prospective basis. Management does not expect ASU 2023-09 to have a material impact on the Company's financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2024-03, Income Statement&#x2014;Reporting Comprehensive Income&#x2014;Expense Disaggregation Disclosures (Subtopic 220-40)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASU 2024-03 aims to enhance transparency for users of financial statements by requiring public business entities to disaggregate specific expense categories. ASU 2024-03 mandates disclosures in the notes to financial statements detailing the composition and trends of key expense categories within major income statement captions. These enhanced disclosures are intended to help investors more effectively assess the entity&#x2019;s performance, understand its cost structure, and make more accurate forecasts of future cash flows. For public business entities, ASU 2024-03 is effective for annual periods beginning after December 15, 2026, and interim periods within annual reporting periods beginning after December 15, 2027. The adoption will result in disclosure changes only.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock contextRef="c-1" id="f-485">New Pronouncements&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2023-07, Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendments in this ASU apply to all public entities, including public entities with a single reportable segment, that are required to report segment information in accordance with Topic 280, Segment Reporting. The amendments require public business entities to provide in interim and annual periods one or more measures of segment profit or loss used by the chief operating decision maker to allocate resources and assess performance. Additionally, the amendments require disclosure of significant segment expenses and other segment items, as well as incremental qualitative disclosures. The amendments in this ASU are effective for fiscal years beginning after December 15, 2023 and should be applied on a retrospective basis. The Company adopted ASU 2023-07 in 2024. Refer to Note 20 for related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2023-09, Income Taxes (Topic 740): Improvements to Income Tax Disclosures&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendments in this ASU apply to all entities that are subject to Topic 740, Income Taxes. The amendments require public business entities to disclose specific categories in their rate reconciliation and provide additional information for reconciling items that meet a quantitative threshold. They also require all entities to disclose income taxes paid, net of refund received, disaggregated by federal, state, and foreign taxes and by individual jurisdictions in which income taxes paid, net of refunds received, is equal to or greater than five percent of total income taxes paid. For public business entities, the amendments in this ASU are effective for annual periods beginning after December 15, 2024. The amendments in this ASU should be applied on a prospective basis. Management does not expect ASU 2023-09 to have a material impact on the Company's financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2024-03, Income Statement&#x2014;Reporting Comprehensive Income&#x2014;Expense Disaggregation Disclosures (Subtopic 220-40)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ASU 2024-03 aims to enhance transparency for users of financial statements by requiring public business entities to disaggregate specific expense categories. ASU 2024-03 mandates disclosures in the notes to financial statements detailing the composition and trends of key expense categories within major income statement captions. These enhanced disclosures are intended to help investors more effectively assess the entity&#x2019;s performance, understand its cost structure, and make more accurate forecasts of future cash flows. For public business entities, ASU 2024-03 is effective for annual periods beginning after December 15, 2026, and interim periods within annual reporting periods beginning after December 15, 2027. The adoption will result in disclosure changes only.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
    <us-gaap:FairValueDisclosuresTextBlock contextRef="c-1" id="f-487">Fair Value Measurements&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Financial Assets and Liabilities that are Measured at Fair Value on a Recurring Basis&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, 2024 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:53.578%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.524%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Quoted&#160;Prices&#160;in&lt;br/&gt;Active Markets&lt;br/&gt;for Identical&lt;br/&gt;Assets (Level&#160;1)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&#160;Other&lt;br/&gt;Observable&lt;br/&gt;Inputs (Level&#160;2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unobservable Inputs                       (Level 3)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,242&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;340,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;45,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;324&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s money market instruments are reported at fair value based on the daily market price for identical assets in active markets, and are therefore classified as Level 1. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s debt securities and forward contracts are reported at fair value based on model-driven valuations in which all significant inputs are observable or can be derived from or corroborated by observable market data for substantially the full term of the asset or liability, and are therefore classified as Level 2. Management is responsible for estimating the fair value of these financial assets and liabilities, and in doing so, considers valuations provided by a large, third-party pricing service. For debt securities, this service maintains regular contact with market makers, brokers, dealers, and analysts to gather information on market movement, direction, trends, and other specific data. They use this information to structure yield curves for various types of debt securities and arrive at the daily valuations. The Company's forward contracts are typically traded or executed in over-the-counter markets with a high degree of pricing transparency. The market participants are generally large commercial banks.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis&lt;/span&gt;&lt;/div&gt;Non-financial assets, such as property, plant and equipment, operating lease assets, goodwill, and intangible assets, are required to be measured at fair value only when an impairment loss is recognized. The Company evaluates these long-lived assets for impairment whenever events or changes in circumstances, referred to as "triggering events," indicate the carrying value may not be recoverable. The Company did not record impairment charges related to non-financial assets in 2024, 2023, or 2022.</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock contextRef="c-1" id="f-488">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, 2024 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:53.578%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.524%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Quoted&#160;Prices&#160;in&lt;br/&gt;Active Markets&lt;br/&gt;for Identical&lt;br/&gt;Assets (Level&#160;1)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&#160;Other&lt;br/&gt;Observable&lt;br/&gt;Inputs (Level&#160;2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unobservable Inputs                       (Level 3)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,242&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;340,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;45,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;324&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure contextRef="c-56" decimals="-3" id="f-489" unitRef="usd">15242000</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure contextRef="c-57" decimals="-3" id="f-490" unitRef="usd">0</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure contextRef="c-58" decimals="-3" id="f-491" unitRef="usd">0</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure contextRef="c-56" decimals="-3" id="f-492" unitRef="usd">0</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure contextRef="c-57" decimals="-3" id="f-493" unitRef="usd">340916000</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure contextRef="c-58" decimals="-3" id="f-494" unitRef="usd">0</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure contextRef="c-56" decimals="-3" id="f-495" unitRef="usd">0</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure contextRef="c-57" decimals="-3" id="f-496" unitRef="usd">45634000</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure contextRef="c-58" decimals="-3" id="f-497" unitRef="usd">0</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure contextRef="c-56" decimals="-3" id="f-498" unitRef="usd">0</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure contextRef="c-57" decimals="-3" id="f-499" unitRef="usd">13314000</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure contextRef="c-58" decimals="-3" id="f-500" unitRef="usd">0</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure contextRef="c-56" decimals="-3" id="f-501" unitRef="usd">0</cgnx:SovereignBondsFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure contextRef="c-57" decimals="-3" id="f-502" unitRef="usd">990000</cgnx:SovereignBondsFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure contextRef="c-58" decimals="-3" id="f-503" unitRef="usd">0</cgnx:SovereignBondsFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure contextRef="c-56" decimals="-3" id="f-504" unitRef="usd">0</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure contextRef="c-57" decimals="-3" id="f-505" unitRef="usd">324000</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure contextRef="c-58" decimals="-3" id="f-506" unitRef="usd">0</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure contextRef="c-56" decimals="-3" id="f-507" unitRef="usd">0</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure contextRef="c-57" decimals="-3" id="f-508" unitRef="usd">211000</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure contextRef="c-58" decimals="-3" id="f-509" unitRef="usd">0</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock contextRef="c-1" id="f-510">Cash, Cash Equivalents, and Investments&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash, cash equivalents, and investments consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;170,852&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;183,242&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;15,242&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,413&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;186,094&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;202,655&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;55,742&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;124,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,487&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;990&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;737&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;59,956&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;129,392&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;285,174&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;183,965&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;43,147&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;12,577&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,763&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;340,898&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;244,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;586,948&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;576,277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Corporate bonds consist of debt securities issued by both domestic and foreign companies; treasury notes consist of debt securities issued by the U.S. government; sovereign bonds consist of direct debt issued by foreign governments; and asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement. All of the Company's securities as of December 31, 2024 and 2023 were denominated in U.S. Dollars.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s cash balance included foreign bank balances totaling $156,027,000 and $173,614,000 as of December&#160;31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued interest receivable is included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $4,144,000 and $3,169,000 as of December 31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s available-for-sale investments as of December&#160;31, 2024 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:36.583%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.005%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Amortized&lt;br/&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;56,472&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(733)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,742&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,501&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(23)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;739&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;737&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;288,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;408&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,566)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;285,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,570&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(425)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,131&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(554)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,577&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;405,758&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;413&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(5,317)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;400,854&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s available-for-sale investments as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:36.583%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.005%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Amortized&lt;br/&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;128,150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,299)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;124,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,637&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(86)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,012&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(22)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;189,326&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,867)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;183,965&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,654&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(213)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,773&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,010)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,763&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,037&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(58)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;383,589&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;588&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,555)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;373,622&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2024 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:34.289%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.885%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.328%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Less than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Greater than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;172,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,227)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;87,815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,071)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;259,864&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4,298)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;42,149&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(425)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,636&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(439)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,024&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(547)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,290&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(10)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(557)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(23)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(23)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;225,222&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(3,199)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;93,582&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(2,118)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;318,804&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(5,317)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:34.289%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.885%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.328%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Less than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Greater than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(359)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;226,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,807)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;257,413&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,166)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(153)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(60)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,166&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(213)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,062&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,049)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(47)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,096)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,968&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(80)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,968&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(80)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;68,557&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(1,561)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;233,304&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(8,994)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;301,861&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,555)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management monitors debt securities that are in an unrealized loss position to determine whether a loss exists related to the credit quality of the issuer. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows. Based on this evaluation, no allowance for credit losses on debt securities was recorded as of December 31, 2024, 2023, or 2022. Management currently intends to hold these securities to full value recovery at maturity.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;The following table summarizes the Company's gross realized gains and losses on the sale of debt securities (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:52.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.823%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.524%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross realized gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;111&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;133&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross realized losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(16)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,065)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(315)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net realized gains (losses)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(8)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,954)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(182)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Realized gains and losses are included in "Investment income" on the Consolidated Statements of Operations. Prior to the sale of these securities, unrealized gains and losses for these debt securities, net of tax, were recorded in shareholders&#x2019; equity as accumulated other comprehensive loss.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the effective maturity dates of the Company&#x2019;s available-for-sale investments as of December&#160;31, 2024 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:25.508%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.157%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.864%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.256%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.581%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;&amp;lt;1&#160;Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;1-2&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2-3&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;3-4&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;4-5&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;5-7&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,742&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62,324&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;92,207&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;68,029&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62,614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;340,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,177&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,365&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,605&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;45,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;737&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,296&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,982&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,388&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;59,956&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;77,412&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;113,572&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;81,930&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;64,596&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,388&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;400,854&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock>
    <cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock contextRef="c-1" id="f-511">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash, cash equivalents, and investments consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;170,852&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;183,242&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;15,242&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,413&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;186,094&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;202,655&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;55,742&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;124,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,487&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;990&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;737&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;59,956&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;129,392&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;285,174&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;183,965&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;43,147&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;12,577&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,763&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;340,898&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;244,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;586,948&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;576,277&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock>
    <us-gaap:Cash contextRef="c-6" decimals="-3" id="f-512" unitRef="usd">170852000</us-gaap:Cash>
    <us-gaap:Cash contextRef="c-7" decimals="-3" id="f-513" unitRef="usd">183242000</us-gaap:Cash>
    <us-gaap:MoneyMarketFundsAtCarryingValue contextRef="c-6" decimals="-3" id="f-514" unitRef="usd">15242000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:MoneyMarketFundsAtCarryingValue contextRef="c-7" decimals="-3" id="f-515" unitRef="usd">19413000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-6" decimals="-3" id="f-516" unitRef="usd">186094000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-7" decimals="-3" id="f-517" unitRef="usd">202655000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-59" decimals="-3" id="f-518" unitRef="usd">55742000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-60" decimals="-3" id="f-519" unitRef="usd">124851000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-61" decimals="-3" id="f-520" unitRef="usd">2487000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-62" decimals="-3" id="f-521" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-63" decimals="-3" id="f-522" unitRef="usd">990000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-64" decimals="-3" id="f-523" unitRef="usd">990000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-65" decimals="-3" id="f-524" unitRef="usd">737000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-66" decimals="-3" id="f-525" unitRef="usd">3551000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-6" decimals="-3" id="f-526" unitRef="usd">59956000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-7" decimals="-3" id="f-527" unitRef="usd">129392000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-59" decimals="-3" id="f-528" unitRef="usd">285174000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-60" decimals="-3" id="f-529" unitRef="usd">183965000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-61" decimals="-3" id="f-530" unitRef="usd">43147000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-62" decimals="-3" id="f-531" unitRef="usd">43523000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-65" decimals="-3" id="f-532" unitRef="usd">12577000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-66" decimals="-3" id="f-533" unitRef="usd">15763000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-63" decimals="-3" id="f-534" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-64" decimals="-3" id="f-535" unitRef="usd">979000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:LongTermInvestments contextRef="c-6" decimals="-3" id="f-536" unitRef="usd">340898000</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments contextRef="c-7" decimals="-3" id="f-537" unitRef="usd">244230000</us-gaap:LongTermInvestments>
    <cgnx:CashCashEquivalentsShortTermAndLongTermInvestments contextRef="c-6" decimals="-3" id="f-538" unitRef="usd">586948000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
    <cgnx:CashCashEquivalentsShortTermAndLongTermInvestments contextRef="c-7" decimals="-3" id="f-539" unitRef="usd">576277000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
    <cgnx:DueFromForeignBanks contextRef="c-6" decimals="-3" id="f-540" unitRef="usd">156027000</cgnx:DueFromForeignBanks>
    <cgnx:DueFromForeignBanks contextRef="c-7" decimals="-3" id="f-541" unitRef="usd">173614000</cgnx:DueFromForeignBanks>
    <us-gaap:InterestReceivable contextRef="c-6" decimals="-3" id="f-542" unitRef="usd">4144000</us-gaap:InterestReceivable>
    <us-gaap:InterestReceivable contextRef="c-7" decimals="-3" id="f-543" unitRef="usd">3169000</us-gaap:InterestReceivable>
    <us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock contextRef="c-1" id="f-544">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s available-for-sale investments as of December&#160;31, 2024 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:36.583%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.005%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Amortized&lt;br/&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;56,472&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(733)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,742&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,501&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(23)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;739&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;737&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;288,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;408&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,566)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;285,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,570&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(425)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,131&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(554)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,577&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;405,758&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;413&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(5,317)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;400,854&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s available-for-sale investments as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:36.583%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.005%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Amortized&lt;br/&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;128,150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,299)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;124,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,637&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(86)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,012&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(22)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;189,326&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,867)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;183,965&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,654&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(213)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,773&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,010)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,763&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,037&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(58)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;383,589&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;588&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,555)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;373,622&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-67" decimals="-3" id="f-545" unitRef="usd">56472000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-67" decimals="-3" id="f-546" unitRef="usd">3000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-67" decimals="-3" id="f-547" unitRef="usd">733000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-67" decimals="-3" id="f-548" unitRef="usd">55742000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-68" decimals="-3" id="f-549" unitRef="usd">2501000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-68" decimals="-3" id="f-550" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-68" decimals="-3" id="f-551" unitRef="usd">14000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-68" decimals="-3" id="f-552" unitRef="usd">2487000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-69" decimals="-3" id="f-553" unitRef="usd">1013000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-69" decimals="-3" id="f-554" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-69" decimals="-3" id="f-555" unitRef="usd">23000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-69" decimals="-3" id="f-556" unitRef="usd">990000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-70" decimals="-3" id="f-557" unitRef="usd">739000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-70" decimals="-3" id="f-558" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-70" decimals="-3" id="f-559" unitRef="usd">2000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-70" decimals="-3" id="f-560" unitRef="usd">737000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-71" decimals="-3" id="f-561" unitRef="usd">288332000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-71" decimals="-3" id="f-562" unitRef="usd">408000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-71" decimals="-3" id="f-563" unitRef="usd">3566000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-71" decimals="-3" id="f-564" unitRef="usd">285174000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-72" decimals="-3" id="f-565" unitRef="usd">43570000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-72" decimals="-3" id="f-566" unitRef="usd">2000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-72" decimals="-3" id="f-567" unitRef="usd">425000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-72" decimals="-3" id="f-568" unitRef="usd">43147000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-73" decimals="-3" id="f-569" unitRef="usd">13131000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-73" decimals="-3" id="f-570" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-73" decimals="-3" id="f-571" unitRef="usd">554000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-73" decimals="-3" id="f-572" unitRef="usd">12577000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-6" decimals="-3" id="f-573" unitRef="usd">405758000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-6" decimals="-3" id="f-574" unitRef="usd">413000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-6" decimals="-3" id="f-575" unitRef="usd">5317000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-6" decimals="-3" id="f-576" unitRef="usd">400854000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-74" decimals="-3" id="f-577" unitRef="usd">128150000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-74" decimals="-3" id="f-578" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-74" decimals="-3" id="f-579" unitRef="usd">3299000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-74" decimals="-3" id="f-580" unitRef="usd">124851000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-75" decimals="-3" id="f-581" unitRef="usd">3637000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-75" decimals="-3" id="f-582" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-75" decimals="-3" id="f-583" unitRef="usd">86000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-75" decimals="-3" id="f-584" unitRef="usd">3551000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-76" decimals="-3" id="f-585" unitRef="usd">1012000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-76" decimals="-3" id="f-586" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-76" decimals="-3" id="f-587" unitRef="usd">22000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-76" decimals="-3" id="f-588" unitRef="usd">990000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-77" decimals="-3" id="f-589" unitRef="usd">189326000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-77" decimals="-3" id="f-590" unitRef="usd">506000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-77" decimals="-3" id="f-591" unitRef="usd">5867000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-77" decimals="-3" id="f-592" unitRef="usd">183965000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-78" decimals="-3" id="f-593" unitRef="usd">43654000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-78" decimals="-3" id="f-594" unitRef="usd">82000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-78" decimals="-3" id="f-595" unitRef="usd">213000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-78" decimals="-3" id="f-596" unitRef="usd">43523000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-79" decimals="-3" id="f-597" unitRef="usd">16773000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-79" decimals="-3" id="f-598" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-79" decimals="-3" id="f-599" unitRef="usd">1010000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-79" decimals="-3" id="f-600" unitRef="usd">15763000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-80" decimals="-3" id="f-601" unitRef="usd">1037000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-80" decimals="-3" id="f-602" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-80" decimals="-3" id="f-603" unitRef="usd">58000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-80" decimals="-3" id="f-604" unitRef="usd">979000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-7" decimals="-3" id="f-605" unitRef="usd">383589000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-7" decimals="-3" id="f-606" unitRef="usd">588000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-7" decimals="-3" id="f-607" unitRef="usd">10555000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-7" decimals="-3" id="f-608" unitRef="usd">373622000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock contextRef="c-1" id="f-609">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2024 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:34.289%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.885%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.328%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Less than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Greater than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;172,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,227)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;87,815&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,071)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;259,864&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4,298)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;42,149&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(425)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,636&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(439)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,024&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(547)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,290&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(10)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(557)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(23)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(23)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;225,222&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(3,199)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;93,582&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(2,118)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;318,804&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(5,317)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:34.289%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.885%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.328%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Less than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Greater than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(359)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;226,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,807)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;257,413&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,166)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(153)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(60)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,166&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(213)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,062&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,049)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(47)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,096)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,968&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(80)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,968&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(80)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;68,557&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(1,561)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;233,304&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(8,994)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;301,861&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,555)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-59" decimals="-3" id="f-610" unitRef="usd">172049000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-59" decimals="-3" id="f-611" unitRef="usd">2227000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-59" decimals="-3" id="f-612" unitRef="usd">87815000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-59" decimals="-3" id="f-613" unitRef="usd">2071000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-59" decimals="-3" id="f-614" unitRef="usd">259864000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-59" decimals="-3" id="f-615" unitRef="usd">4298000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-81" decimals="-3" id="f-616" unitRef="usd">42149000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-81" decimals="-3" id="f-617" unitRef="usd">425000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-81" decimals="-3" id="f-618" unitRef="usd">2487000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-81" decimals="-3" id="f-619" unitRef="usd">14000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-81" decimals="-3" id="f-620" unitRef="usd">44636000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-81" decimals="-3" id="f-621" unitRef="usd">439000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-65" decimals="-3" id="f-622" unitRef="usd">11024000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-65" decimals="-3" id="f-623" unitRef="usd">547000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-65" decimals="-3" id="f-624" unitRef="usd">2290000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-65" decimals="-3" id="f-625" unitRef="usd">10000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-65" decimals="-3" id="f-626" unitRef="usd">13314000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-65" decimals="-3" id="f-627" unitRef="usd">557000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-63" decimals="-3" id="f-628" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-63" decimals="-3" id="f-629" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-63" decimals="-3" id="f-630" unitRef="usd">990000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-63" decimals="-3" id="f-631" unitRef="usd">23000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-63" decimals="-3" id="f-632" unitRef="usd">990000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-63" decimals="-3" id="f-633" unitRef="usd">23000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-6" decimals="-3" id="f-634" unitRef="usd">225222000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-6" decimals="-3" id="f-635" unitRef="usd">3199000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-6" decimals="-3" id="f-636" unitRef="usd">93582000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-6" decimals="-3" id="f-637" unitRef="usd">2118000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-6" decimals="-3" id="f-638" unitRef="usd">318804000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-6" decimals="-3" id="f-639" unitRef="usd">5317000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-60" decimals="-3" id="f-640" unitRef="usd">30770000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-60" decimals="-3" id="f-641" unitRef="usd">359000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-60" decimals="-3" id="f-642" unitRef="usd">226643000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-60" decimals="-3" id="f-643" unitRef="usd">8807000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-60" decimals="-3" id="f-644" unitRef="usd">257413000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-60" decimals="-3" id="f-645" unitRef="usd">9166000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-82" decimals="-3" id="f-646" unitRef="usd">20725000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-82" decimals="-3" id="f-647" unitRef="usd">153000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-82" decimals="-3" id="f-648" unitRef="usd">2441000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-82" decimals="-3" id="f-649" unitRef="usd">60000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-82" decimals="-3" id="f-650" unitRef="usd">23166000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-82" decimals="-3" id="f-651" unitRef="usd">213000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-66" decimals="-3" id="f-652" unitRef="usd">17062000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-66" decimals="-3" id="f-653" unitRef="usd">1049000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-66" decimals="-3" id="f-654" unitRef="usd">2252000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-66" decimals="-3" id="f-655" unitRef="usd">47000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-66" decimals="-3" id="f-656" unitRef="usd">19314000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-66" decimals="-3" id="f-657" unitRef="usd">1096000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-64" decimals="-3" id="f-658" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-64" decimals="-3" id="f-659" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-64" decimals="-3" id="f-660" unitRef="usd">1968000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-64" decimals="-3" id="f-661" unitRef="usd">80000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-64" decimals="-3" id="f-662" unitRef="usd">1968000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-64" decimals="-3" id="f-663" unitRef="usd">80000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-7" decimals="-3" id="f-664" unitRef="usd">68557000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-7" decimals="-3" id="f-665" unitRef="usd">1561000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-7" decimals="-3" id="f-666" unitRef="usd">233304000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-7" decimals="-3" id="f-667" unitRef="usd">8994000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-7" decimals="-3" id="f-668" unitRef="usd">301861000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-7" decimals="-3" id="f-669" unitRef="usd">10555000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss contextRef="c-7" decimals="-3" id="f-670" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss contextRef="c-8" decimals="-3" id="f-671" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss contextRef="c-6" decimals="-3" id="f-672" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:RealizedGainLossOnInvestmentsTableTextBlock contextRef="c-1" id="f-673">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;The following table summarizes the Company's gross realized gains and losses on the sale of debt securities (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:52.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.823%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.524%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross realized gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;111&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;133&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross realized losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(16)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,065)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(315)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net realized gains (losses)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(8)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,954)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(182)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RealizedGainLossOnInvestmentsTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain contextRef="c-1" decimals="-3" id="f-674" unitRef="usd">8000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain contextRef="c-4" decimals="-3" id="f-675" unitRef="usd">111000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain contextRef="c-5" decimals="-3" id="f-676" unitRef="usd">133000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss contextRef="c-1" decimals="-3" id="f-677" unitRef="usd">-16000</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss contextRef="c-4" decimals="-3" id="f-678" unitRef="usd">-2065000</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss contextRef="c-5" decimals="-3" id="f-679" unitRef="usd">-315000</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:RealizedInvestmentGainsLosses contextRef="c-1" decimals="-3" id="f-680" unitRef="usd">-8000</us-gaap:RealizedInvestmentGainsLosses>
    <us-gaap:RealizedInvestmentGainsLosses contextRef="c-4" decimals="-3" id="f-681" unitRef="usd">-1954000</us-gaap:RealizedInvestmentGainsLosses>
    <us-gaap:RealizedInvestmentGainsLosses contextRef="c-5" decimals="-3" id="f-682" unitRef="usd">-182000</us-gaap:RealizedInvestmentGainsLosses>
    <us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock contextRef="c-1" id="f-683">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the effective maturity dates of the Company&#x2019;s available-for-sale investments as of December&#160;31, 2024 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:25.508%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.157%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.864%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.256%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.581%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;&amp;lt;1&#160;Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;1-2&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2-3&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;3-4&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;4-5&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;5-7&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,742&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62,324&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;92,207&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;68,029&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62,614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;340,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,487&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,177&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,365&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,605&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;45,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;737&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,296&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,982&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,388&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;59,956&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;77,412&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;113,572&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;81,930&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;64,596&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,388&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;400,854&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="c-59" decimals="-3" id="f-684" unitRef="usd">55742000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="c-59" decimals="-3" id="f-685" unitRef="usd">62324000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="c-59" decimals="-3" id="f-686" unitRef="usd">92207000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="c-59" decimals="-3" id="f-687" unitRef="usd">68029000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="c-59" decimals="-3" id="f-688" unitRef="usd">62614000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="c-59" decimals="-3" id="f-689" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-59" decimals="-3" id="f-690" unitRef="usd">340916000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="c-81" decimals="-3" id="f-691" unitRef="usd">2487000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="c-81" decimals="-3" id="f-692" unitRef="usd">9177000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="c-81" decimals="-3" id="f-693" unitRef="usd">21365000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="c-81" decimals="-3" id="f-694" unitRef="usd">12605000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="c-81" decimals="-3" id="f-695" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="c-81" decimals="-3" id="f-696" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-81" decimals="-3" id="f-697" unitRef="usd">45634000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="c-65" decimals="-3" id="f-698" unitRef="usd">737000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="c-65" decimals="-3" id="f-699" unitRef="usd">5911000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="c-65" decimals="-3" id="f-700" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="c-65" decimals="-3" id="f-701" unitRef="usd">1296000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="c-65" decimals="-3" id="f-702" unitRef="usd">1982000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="c-65" decimals="-3" id="f-703" unitRef="usd">3388000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-65" decimals="-3" id="f-704" unitRef="usd">13314000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="c-63" decimals="-3" id="f-705" unitRef="usd">990000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="c-63" decimals="-3" id="f-706" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="c-63" decimals="-3" id="f-707" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="c-63" decimals="-3" id="f-708" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="c-63" decimals="-3" id="f-709" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="c-63" decimals="-3" id="f-710" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-63" decimals="-3" id="f-711" unitRef="usd">990000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="c-6" decimals="-3" id="f-712" unitRef="usd">59956000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="c-6" decimals="-3" id="f-713" unitRef="usd">77412000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="c-6" decimals="-3" id="f-714" unitRef="usd">113572000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="c-6" decimals="-3" id="f-715" unitRef="usd">81930000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="c-6" decimals="-3" id="f-716" unitRef="usd">64596000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="c-6" decimals="-3" id="f-717" unitRef="usd">3388000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-6" decimals="-3" id="f-718" unitRef="usd">400854000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:InventoryDisclosureTextBlock contextRef="c-1" id="f-719">Inventories&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:70.935%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.517%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;86,917&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;93,201&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Work-in-process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,544&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;65,066&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;63,337&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;157,527&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;162,285&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="c-1" id="f-720">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:70.935%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.517%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;86,917&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;93,201&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Work-in-process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,544&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,747&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;65,066&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;63,337&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;157,527&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;162,285&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="c-6" decimals="-3" id="f-721" unitRef="usd">86917000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="c-7" decimals="-3" id="f-722" unitRef="usd">93201000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="c-6" decimals="-3" id="f-723" unitRef="usd">5544000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="c-7" decimals="-3" id="f-724" unitRef="usd">5747000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="c-6" decimals="-3" id="f-725" unitRef="usd">65066000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="c-7" decimals="-3" id="f-726" unitRef="usd">63337000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryNet contextRef="c-6" decimals="-3" id="f-727" unitRef="usd">157527000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="c-7" decimals="-3" id="f-728" unitRef="usd">162285000</us-gaap:InventoryNet>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock contextRef="c-1" id="f-729">Property, Plant, and Equipment&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant, and equipment consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:70.935%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.517%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Land&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,711&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,805&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Buildings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;38,878&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Building improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;46,496&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,992&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;21,642&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,611&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Computer hardware and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;57,791&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,154&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Manufacturing test equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;45,523&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36,182&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,468&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,361&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;225,509&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;206,222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(127,064)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(100,373)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;98,445&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;105,849&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company disposed of property, plant, and equipment with a cost basis of $9,580,000 and accumulated depreciation of $9,492,000 in 2024, resulting in a loss of $88,000. The Company disposed of property, plant, and equipment with a cost basis of $12,421,000 and accumulated depreciation of $12,184,000 in 2023, net of proceeds of $8,000, resulting in a loss of $229,000.&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="c-1" id="f-730">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant, and equipment consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:70.935%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.517%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Land&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,711&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,805&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Buildings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;38,878&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Building improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;46,496&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,992&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;21,642&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,611&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Computer hardware and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;57,791&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,154&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Manufacturing test equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;45,523&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36,182&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,468&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,361&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;225,509&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;206,222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(127,064)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(100,373)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;98,445&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;105,849&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-83" decimals="-3" id="f-731" unitRef="usd">8711000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-84" decimals="-3" id="f-732" unitRef="usd">8805000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-38" decimals="-3" id="f-733" unitRef="usd">38878000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-85" decimals="-3" id="f-734" unitRef="usd">34117000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-86" decimals="-3" id="f-735" unitRef="usd">46496000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-87" decimals="-3" id="f-736" unitRef="usd">44992000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-88" decimals="-3" id="f-737" unitRef="usd">21642000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-89" decimals="-3" id="f-738" unitRef="usd">19611000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-90" decimals="-3" id="f-739" unitRef="usd">57791000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-91" decimals="-3" id="f-740" unitRef="usd">55154000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-92" decimals="-3" id="f-741" unitRef="usd">45523000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-93" decimals="-3" id="f-742" unitRef="usd">36182000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-94" decimals="-3" id="f-743" unitRef="usd">6468000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-95" decimals="-3" id="f-744" unitRef="usd">7361000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-6" decimals="-3" id="f-745" unitRef="usd">225509000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-7" decimals="-3" id="f-746" unitRef="usd">206222000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c-6" decimals="-3" id="f-747" unitRef="usd">127064000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c-7" decimals="-3" id="f-748" unitRef="usd">100373000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-6" decimals="-3" id="f-749" unitRef="usd">98445000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-7" decimals="-3" id="f-750" unitRef="usd">105849000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentDisposals contextRef="c-1" decimals="-3" id="f-751" unitRef="usd">9580000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1 contextRef="c-1" decimals="-3" id="f-752" unitRef="usd">9492000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-1" decimals="-3" id="f-753" unitRef="usd">-88000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:PropertyPlantAndEquipmentDisposals contextRef="c-4" decimals="-3" id="f-754" unitRef="usd">12421000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1 contextRef="c-4" decimals="-3" id="f-755" unitRef="usd">12184000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-4" decimals="-3" id="f-756" unitRef="usd">8000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-4" decimals="-3" id="f-757" unitRef="usd">-229000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:LesseeOperatingLeasesTextBlock contextRef="c-1" id="f-758">Leases&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's leases are primarily leased properties across different worldwide locations where the Company conducts its business. All of these leases are classified as operating leases. Certain leases may contain options to extend or terminate the lease at the Company's sole discretion. As of December 31, 2024, there were no options to terminate and twenty options to extend that were accounted for in the determination of the lease term for the Company's outstanding leases. Certain leases contain leasehold improvement incentives, retirement obligations, escalating clauses, rent holidays, and variable payments tied to a consumer price index. There were no restrictions or covenants for the outstanding leases as of December 31, 2024. The Company did not have any leases that had not yet commenced but that created significant rights and/or obligations as of December 31, 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total operating lease expense was $14,131,000 in 2024, $11,598,000 in 2023, and $8,939,000 in 2022. The total operating lease cash payments were $13,683,000 in 2024, $10,148,000 in 2023, and $8,548,000 in 2022. The total lease expense for leases with a term of twelve months or less for which the Company elected not to recognize a lease asset or lease liability was $407,000 in 2024, $427,000 in 2023, and $144,000 in 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future operating lease cash payments are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:14pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:82.648%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:2.728%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.224%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,534&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,543&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,496&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,820&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,242&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;93,292&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The discounted present value of the future lease cash payments resulted in a lease liability of $70,217,000 and $78,601,000 as of December 31, 2024 and 2023, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company leases a building in Singapore that serves as a distribution center for customers in Asia. The lease contains two components: an 88,000 square-foot premises that had a commencement date in June of 2023 and a second 27,000 square-foot premises that does not commence until the fourth quarter of 2025. Accordingly, the second component of the lease has not yet been recorded on the Consolidated Balance Sheets, nor has it created any significant rights and obligations as of December 31, 2024. This second lease component has an original term of eight years and the Company has the right and option to extend this term by an additional five years, commencing upon the expiration of the original term. Future payment obligations associated with this lease component total $13,145,000, $160,000 of which is payable in 2025 and which reflects an estimated extension period of five years. Future payment obligations related to this lease component are not included in the future operating lease cash payments table above. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has entered into a lease for a 6,500 square-foot building in Aachen, Germany for a term of ten years. The commencement date for this lease is expected to be in the second quarter of 2025, and therefore it has not yet been recorded on the Consolidated Balance Sheets, nor has it created any significant rights and obligations as of December 31, 2024. The Company has the right and option to extend the term of this lease for an additional period of five years, commencing upon the expiration of the original term. Future payment obligations associated with this lease total $8,763,000, $483,000 of which is payable in 2025. Future payment obligations related to this lease are not included in the future operating lease cash payments table above.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted-average discount rate was 5.9% and 5.7% for the leases outstanding as of December 31, 2024 and December 31, 2023, respectively. The weighted-average remaining lease term was 9.9 years and 10.5 years for the leases outstanding as of December 31, 2024 and 2023, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:OperatingLeaseExpense contextRef="c-1" decimals="-3" id="f-759" unitRef="usd">14131000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense contextRef="c-4" decimals="-3" id="f-760" unitRef="usd">11598000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense contextRef="c-5" decimals="-3" id="f-761" unitRef="usd">8939000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeasePayments contextRef="c-1" decimals="-3" id="f-762" unitRef="usd">13683000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments contextRef="c-4" decimals="-3" id="f-763" unitRef="usd">10148000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments contextRef="c-5" decimals="-3" id="f-764" unitRef="usd">8548000</us-gaap:OperatingLeasePayments>
    <cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized contextRef="c-1" decimals="-3" id="f-765" unitRef="usd">407000</cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized>
    <cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized contextRef="c-4" decimals="-3" id="f-766" unitRef="usd">427000</cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized>
    <cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized contextRef="c-5" decimals="-3" id="f-767" unitRef="usd">144000</cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock contextRef="c-1" id="f-768">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future operating lease cash payments are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:14pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:82.648%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:2.728%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.224%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,534&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,543&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,496&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,820&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,242&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;93,292&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths contextRef="c-6" decimals="-3" id="f-769" unitRef="usd">12534000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo contextRef="c-6" decimals="-3" id="f-770" unitRef="usd">10543000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree contextRef="c-6" decimals="-3" id="f-771" unitRef="usd">9496000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour contextRef="c-6" decimals="-3" id="f-772" unitRef="usd">8820000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive contextRef="c-6" decimals="-3" id="f-773" unitRef="usd">8242000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive contextRef="c-6" decimals="-3" id="f-774" unitRef="usd">43657000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="c-6" decimals="-3" id="f-775" unitRef="usd">93292000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <cgnx:OperatingLeaseLiabilityDiscountedPresentValue contextRef="c-6" decimals="-3" id="f-776" unitRef="usd">70217000</cgnx:OperatingLeaseLiabilityDiscountedPresentValue>
    <us-gaap:OperatingLeaseLiability contextRef="c-7" decimals="-3" id="f-777" unitRef="usd">78601000</us-gaap:OperatingLeaseLiability>
    <cgnx:LesseeOperatingLeaseComponents
      contextRef="c-96"
      decimals="INF"
      id="f-778"
      unitRef="lease_component">2</cgnx:LesseeOperatingLeaseComponents>
    <us-gaap:NetRentableArea contextRef="c-97" decimals="-3" id="f-779" unitRef="sqft">88000</us-gaap:NetRentableArea>
    <us-gaap:NetRentableArea contextRef="c-98" decimals="-3" id="f-780" unitRef="sqft">27000</us-gaap:NetRentableArea>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="c-99" decimals="-3" id="f-781" unitRef="usd">13145000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths contextRef="c-99" decimals="-3" id="f-782" unitRef="usd">160000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract contextRef="c-100" id="f-783">P5Y</cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract>
    <us-gaap:AreaOfRealEstateProperty contextRef="c-101" decimals="0" id="f-784" unitRef="sqft">6500</us-gaap:AreaOfRealEstateProperty>
    <us-gaap:UnrecordedUnconditionalPurchaseObligationTerm contextRef="c-1" id="f-785">P10Y</us-gaap:UnrecordedUnconditionalPurchaseObligationTerm>
    <cgnx:UnrecordedUncontditionalPurchaseObligationRenewalTerm contextRef="c-102" id="f-786">P5Y</cgnx:UnrecordedUncontditionalPurchaseObligationRenewalTerm>
    <us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount contextRef="c-101" decimals="-3" id="f-787" unitRef="usd">8763000</us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceSheetAmount>
    <us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary contextRef="c-101" decimals="-3" id="f-788" unitRef="usd">483000</us-gaap:UnrecordedUnconditionalPurchaseObligationBalanceOnFirstAnniversary>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="c-6" decimals="3" id="f-789" unitRef="number">0.059</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="c-7" decimals="3" id="f-790" unitRef="number">0.057</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="c-6" id="f-791">P9Y10M24D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="c-7" id="f-792">P10Y6M</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:GoodwillDisclosureTextBlock contextRef="c-1" id="f-793">Goodwill&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in the carrying value of goodwill were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:83.380%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.688%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;242,630&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquisition of Moritex Corporation (refer to Note 21)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;145,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,504&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;393,181&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Moritex Corporation measurement period adjustments (refer to Note 21)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,478&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14,722)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;384,937&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For its 2024 annual analysis of goodwill, management elected to perform a qualitative assessment. Based on this assessment, management believes it is more likely than not that the fair value of the reporting unit exceeds its carrying value. The Company did not record impairment charges related to goodwill in 2024, 2023, or 2022.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock contextRef="c-1" id="f-794">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in the carrying value of goodwill were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:83.380%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.688%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;242,630&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquisition of Moritex Corporation (refer to Note 21)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;145,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,504&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;393,181&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Moritex Corporation measurement period adjustments (refer to Note 21)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,478&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14,722)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;384,937&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill contextRef="c-8" decimals="-3" id="f-795" unitRef="usd">242630000</us-gaap:Goodwill>
    <us-gaap:GoodwillOtherIncreaseDecrease contextRef="c-103" decimals="-3" id="f-796" unitRef="usd">145047000</us-gaap:GoodwillOtherIncreaseDecrease>
    <us-gaap:GoodwillForeignCurrencyTranslationGainLoss contextRef="c-4" decimals="-3" id="f-797" unitRef="usd">5504000</us-gaap:GoodwillForeignCurrencyTranslationGainLoss>
    <us-gaap:Goodwill contextRef="c-7" decimals="-3" id="f-798" unitRef="usd">393181000</us-gaap:Goodwill>
    <us-gaap:GoodwillOtherIncreaseDecrease contextRef="c-104" decimals="-3" id="f-799" unitRef="usd">6478000</us-gaap:GoodwillOtherIncreaseDecrease>
    <us-gaap:GoodwillForeignCurrencyTranslationGainLoss contextRef="c-1" decimals="-3" id="f-800" unitRef="usd">-14722000</us-gaap:GoodwillForeignCurrencyTranslationGainLoss>
    <us-gaap:Goodwill contextRef="c-6" decimals="-3" id="f-801" unitRef="usd">384937000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="c-1" id="f-802">Intangible Assets&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:51.176%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.320%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Net&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;67,781&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,229)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;57,552&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;58,373&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(25,766)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;32,607&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;810&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(337)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;473&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;340&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(288)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;52&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;127,304&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(36,620)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;90,684&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Net&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,965&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,352)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;70,613&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(20,745)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,378&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;903&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(50)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;853&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;340&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(232)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;139,331&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(26,379)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;112,952&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company did not record impairment charges related to intangible assets in 2024, 2023, or 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.445%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,775&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,120&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,120&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;45,672&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;90,684&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="c-1" id="f-803">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:51.176%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.320%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Net&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;67,781&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,229)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;57,552&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;58,373&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(25,766)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;32,607&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;810&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(337)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;473&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;340&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(288)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;52&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;127,304&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(36,620)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;90,684&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Net&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,965&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,352)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;70,613&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62,123&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(20,745)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,378&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;903&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(50)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;853&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;340&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(232)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;139,331&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(26,379)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;112,952&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-105" decimals="-3" id="f-804" unitRef="usd">67781000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-105" decimals="-3" id="f-805" unitRef="usd">10229000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-105" decimals="-3" id="f-806" unitRef="usd">57552000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-106" decimals="-3" id="f-807" unitRef="usd">58373000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-106" decimals="-3" id="f-808" unitRef="usd">25766000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-106" decimals="-3" id="f-809" unitRef="usd">32607000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-49" decimals="-3" id="f-810" unitRef="usd">810000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-49" decimals="-3" id="f-811" unitRef="usd">337000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-49" decimals="-3" id="f-812" unitRef="usd">473000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-107" decimals="-3" id="f-813" unitRef="usd">340000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-107" decimals="-3" id="f-814" unitRef="usd">288000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-107" decimals="-3" id="f-815" unitRef="usd">52000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-6" decimals="-3" id="f-816" unitRef="usd">127304000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-6" decimals="-3" id="f-817" unitRef="usd">36620000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-6" decimals="-3" id="f-818" unitRef="usd">90684000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-108" decimals="-3" id="f-819" unitRef="usd">75965000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-108" decimals="-3" id="f-820" unitRef="usd">5352000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-108" decimals="-3" id="f-821" unitRef="usd">70613000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-109" decimals="-3" id="f-822" unitRef="usd">62123000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-109" decimals="-3" id="f-823" unitRef="usd">20745000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-109" decimals="-3" id="f-824" unitRef="usd">41378000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-110" decimals="-3" id="f-825" unitRef="usd">903000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-110" decimals="-3" id="f-826" unitRef="usd">50000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-110" decimals="-3" id="f-827" unitRef="usd">853000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-111" decimals="-3" id="f-828" unitRef="usd">340000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-111" decimals="-3" id="f-829" unitRef="usd">232000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-111" decimals="-3" id="f-830" unitRef="usd">108000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-7" decimals="-3" id="f-831" unitRef="usd">139331000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-7" decimals="-3" id="f-832" unitRef="usd">26379000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-7" decimals="-3" id="f-833" unitRef="usd">112952000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock contextRef="c-1" id="f-834">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.445%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,147&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,775&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,120&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2029&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,120&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;45,672&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;90,684&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths contextRef="c-6" decimals="-3" id="f-835" unitRef="usd">10147000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo contextRef="c-6" decimals="-3" id="f-836" unitRef="usd">9775000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree contextRef="c-6" decimals="-3" id="f-837" unitRef="usd">8850000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour contextRef="c-6" decimals="-3" id="f-838" unitRef="usd">8120000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive contextRef="c-6" decimals="-3" id="f-839" unitRef="usd">8120000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive contextRef="c-6" decimals="-3" id="f-840" unitRef="usd">45672000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-6" decimals="-3" id="f-841" unitRef="usd">90684000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock contextRef="c-1" id="f-842">Accrued Expenses&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued expenses consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:64.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.908%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.057%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Incentive compensation&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;18,735&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,645&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign retirement obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,445&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,140&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Salaries and payroll taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,123&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,774&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vacation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,945&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;28,372&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;71,760&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;72,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in the warranty obligation were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.209%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.591%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,427&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,928)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,940&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,078)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,794&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,883)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(15)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,140&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock contextRef="c-1" id="f-843">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued expenses consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:64.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.908%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.057%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Incentive compensation&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;18,735&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,645&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign retirement obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,445&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,140&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Salaries and payroll taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,123&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,774&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vacation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,945&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;28,372&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;71,760&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;72,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in the warranty obligation were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.209%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.591%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,427&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,928)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,940&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,078)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,794&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,883)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(15)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,140&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccruedBonusesCurrent contextRef="c-6" decimals="-3" id="f-844" unitRef="usd">18735000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedBonusesCurrent contextRef="c-7" decimals="-3" id="f-845" unitRef="usd">10645000</us-gaap:AccruedBonusesCurrent>
    <cgnx:RetirementAllowance contextRef="c-6" decimals="-3" id="f-846" unitRef="usd">10445000</cgnx:RetirementAllowance>
    <cgnx:RetirementAllowance contextRef="c-7" decimals="-3" id="f-847" unitRef="usd">12835000</cgnx:RetirementAllowance>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent contextRef="c-6" decimals="-3" id="f-848" unitRef="usd">5140000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent contextRef="c-7" decimals="-3" id="f-849" unitRef="usd">4244000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:AccruedSalariesCurrent contextRef="c-6" decimals="-3" id="f-850" unitRef="usd">5123000</us-gaap:AccruedSalariesCurrent>
    <us-gaap:AccruedSalariesCurrent contextRef="c-7" decimals="-3" id="f-851" unitRef="usd">8774000</us-gaap:AccruedSalariesCurrent>
    <us-gaap:AccruedVacationCurrent contextRef="c-6" decimals="-3" id="f-852" unitRef="usd">3945000</us-gaap:AccruedVacationCurrent>
    <us-gaap:AccruedVacationCurrent contextRef="c-7" decimals="-3" id="f-853" unitRef="usd">5827000</us-gaap:AccruedVacationCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent contextRef="c-6" decimals="-3" id="f-854" unitRef="usd">28372000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent contextRef="c-7" decimals="-3" id="f-855" unitRef="usd">30049000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-6" decimals="-3" id="f-856" unitRef="usd">71760000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-7" decimals="-3" id="f-857" unitRef="usd">72374000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock contextRef="c-1" id="f-858">&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.209%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.591%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,427&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,928)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,940&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,078)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,794&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,883)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(15)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,140&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
    <us-gaap:ProductWarrantyAccrual contextRef="c-9" decimals="-3" id="f-859" unitRef="usd">5427000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued contextRef="c-5" decimals="-3" id="f-860" unitRef="usd">1876000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments contextRef="c-5" decimals="-3" id="f-861" unitRef="usd">2928000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:ProductWarrantyAccrual contextRef="c-8" decimals="-3" id="f-862" unitRef="usd">4375000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued contextRef="c-4" decimals="-3" id="f-863" unitRef="usd">2940000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments contextRef="c-4" decimals="-3" id="f-864" unitRef="usd">3078000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss contextRef="c-4" decimals="-3" id="f-865" unitRef="usd">7000</us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss>
    <us-gaap:ProductWarrantyAccrual contextRef="c-7" decimals="-3" id="f-866" unitRef="usd">4244000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued contextRef="c-1" decimals="-3" id="f-867" unitRef="usd">4794000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments contextRef="c-1" decimals="-3" id="f-868" unitRef="usd">3883000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss contextRef="c-1" decimals="-3" id="f-869" unitRef="usd">-15000</us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss>
    <us-gaap:ProductWarrantyAccrual contextRef="c-6" decimals="-3" id="f-870" unitRef="usd">5140000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="c-1" id="f-871">Commitments and Contingencies&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, the Company had outstanding purchase orders totaling $44,269,000 to procure inventory from various vendors. Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties. These purchase commitments relate primarily to expected sales in 2025.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A significant portion of the Company's outstanding inventory purchase orders as of December&#160;31, 2024, as well as additional preauthorized commitments to procure strategic components based on the Company's expected customer demand, are placed with the Company's primary contract manufacturer for the Company's assembled products. The Company purchased $17,461,000, $10,616,000, and $5,269,000 in 2024, 2023, and 2022, respectively, of inventories as a result of the Company's obligation to purchase any non-cancelable and non-returnable components that have been purchased by the contract manufacturer with the Company's preauthorization, when these components have not been consumed within the period defined in the terms of the Company's agreement with this contract manufacturer. While the Company typically expects such purchased components to be used in future production of Cognex finished goods, these components are considered in the Company's reserve estimate for excess and obsolete inventory. Furthermore, the Company accrues for losses on commitments for the future purchase of non-cancelable and non-returnable components from this contract manufacturer at the time that circumstances, such as changes in demand, indicate that the value of the components may not be recoverable, the loss is probable, and management has the ability to reasonably estimate the amount of the loss.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Various claims and legal proceedings generally incidental to the normal course of business are pending or threatened on behalf of or against the Company. While we cannot predict the outcome of these matters, we believe that any liability arising from them will not have a material adverse effect on our financial position, liquidity, or results of operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted contextRef="c-6" decimals="-3" id="f-872" unitRef="usd">44269000</us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted>
    <us-gaap:OtherInventoryPurchasedGoods contextRef="c-6" decimals="-3" id="f-873" unitRef="usd">17461000</us-gaap:OtherInventoryPurchasedGoods>
    <us-gaap:OtherInventoryPurchasedGoods contextRef="c-7" decimals="-3" id="f-874" unitRef="usd">10616000</us-gaap:OtherInventoryPurchasedGoods>
    <us-gaap:OtherInventoryPurchasedGoods contextRef="c-8" decimals="-3" id="f-875" unitRef="usd">5269000</us-gaap:OtherInventoryPurchasedGoods>
    <cgnx:IndemnificationProvisionsTextBlock contextRef="c-1" id="f-876">Indemnification Provisions&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Except as limited by Massachusetts law, the by-laws of the Company require it to indemnify certain current or former directors, officers, and employees of the Company against expenses incurred by them in connection with each proceeding in which he or she is involved as a result of serving or having served in certain capacities. Indemnification is not available with respect to a proceeding as to which it has been adjudicated that the person did not act in good faith in the reasonable belief that the action was in the best interests of the Company. The maximum potential amount of future payments the Company could be required to make under these provisions is unlimited. The Company has never incurred significant costs related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In the ordinary course of business, the Company may accept standard limited indemnification provisions in connection with the sale of its products, whereby it indemnifies its customers for certain direct damages incurred in connection with third-party patent or other intellectual property infringement claims with respect to the use of the Company&#x2019;s products. The maximum potential amount of future payments the Company could be required to make under these provisions is, in many, but not all instances, subject to fixed monetary limits. The Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.&lt;/span&gt;&lt;/div&gt;In the ordinary course of business, the Company also accepts limited indemnification provisions from time to time, whereby it indemnifies customers for certain direct damages incurred in connection with bodily injury and property damage arising from the use of the Company&#x2019;s products. Future payments the Company could be required to make under these provisions is generally recoverable under the Company&#x2019;s insurance policies. As a result of this coverage, and the fact that the Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions, the Company believes the estimated fair value of these provisions is not material.</cgnx:IndemnificationProvisionsTextBlock>
    <us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock contextRef="c-1" id="f-877">Derivative Instruments&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s foreign currency risk management strategy is designed to mitigate the potential financial impact of changes in the value of transactions and balances denominated in foreign currencies resulting from changes in foreign currency exchange rates. The Company enters into economic hedges utilizing foreign currency forward contracts with maturities that do not exceed approximately three months to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables. The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged. These economic hedges are not designated as hedging instruments for hedge accounting treatment. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company had the following outstanding forward contracts (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:47.291%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.765%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.180%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.180%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.354%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Currency&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Notional Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;USD Equivalent&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"&gt;Notional Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"&gt;USD Equivalent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Singapore Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;40,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;29,457&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,136&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Euro&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;25,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;26,029&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,302&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Chinese Renminbi&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;95,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;12,990&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,025&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Mexican Peso&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;220,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,701&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;145,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,505&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Hungarian Forint&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,360,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,951&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,240,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,466&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;British Pound&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,200&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,008&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,258&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Japanese Yen&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,000,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,750&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;600,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,255&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Swiss Franc&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,200&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,432&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Canadian Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,390&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,470&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,112&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.204%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.788%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.350%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.888%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.788%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.358%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Asset Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Liability Derivatives&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Balance&lt;br/&gt;Sheet  Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Balance&lt;br/&gt;Sheet   Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:24pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="36" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;324&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;151&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;211&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the gross activity for all derivative assets and liabilities which were presented on a net basis on the Consolidated Balance Sheets due to the right of offset with each counterparty (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:14pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.108%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.562%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.814%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.562%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.394%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&lt;span style="-sec-ix-hidden:f-922"&gt;&lt;span style="-sec-ix-hidden:f-923"&gt;Asset Derivatives&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&lt;span style="-sec-ix-hidden:f-924"&gt;&lt;span style="-sec-ix-hidden:f-925"&gt;Liability Derivatives&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts of recognized assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;324&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;151&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts of recognized liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;211&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net amount of assets presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;324&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;151&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net amount of liabilities presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;211&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;106&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:21.920%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:22.800%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.762%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.908%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.911%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Location in Financial Statements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="24" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gains (losses) recognized in current operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,945&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(10,023)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,823&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock>
    <us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1 contextRef="c-112" id="f-878">P3M</us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1>
    <us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock contextRef="c-1" id="f-879">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company had the following outstanding forward contracts (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:47.291%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.765%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.180%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.180%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.354%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Currency&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Notional Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;USD Equivalent&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"&gt;Notional Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"&gt;USD Equivalent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Singapore Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;40,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;29,457&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,700&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,136&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Euro&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;25,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;26,029&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,302&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Chinese Renminbi&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;95,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;12,990&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,025&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Mexican Peso&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;220,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,701&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;145,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,505&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Hungarian Forint&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,360,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,951&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,240,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,466&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;British Pound&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,200&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,008&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,258&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Japanese Yen&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,000,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,750&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;600,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,255&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Swiss Franc&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,200&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,432&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Canadian Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,390&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,470&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,112&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-113" decimals="-3" id="f-880" unitRef="sgd">40000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-113" decimals="-3" id="f-881" unitRef="usd">29457000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-114" decimals="-3" id="f-882" unitRef="sgd">39700000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-114" decimals="-3" id="f-883" unitRef="usd">30136000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-115" decimals="-3" id="f-884" unitRef="eur">25000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-115" decimals="-3" id="f-885" unitRef="usd">26029000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-116" decimals="-3" id="f-886" unitRef="eur">40000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-116" decimals="-3" id="f-887" unitRef="usd">44302000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-117" decimals="-3" id="f-888" unitRef="cny">95000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-117" decimals="-3" id="f-889" unitRef="usd">12990000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-118" decimals="-3" id="f-890" unitRef="cny">50000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-118" decimals="-3" id="f-891" unitRef="usd">7025000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-119" decimals="-3" id="f-892" unitRef="mxn">220000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-119" decimals="-3" id="f-893" unitRef="usd">10701000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-120" decimals="-3" id="f-894" unitRef="mxn">145000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-120" decimals="-3" id="f-895" unitRef="usd">8505000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-121" decimals="-3" id="f-896" unitRef="huf">2360000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-121" decimals="-3" id="f-897" unitRef="usd">5951000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-122" decimals="-3" id="f-898" unitRef="huf">2240000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-122" decimals="-3" id="f-899" unitRef="usd">6466000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-123" decimals="-3" id="f-900" unitRef="gbp">3200000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-123" decimals="-3" id="f-901" unitRef="usd">4008000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-124" decimals="-3" id="f-902" unitRef="gbp">3345000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-124" decimals="-3" id="f-903" unitRef="usd">4258000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-125" decimals="-3" id="f-904" unitRef="jpy">2000000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-125" decimals="-3" id="f-905" unitRef="usd">3750000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-126" decimals="-3" id="f-906" unitRef="jpy">600000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-126" decimals="-3" id="f-907" unitRef="usd">4255000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-127" decimals="-3" id="f-908" unitRef="chf">2200000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-127" decimals="-3" id="f-909" unitRef="usd">2432000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-128" decimals="-3" id="f-910" unitRef="chf">0</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-128" decimals="-3" id="f-911" unitRef="usd">0</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-129" decimals="-3" id="f-912" unitRef="cad">2000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-129" decimals="-3" id="f-913" unitRef="usd">1390000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-130" decimals="-3" id="f-914" unitRef="cad">1470000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-130" decimals="-3" id="f-915" unitRef="usd">1112000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock contextRef="c-1" id="f-916">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.204%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.788%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.350%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.888%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.788%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.358%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Asset Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Liability Derivatives&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Balance&lt;br/&gt;Sheet  Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Balance&lt;br/&gt;Sheet   Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:24pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="36" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;324&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;151&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;211&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock>
    <us-gaap:DerivativeAssets contextRef="c-131" decimals="-3" id="f-917" unitRef="usd">324000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets contextRef="c-132" decimals="-3" id="f-918" unitRef="usd">151000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeLiabilities contextRef="c-131" decimals="-3" id="f-919" unitRef="usd">211000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities contextRef="c-132" decimals="-3" id="f-920" unitRef="usd">106000</us-gaap:DerivativeLiabilities>
    <us-gaap:OffsettingAssetsTableTextBlock contextRef="c-1" id="f-921">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the gross activity for all derivative assets and liabilities which were presented on a net basis on the Consolidated Balance Sheets due to the right of offset with each counterparty (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:14pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.108%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.562%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.814%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.562%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.394%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&lt;span style="-sec-ix-hidden:f-922"&gt;&lt;span style="-sec-ix-hidden:f-923"&gt;Asset Derivatives&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&lt;span style="-sec-ix-hidden:f-924"&gt;&lt;span style="-sec-ix-hidden:f-925"&gt;Liability Derivatives&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts of recognized assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;324&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;151&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts of recognized liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;211&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net amount of assets presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;324&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;151&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net amount of liabilities presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;211&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;106&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:OffsettingAssetsTableTextBlock>
    <us-gaap:DerivativeFairValueOfDerivativeAsset contextRef="c-6" decimals="-3" id="f-926" unitRef="usd">324000</us-gaap:DerivativeFairValueOfDerivativeAsset>
    <us-gaap:DerivativeFairValueOfDerivativeAsset contextRef="c-7" decimals="-3" id="f-927" unitRef="usd">151000</us-gaap:DerivativeFairValueOfDerivativeAsset>
    <us-gaap:DerivativeFairValueOfDerivativeLiability contextRef="c-6" decimals="-3" id="f-928" unitRef="usd">211000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeFairValueOfDerivativeLiability contextRef="c-7" decimals="-3" id="f-929" unitRef="usd">106000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset contextRef="c-6" decimals="-3" id="f-930" unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
    <us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset contextRef="c-7" decimals="-3" id="f-931" unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
    <us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset contextRef="c-6" decimals="-3" id="f-932" unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
    <us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset contextRef="c-7" decimals="-3" id="f-933" unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
    <us-gaap:DerivativeAssets contextRef="c-6" decimals="-3" id="f-934" unitRef="usd">324000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets contextRef="c-7" decimals="-3" id="f-935" unitRef="usd">151000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeLiabilities contextRef="c-6" decimals="-3" id="f-936" unitRef="usd">211000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities contextRef="c-7" decimals="-3" id="f-937" unitRef="usd">106000</us-gaap:DerivativeLiabilities>
    <us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock contextRef="c-1" id="f-938">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:21.920%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:22.800%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.762%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.908%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.911%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Location in Financial Statements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="24" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gains (losses) recognized in current operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,945&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(10,023)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,823&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock>
    <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="c-112" decimals="-3" id="f-939" unitRef="usd">1945000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="c-133" decimals="-3" id="f-940" unitRef="usd">-10023000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="c-134" decimals="-3" id="f-941" unitRef="usd">9823000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="c-1" id="f-942">Revenue Recognition&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes disaggregated revenue information by geographic area based on the customer's country of domicile (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:61.216%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.630%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.630%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.632%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;350,155&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;330,415&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;390,573&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Europe&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;217,880&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;220,665&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;234,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Greater China&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;164,147&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,115&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other Asia&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;182,333&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;122,352&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153,427&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;914,515&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;837,547&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:1pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes disaggregated revenue information by revenue type (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:61.125%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.466%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.824%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.824%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.616%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Standard products and services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;795,319&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;734,140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;848,153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Application-specific customer solutions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;119,196&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;103,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;157,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;914,515&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;837,547&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Costs to Fulfill a Contract&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Costs to fulfill a contract are included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $10,705,000 and $13,265,000 as of December 31, 2024 and 2023, respectively. The amount of amortization during 2024 related to costs deferred as of December 31, 2023 amounted to $12,512,000&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounts Receivable, Contract Assets, and Contract Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accounts receivable represent amounts billed and currently due from customers which are reported at their net estimated realizable value. The Company maintains an allowance against its accounts receivable for credit losses. Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing primarily for certain application-specific customer solutions contracts. Contract liabilities consist of deferred revenue and customer deposits which arise when amounts are billed to or collected from customers in advance of revenue recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes changes in the allowance for credit losses (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.341%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.459%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Write-offs, net of recoveries&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(645)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;583&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;459&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Write-offs, net of recoveries&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(222)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;827&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the deferred revenue and customer deposits activity (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.398%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.402%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferral of revenue billed in the current period, net of recognition&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,538&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Recognition of revenue deferred in prior period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(20,987)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Returned customer deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,205)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(608)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferral of revenue billed in the current period, net of recognition&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,998&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Recognition of revenue deferred in prior period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(28,108)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(380)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;25,035&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a practical expedient, the Company has elected not to disclose the aggregate amount of the transaction price allocated to unsatisfied performance obligations for contracts that have an original expected duration of less than one year. The remaining unsatisfied performance obligations for contracts that have an original expected duration of more than one year, primarily related to extended hardware warranties, are not material.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="c-1" id="f-943">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes disaggregated revenue information by geographic area based on the customer's country of domicile (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:61.216%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.630%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.630%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.632%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;350,155&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;330,415&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;390,573&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Europe&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;217,880&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;220,665&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;234,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Greater China&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;164,147&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,115&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other Asia&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;182,333&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;122,352&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153,427&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;914,515&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;837,547&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:1pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes disaggregated revenue information by revenue type (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:61.125%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.466%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.824%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.824%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.616%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Standard products and services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;795,319&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;734,140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;848,153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Application-specific customer solutions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;119,196&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;103,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;157,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;914,515&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;837,547&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-135" decimals="-3" id="f-944" unitRef="usd">350155000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-136" decimals="-3" id="f-945" unitRef="usd">330415000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-137" decimals="-3" id="f-946" unitRef="usd">390573000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-138" decimals="-3" id="f-947" unitRef="usd">217880000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-139" decimals="-3" id="f-948" unitRef="usd">220665000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-140" decimals="-3" id="f-949" unitRef="usd">234643000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-141" decimals="-3" id="f-950" unitRef="usd">164147000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-142" decimals="-3" id="f-951" unitRef="usd">164115000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-143" decimals="-3" id="f-952" unitRef="usd">227447000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-144" decimals="-3" id="f-953" unitRef="usd">182333000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-145" decimals="-3" id="f-954" unitRef="usd">122352000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-146" decimals="-3" id="f-955" unitRef="usd">153427000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-956" unitRef="usd">914515000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-4" decimals="-3" id="f-957" unitRef="usd">837547000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-5" decimals="-3" id="f-958" unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-147" decimals="-3" id="f-959" unitRef="usd">795319000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-148" decimals="-3" id="f-960" unitRef="usd">734140000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-149" decimals="-3" id="f-961" unitRef="usd">848153000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-150" decimals="-3" id="f-962" unitRef="usd">119196000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-151" decimals="-3" id="f-963" unitRef="usd">103407000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-152" decimals="-3" id="f-964" unitRef="usd">157937000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-965" unitRef="usd">914515000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-4" decimals="-3" id="f-966" unitRef="usd">837547000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-5" decimals="-3" id="f-967" unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CapitalizedContractCostGross contextRef="c-6" decimals="-3" id="f-968" unitRef="usd">10705000</us-gaap:CapitalizedContractCostGross>
    <us-gaap:CapitalizedContractCostGross contextRef="c-7" decimals="-3" id="f-969" unitRef="usd">13265000</us-gaap:CapitalizedContractCostGross>
    <us-gaap:OtherAmortizationOfDeferredCharges contextRef="c-1" decimals="-3" id="f-970" unitRef="usd">12512000</us-gaap:OtherAmortizationOfDeferredCharges>
    <us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock contextRef="c-1" id="f-971">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes changes in the allowance for credit losses (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.341%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.459%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Write-offs, net of recoveries&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(645)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;583&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;459&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Write-offs, net of recoveries&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(222)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;827&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="c-8" decimals="-3" id="f-972" unitRef="usd">730000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-4" decimals="-3" id="f-973" unitRef="usd">500000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs contextRef="c-4" decimals="-3" id="f-974" unitRef="usd">645000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment contextRef="c-4" decimals="-3" id="f-975" unitRef="usd">-2000</cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="c-7" decimals="-3" id="f-976" unitRef="usd">583000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-1" decimals="-3" id="f-977" unitRef="usd">459000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs contextRef="c-1" decimals="-3" id="f-978" unitRef="usd">222000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment contextRef="c-1" decimals="-3" id="f-979" unitRef="usd">7000</cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="c-6" decimals="-3" id="f-980" unitRef="usd">827000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock contextRef="c-1" id="f-981">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the deferred revenue and customer deposits activity (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.398%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.402%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferral of revenue billed in the current period, net of recognition&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,538&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Recognition of revenue deferred in prior period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(20,987)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Returned customer deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,205)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(608)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferral of revenue billed in the current period, net of recognition&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,998&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Recognition of revenue deferred in prior period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(28,108)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(380)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;25,035&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-8" decimals="-3" id="f-982" unitRef="usd">40787000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease contextRef="c-4" decimals="-3" id="f-983" unitRef="usd">21538000</cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease>
    <cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized contextRef="c-4" decimals="-3" id="f-984" unitRef="usd">20987000</cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized>
    <us-gaap:DeferredRevenueRefundPayments1 contextRef="c-4" decimals="-3" id="f-985" unitRef="usd">9205000</us-gaap:DeferredRevenueRefundPayments1>
    <cgnx:ContractLiabilityForeignExchangeRateChanges contextRef="c-4" decimals="-3" id="f-986" unitRef="usd">-608000</cgnx:ContractLiabilityForeignExchangeRateChanges>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-7" decimals="-3" id="f-987" unitRef="usd">31525000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease contextRef="c-1" decimals="-3" id="f-988" unitRef="usd">21998000</cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease>
    <cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized contextRef="c-1" decimals="-3" id="f-989" unitRef="usd">28108000</cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized>
    <cgnx:ContractLiabilityForeignExchangeRateChanges contextRef="c-1" decimals="-3" id="f-990" unitRef="usd">-380000</cgnx:ContractLiabilityForeignExchangeRateChanges>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-6" decimals="-3" id="f-991" unitRef="usd">25035000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock contextRef="c-1" id="f-992">Shareholders&#x2019; Equity&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Preferred Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has 400,000 shares of authorized but unissued $.01 par value preferred stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Common Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has 300,000,000 shares of authorized $.002 par value common stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Each outstanding share of common stock entitles the record holder to one vote on all matters submitted to a vote of the Company&#x2019;s shareholders. Common shareholders are also entitled to dividends when and if declared by the Company&#x2019;s Board of Directors.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock Repurchases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2020, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this March 2020 program, in addition to repurchases made in prior years, the Company repurchased 1,677,000 shares at a cost of $117,000,000 in 2022, which completed purchases under the March 2020 program. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2022, the Company's Board of Directors authorized the repurchase of an additional $500,000,000 of the Company's common stock. Under this March 2022 program, the Company repurchased 1,682,000 shares at a cost of $87,314,000 in 2022, 1,723,000 shares at a cost of $79,794,000 in 2023, and 1,711,000 shares at a cost of $67,085,000 in 2024, leaving a remaining balance of $265,807,000 as of December 31, 2024. The 2023 repurchase included $446,000 of buyback Excise Tax in accordance with the Inflation Reduction Act of 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements. The Company is authorized to make repurchases of its common stock through open market purchases, pursuant to Rule 10b5-1 trading plans, or in privately negotiated transactions.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Dividends&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s Board of Directors declared and paid cash dividends of $0.065 per share in the first, second, and third quarters of 2022, $0.070 per share in the fourth quarter of 2022 and in the first, second, and third quarters of 2023, and $0.075 per share in the fourth quarter of 2023 and in the first, second, and third quarters of 2024. The dividend was increased to $0.080 per share in the fourth quarter of 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on such factors as the Board deems relevant, including, among other things, the Company's ability to generate positive cash flow from operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:PreferredStockSharesAuthorized contextRef="c-6" decimals="INF" id="f-993" unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c-6"
      decimals="INF"
      id="f-994"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c-153"
      decimals="INF"
      id="f-995"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-6"
      decimals="INF"
      id="f-996"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <cgnx:VoteEntitledForEachCommonShareOutstanding contextRef="c-6" decimals="INF" id="f-997" unitRef="vote">1</cgnx:VoteEntitledForEachCommonShareOutstanding>
    <srt:StockRepurchaseProgramAuthorizedAmount1 contextRef="c-154" decimals="-3" id="f-998" unitRef="usd">200000000</srt:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c-155"
      decimals="-3"
      id="f-999"
      unitRef="shares">1677000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-155" decimals="-3" id="f-1000" unitRef="usd">117000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <srt:StockRepurchaseProgramAuthorizedAmount1 contextRef="c-156" decimals="INF" id="f-1001" unitRef="usd">500000000</srt:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRedeemedOrCalledDuringPeriodShares
      contextRef="c-157"
      decimals="-3"
      id="f-1002"
      unitRef="shares">1682000</us-gaap:StockRedeemedOrCalledDuringPeriodShares>
    <us-gaap:StockRedeemedOrCalledDuringPeriodValue contextRef="c-157" decimals="-3" id="f-1003" unitRef="usd">87314000</us-gaap:StockRedeemedOrCalledDuringPeriodValue>
    <us-gaap:StockRedeemedOrCalledDuringPeriodShares
      contextRef="c-158"
      decimals="-3"
      id="f-1004"
      unitRef="shares">1723000</us-gaap:StockRedeemedOrCalledDuringPeriodShares>
    <us-gaap:StockRedeemedOrCalledDuringPeriodValue contextRef="c-158" decimals="-3" id="f-1005" unitRef="usd">79794000</us-gaap:StockRedeemedOrCalledDuringPeriodValue>
    <us-gaap:StockRedeemedOrCalledDuringPeriodShares
      contextRef="c-159"
      decimals="-3"
      id="f-1006"
      unitRef="shares">1711000</us-gaap:StockRedeemedOrCalledDuringPeriodShares>
    <us-gaap:StockRedeemedOrCalledDuringPeriodValue contextRef="c-159" decimals="-3" id="f-1007" unitRef="usd">67085000</us-gaap:StockRedeemedOrCalledDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1 contextRef="c-6" decimals="INF" id="f-1008" unitRef="usd">265807000</us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1>
    <cgnx:StockRepurchaseProgramBuybackExciseTax contextRef="c-159" decimals="-3" id="f-1009" unitRef="usd">446000</cgnx:StockRepurchaseProgramBuybackExciseTax>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-160"
      decimals="3"
      id="f-1010"
      unitRef="usdPerShare">0.065</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-161"
      decimals="3"
      id="f-1011"
      unitRef="usdPerShare">0.070</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-162"
      decimals="3"
      id="f-1012"
      unitRef="usdPerShare">0.075</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-163"
      decimals="3"
      id="f-1013"
      unitRef="usdPerShare">0.080</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="c-1" id="f-1014">Stock-Based Compensation&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s stock-based awards that result in compensation expense consist of stock options, restricted stock units ("RSUs"), and performance restricted stock units ("PRSUs"). In May 2023, the shareholders of the Company approved the Cognex Corporation 2023 Stock Option and Incentive Plan (the &#x201c;2023 Plan&#x201d;). The 2023 Plan permits awards of stock options (both incentive and non-qualified options), stock appreciation rights, RSUs, and PRSUs. Up to 8,100,000 shares of common stock (subject to adjustment in the event of stock splits and other similar events) may be issued pursuant to awards granted under the 2023 Plan. In connection with the approval of the 2023 Plan, no further awards will be made under the Cognex Corporation 2001 General Stock Option Plan, as amended and restated (the &#x201c;2001 Plan&#x201d;), and the Cognex Corporation 2007 Stock Option and Incentive Plan, as amended and restated (the &#x201c;2007 Plan&#x201d;). With the approval of the 2023 Plan, the 10,610,800 shares of common stock subject to awards granted under the 2001 Plan and the 2007 Plan that were outstanding as of May 3, 2023 may become eligible for issuance under the 2023 Plan if such awards are forfeited, cancelled, or otherwise terminated (other than by exercise) (the &#x201c;Carryover Shares&#x201d;). As of December 31, 2024, forfeitures, cancellations, and other terminations from the 2001 Plan and the 2007 Plan have resulted in 1,142,995 Carryover Shares, raising the authorized total shares that may be issued under the 2023 Plan to 9,242,995.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, the Company had 6,458,000 shares available for issuance under its stock plans. Stock options are granted with an exercise price equal to the market value of the Company&#x2019;s common stock at the grant date and generally vest over &lt;span style="-sec-ix-hidden:f-1020"&gt;four&lt;/span&gt; or five years based on continuous employment and expire ten years from the grant date. RSUs generally vest upon &lt;span style="-sec-ix-hidden:f-1023"&gt;three&lt;/span&gt; or four years of continuous employment or incrementally over such &lt;span style="-sec-ix-hidden:f-1025"&gt;three&lt;/span&gt; or &lt;span style="-sec-ix-hidden:f-1026"&gt;four&lt;/span&gt; year periods. PRSUs generally vest upon &lt;span style="-sec-ix-hidden:f-1027"&gt;three&lt;/span&gt; years of continuous employment and achievement of performance criteria established by the Compensation Committee of our Board of Directors on or prior to the grant date. Participants are not entitled to dividends on stock options, RSUs, or PRSUs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s stock option activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:43.409%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.226%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&lt;br/&gt;Term&lt;br/&gt;(in&#160;years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic Value&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,008&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50.87&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39.72&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(242)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24.83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(864)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;53.18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding as of December 31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;9,543&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;49.40&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5.62&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,898&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercisable as of December 31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,659&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;49.75&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3.90&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,814&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options vested or expected to vest as of&#160;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;December 31, 2024 (1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;9,019&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;49.62&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5.45&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,875&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;padding-left:36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1) In addition to the vested options, the Company expects a portion of the unvested options to vest at some point in the future. Options expected to vest are calculated by applying an estimated forfeiture rate to the unvested options.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total cash received as a result of stock option exercises was $6,011,000 in 2024, $11,104,000 in 2023, and $12,267,000 in 2022. In connection with these exercises, the tax benefit (expense) realized by the Company was $(4,021,000) in 2024, $(4,691,000) in 2023, and $2,548,000 in 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:54.847%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.996%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.143%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.146%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Risk-free rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4.3&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;0.76&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.61&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.44&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;39&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4.7&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Risk-free rate&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The risk-free rate was based on a treasury instrument whose term was consistent with the contractual term of the option.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Expected dividend yield&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The current dividend yield was calculated by annualizing the cash dividend declared by the Company&#x2019;s Board of Directors and dividing that result by the closing stock price on the grant date.&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Expected volatility&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The expected volatility was based on a combination of historical volatility of&#160;the Company&#x2019;s&#160;common stock over the contractual term of the option and implied volatility for traded options of the Company&#x2019;s stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Expected term&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The expected term was derived from the binomial lattice model from the impact of events that trigger exercises over time.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted-average grant-date fair value of stock options granted was $14.89 in 2024, $17.76 in 2023, and $21.39 in 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total intrinsic value of stock options exercised was $4,626,000 in 2024, $6,227,000 in 2023, and $8,424,000 in 2022. The total fair value of stock options vested was $29,309,000 in 2024, $34,751,000 in 2023, and $41,497,000 in 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Restricted Stock Units (RSUs)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company's RSUs activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:62.496%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.666%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.808%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Weighted-Average&lt;br/&gt;Grant Date Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,429&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54.22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;844&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;38.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(429)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64.07&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(154)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46.61&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,690&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;44.75&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of RSUs was determined based on the observable market price of the Company's stock on the grant date less the present value of expected future dividends. The weighted-average grant-date fair value of RSUs granted was $38.90 in 2024, $46.14 in 2023, and $58.06 in 2022. There were 429,000, 521,000, and 192,000 RSUs that vested in 2024, 2023, and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Tax obligations for vested RSUs are settled by withholding a portion of the shares prior to distribution to the shareholder. The total cash used by the Company to fund the tax payments was $5,017,000 in 2024, $7,836,000 in 2023, and $2,406,000 in 2022. In connection with these vested RSUs, the tax benefit (expense) realized by the Company was $(7,401,000) in 2024, $(3,229,000) in 2023, and $(1,049,000) in 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Performance Restricted Stock Units (PRSUs)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company's PRSUs activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.838%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Weighted-Average &lt;br/&gt;Grant Date Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;79&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;52.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;134&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;46.82&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of PRSUs was calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. The weighted average grant-date fair value of PRSUs granted was $39.05 in 2024, $44.86 in 2023, and $62.49 in 2022. No PRSUs vested in 2024, 2023, and 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock-Based Compensation Expense&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company stratifies its employee population into three groups: one consisting of the CEO, another consisting of senior management, and another consisting of all other employees. The Company currently applies an estimated annual forfeiture rate of 0% to all stock-based awards for the CEO, 8% to all stock-based awards for senior management, and 13% for all other employees. Each year during the first quarter, the Company revises its forfeiture rate based on updated estimates of employee turnover. This resulted in a decrease to compensation expense of $1,832,000 in 2024, a decrease to compensation expense of $234,000 in 2023, and an increase to compensation expense of $1,536,000 in 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2024, total unrecognized compensation expense, net of estimated forfeitures, related to non-vested stock-based awards, including stock options, RSUs, and PRSUs, was $51,147,000, which is expected to be recognized over a weighted-average period of 1.5 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total stock-based compensation expense and the related income tax benefit recognized was $52,443,000 and $8,387,000, respectively, in 2024, $54,768,000 and $8,442,000, respectively, in 2023, and $54,505,000 and $9,540,000, respectively, in 2022. No compensation expense was capitalized in 2024, 2023, or 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the stock-based compensation expense by caption for each period presented on the Consolidated Statements of Operations (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:51.176%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.320%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,966&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,016&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Research, development, and engineering&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;14,628&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Selling, general, and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;35,849&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,796&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;52,443&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54,768&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54,505&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-164"
      decimals="INF"
      id="f-1015"
      unitRef="shares">8100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="c-165"
      decimals="INF"
      id="f-1016"
      unitRef="shares">10610800</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized
      contextRef="c-166"
      decimals="INF"
      id="f-1017"
      unitRef="shares">1142995</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-167"
      decimals="INF"
      id="f-1018"
      unitRef="shares">9242995</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="c-168"
      decimals="0"
      id="f-1019"
      unitRef="shares">6458000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-170" id="f-1021">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <cgnx:ExpirationPeriodOfStockOptionPlan contextRef="c-171" id="f-1022">P10Y</cgnx:ExpirationPeriodOfStockOptionPlan>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-173" id="f-1024">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock contextRef="c-1" id="f-1028">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s stock option activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:43.409%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.226%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&lt;br/&gt;Term&lt;br/&gt;(in&#160;years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic Value&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,008&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50.87&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39.72&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(242)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24.83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(864)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;53.18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding as of December 31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;9,543&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;49.40&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5.62&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,898&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercisable as of December 31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,659&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;49.75&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3.90&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,814&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options vested or expected to vest as of&#160;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;December 31, 2024 (1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;9,019&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;49.62&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5.45&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,875&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;padding-left:36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1) In addition to the vested options, the Company expects a portion of the unvested options to vest at some point in the future. Options expected to vest are calculated by applying an estimated forfeiture rate to the unvested options.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total cash received as a result of stock option exercises was $6,011,000 in 2024, $11,104,000 in 2023, and $12,267,000 in 2022. In connection with these exercises, the tax benefit (expense) realized by the Company was $(4,021,000) in 2024, $(4,691,000) in 2023, and $2,548,000 in 2022.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-7" decimals="-3" id="f-1029" unitRef="shares">9008000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-7"
      decimals="2"
      id="f-1030"
      unitRef="usdPerShare">50.87</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod contextRef="c-1" decimals="-3" id="f-1031" unitRef="shares">1641000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-1032"
      unitRef="usdPerShare">39.72</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-1" decimals="-3" id="f-1033" unitRef="shares">242000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-1034"
      unitRef="usdPerShare">24.83</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod contextRef="c-1" decimals="-3" id="f-1035" unitRef="shares">864000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-1036"
      unitRef="usdPerShare">53.18</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-6" decimals="-3" id="f-1037" unitRef="shares">9543000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-6"
      decimals="2"
      id="f-1038"
      unitRef="usdPerShare">49.40</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="c-1" id="f-1039">P5Y7M13D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="c-6" decimals="-3" id="f-1040" unitRef="usd">6898000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber contextRef="c-6" decimals="-3" id="f-1041" unitRef="shares">5659000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="c-6"
      decimals="2"
      id="f-1042"
      unitRef="usdPerShare">49.75</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="c-1" id="f-1043">P3Y10M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue contextRef="c-6" decimals="-3" id="f-1044" unitRef="usd">6814000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber contextRef="c-6" decimals="-3" id="f-1045" unitRef="shares">9019000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="c-6"
      decimals="2"
      id="f-1046"
      unitRef="usdPerShare">49.62</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="c-1" id="f-1047">P5Y5M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="c-6" decimals="-3" id="f-1048" unitRef="usd">6875000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-1" decimals="-3" id="f-1049" unitRef="usd">6011000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-4" decimals="-3" id="f-1050" unitRef="usd">11104000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-5" decimals="-3" id="f-1051" unitRef="usd">12267000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions contextRef="c-1" decimals="-3" id="f-1052" unitRef="usd">-4021000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions contextRef="c-4" decimals="-3" id="f-1053" unitRef="usd">-4691000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions contextRef="c-5" decimals="-3" id="f-1054" unitRef="usd">2548000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock contextRef="c-1" id="f-1055">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:54.847%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.996%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.143%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.146%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Risk-free rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4.3&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.0&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;0.76&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.61&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.44&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;39&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4.7&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c-171"
      decimals="3"
      id="f-1056"
      unitRef="number">0.043</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c-176"
      decimals="3"
      id="f-1057"
      unitRef="number">0.040</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c-177"
      decimals="3"
      id="f-1058"
      unitRef="number">0.022</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c-171"
      decimals="4"
      id="f-1059"
      unitRef="number">0.0076</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c-176"
      decimals="4"
      id="f-1060"
      unitRef="number">0.0061</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c-177"
      decimals="4"
      id="f-1061"
      unitRef="number">0.0044</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c-171"
      decimals="2"
      id="f-1062"
      unitRef="number">0.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c-176"
      decimals="2"
      id="f-1063"
      unitRef="number">0.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c-177"
      decimals="2"
      id="f-1064"
      unitRef="number">0.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-171" id="f-1065">P4Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-176" id="f-1066">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-177" id="f-1067">P5Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-1"
      decimals="2"
      id="f-1068"
      unitRef="usdPerShare">14.89</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-4"
      decimals="2"
      id="f-1069"
      unitRef="usdPerShare">17.76</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-5"
      decimals="2"
      id="f-1070"
      unitRef="usdPerShare">21.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue contextRef="c-1" decimals="-3" id="f-1071" unitRef="usd">4626000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue contextRef="c-4" decimals="-3" id="f-1072" unitRef="usd">6227000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue contextRef="c-5" decimals="-3" id="f-1073" unitRef="usd">8424000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue contextRef="c-1" decimals="-3" id="f-1074" unitRef="usd">29309000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue contextRef="c-4" decimals="-3" id="f-1075" unitRef="usd">34751000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue contextRef="c-5" decimals="-3" id="f-1076" unitRef="usd">41497000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock contextRef="c-1" id="f-1077">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company's RSUs activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:62.496%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.666%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.808%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Weighted-Average&lt;br/&gt;Grant Date Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,429&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54.22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;844&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;38.90&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(429)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64.07&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(154)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46.61&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,690&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;44.75&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-178"
      decimals="-3"
      id="f-1078"
      unitRef="shares">1429000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-178"
      decimals="2"
      id="f-1079"
      unitRef="usdPerShare">54.22</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-179"
      decimals="-3"
      id="f-1080"
      unitRef="shares">844000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-179"
      decimals="2"
      id="f-1081"
      unitRef="usdPerShare">38.90</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-179"
      decimals="-3"
      id="f-1082"
      unitRef="shares">429000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-179"
      decimals="2"
      id="f-1083"
      unitRef="usdPerShare">64.07</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-179"
      decimals="-3"
      id="f-1084"
      unitRef="shares">154000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-179"
      decimals="2"
      id="f-1085"
      unitRef="usdPerShare">46.61</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-180"
      decimals="-3"
      id="f-1086"
      unitRef="shares">1690000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-180"
      decimals="2"
      id="f-1087"
      unitRef="usdPerShare">44.75</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-179"
      decimals="2"
      id="f-1088"
      unitRef="usdPerShare">38.90</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-181"
      decimals="2"
      id="f-1089"
      unitRef="usdPerShare">46.14</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-182"
      decimals="2"
      id="f-1090"
      unitRef="usdPerShare">58.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-183"
      decimals="-3"
      id="f-1091"
      unitRef="shares">429000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-181"
      decimals="-3"
      id="f-1092"
      unitRef="shares">521000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-182"
      decimals="-3"
      id="f-1093"
      unitRef="shares">192000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-183" decimals="-3" id="f-1094" unitRef="usd">5017000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-181" decimals="-3" id="f-1095" unitRef="usd">7836000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-182" decimals="-3" id="f-1096" unitRef="usd">2406000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-183" decimals="-3" id="f-1097" unitRef="usd">-7401000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-181" decimals="-3" id="f-1098" unitRef="usd">-3229000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-182" decimals="-3" id="f-1099" unitRef="usd">-1049000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock contextRef="c-1" id="f-1100">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Performance Restricted Stock Units (PRSUs)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company's PRSUs activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.838%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Weighted-Average &lt;br/&gt;Grant Date Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;79&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;52.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;134&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;46.82&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-184"
      decimals="-3"
      id="f-1101"
      unitRef="shares">79000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-184"
      decimals="2"
      id="f-1102"
      unitRef="usdPerShare">52.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-185"
      decimals="-3"
      id="f-1103"
      unitRef="shares">55000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-185"
      decimals="2"
      id="f-1104"
      unitRef="usdPerShare">39.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-185"
      decimals="-3"
      id="f-1105"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-185"
      decimals="2"
      id="f-1106"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-185"
      decimals="-3"
      id="f-1107"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-185"
      decimals="2"
      id="f-1108"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-186"
      decimals="-3"
      id="f-1109"
      unitRef="shares">134000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-186"
      decimals="2"
      id="f-1110"
      unitRef="usdPerShare">46.82</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-185"
      decimals="2"
      id="f-1111"
      unitRef="usdPerShare">39.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-187"
      decimals="2"
      id="f-1112"
      unitRef="usdPerShare">44.86</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-188"
      decimals="2"
      id="f-1113"
      unitRef="usdPerShare">62.49</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-185"
      decimals="-3"
      id="f-1114"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-188"
      decimals="-3"
      id="f-1115"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-187"
      decimals="-3"
      id="f-1116"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <cgnx:NumberOfGroupsWithinEmployeePopulation contextRef="c-6" decimals="INF" id="f-1117" unitRef="group">3</cgnx:NumberOfGroupsWithinEmployeePopulation>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForCEO contextRef="c-6" decimals="2" id="f-1118" unitRef="number">0</cgnx:EstimatedForfeitureRateForUnvestedOptionsForCEO>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement contextRef="c-6" decimals="2" id="f-1119" unitRef="number">0.08</cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement contextRef="c-6" decimals="2" id="f-1120" unitRef="number">0.13</cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement>
    <cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates contextRef="c-1" decimals="-3" id="f-1121" unitRef="usd">1832000</cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates contextRef="c-4" decimals="-3" id="f-1122" unitRef="usd">234000</cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates contextRef="c-5" decimals="-3" id="f-1123" unitRef="usd">1536000</cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions contextRef="c-6" decimals="-3" id="f-1124" unitRef="usd">51147000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-1" id="f-1125">P1Y6M</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-1" decimals="-3" id="f-1126" unitRef="usd">52443000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-1" decimals="-3" id="f-1127" unitRef="usd">8387000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-4" decimals="-3" id="f-1128" unitRef="usd">54768000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-4" decimals="-3" id="f-1129" unitRef="usd">8442000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-5" decimals="-3" id="f-1130" unitRef="usd">54505000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-5" decimals="-3" id="f-1131" unitRef="usd">9540000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount contextRef="c-7" decimals="INF" id="f-1132" unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
    <cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount contextRef="c-8" decimals="INF" id="f-1133" unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
    <cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount contextRef="c-6" decimals="INF" id="f-1134" unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock contextRef="c-1" id="f-1135">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the stock-based compensation expense by caption for each period presented on the Consolidated Statements of Operations (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:51.176%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.320%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,966&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,016&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Research, development, and engineering&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;14,628&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Selling, general, and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;35,849&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,796&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;52,443&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54,768&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54,505&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-189" decimals="-3" id="f-1136" unitRef="usd">1966000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-190" decimals="-3" id="f-1137" unitRef="usd">1979000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-191" decimals="-3" id="f-1138" unitRef="usd">2016000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-192" decimals="-3" id="f-1139" unitRef="usd">14628000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-193" decimals="-3" id="f-1140" unitRef="usd">16480000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-194" decimals="-3" id="f-1141" unitRef="usd">17693000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-195" decimals="-3" id="f-1142" unitRef="usd">35849000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-196" decimals="-3" id="f-1143" unitRef="usd">36309000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-197" decimals="-3" id="f-1144" unitRef="usd">34796000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-1" decimals="-3" id="f-1145" unitRef="usd">52443000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-4" decimals="-3" id="f-1146" unitRef="usd">54768000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-5" decimals="-3" id="f-1147" unitRef="usd">54505000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock contextRef="c-1" id="f-1148">Employee Savings Plan&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the Company's Employee Savings Plan, a defined contribution plan, all U.S. employees who have attained age 21 may contribute up to 100% of their pay on a pre-tax basis under the Company's Employee Savings Plan, subject to the annual dollar limitations established by the Internal Revenue Service ("IRS"). The Company matches 50% of the first 6% of pay an employee contributes. Company contributions vest 25%, 50%, 75%, and 100% after one, two, three, and four years of continuous employment with the Company, respectively. Company contributions totaled $3,535,000 in 2024, $3,392,000 in 2023, and $3,284,000 in 2022. Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.&lt;/span&gt;&lt;/div&gt;</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan contextRef="c-1" id="f-1149">P21Y</cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan>
    <us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
      contextRef="c-1"
      decimals="INF"
      id="f-1150"
      unitRef="number">1</us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
      contextRef="c-1"
      decimals="INF"
      id="f-1151"
      unitRef="number">0.50</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent
      contextRef="c-1"
      decimals="INF"
      id="f-1152"
      unitRef="number">0.06</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
    <cgnx:CompanyContributionsVestAtEndOfOneYear
      contextRef="c-1"
      decimals="INF"
      id="f-1153"
      unitRef="number">0.25</cgnx:CompanyContributionsVestAtEndOfOneYear>
    <cgnx:CompanyContributionsVestAtEndOfTwoYear
      contextRef="c-1"
      decimals="INF"
      id="f-1154"
      unitRef="number">0.50</cgnx:CompanyContributionsVestAtEndOfTwoYear>
    <cgnx:CompanyContributionsVestAtEndOfThreeYears
      contextRef="c-1"
      decimals="INF"
      id="f-1155"
      unitRef="number">0.75</cgnx:CompanyContributionsVestAtEndOfThreeYears>
    <cgnx:CompanyContributionsVestAtEndOfFourYears
      contextRef="c-1"
      decimals="INF"
      id="f-1156"
      unitRef="number">1</cgnx:CompanyContributionsVestAtEndOfFourYears>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-1" decimals="-3" id="f-1157" unitRef="usd">3535000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-4" decimals="-3" id="f-1158" unitRef="usd">3392000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-5" decimals="-3" id="f-1159" unitRef="usd">3284000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="c-1" id="f-1161">Income Taxes&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Domestic income before taxes was $35,253,000 in 2024, $16,039,000 in 2023, and $48,546,000 in 2022. Foreign income before taxes was $96,236,000 in 2024, $119,309,000 in 2023, and $202,149,000 in 2022. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Income tax expense consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.680%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.151%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.151%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.154%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;28,009&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29,084&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;48,355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,524&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,544&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,689&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;12,795&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,207&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,243&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;45,328&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(22,273)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(24,731)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(40,772)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(1,324)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,877)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,354)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,587&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,887&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(20,010)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(19,721)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(29,117)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;25,318&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A reconciliation of the U.S. federal statutory corporate tax rate to the Company&#x2019;s income tax expense, or effective tax rate, was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:62.296%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.614%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income tax expense at U.S. federal statutory corporate tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;21&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State income taxes, net of federal benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign tax rate differential&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Taxation on multinational operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax reserves&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Limitation on deduction for executive compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Discrete tax expense related to employee stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax benefit for audit settlements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax expense for foreign earnings not indefinitely reinvested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax expense related to tax return filings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax expense related to rate revaluation on state tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax benefit related to GILTI adjustments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Discrete tax benefit for release of valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;19&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Tax Reserves&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in gross amounts of unrecognized tax benefits, excluding interest and penalties, were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.158%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.642%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,812&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(119)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;505&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions relating to settlements with taxing authorities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,329)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,072)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(242)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,556&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions relating to settlements with taxing authorities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,230)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(894)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,714&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(39)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;208&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,935&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions relating to settlements with taxing authorities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,751)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,331)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;23,736&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s reserve for income taxes, including gross interest and penalties, was $28,733,000 as of December 31, 2024, of which $26,365,000 was classified as a non-current liability and $2,368,000 was classified as an offset to deferred tax assets. The Company's reserve for income taxes, including gross interest and penalties, was $29,053,000 as of December 31, 2023, of which $26,685,000 was classified as a non-current liability and $2,368,000 was classified as an offset to deferred tax assets. The amount of gross interest and penalties included in these balances was $4,997,000 and $3,339,000 as of December&#160;31, 2024 and 2023, respectively. If the Company&#x2019;s tax positions were sustained or the statutes of limitations related to certain positions expired, these reserves would be released and income tax expense would be reduced in a future period. As a result of the expiration of certain statutes of limitations, there is a potential that a portion of these reserves could be released, which would decrease income tax expense by approximately $2,000,000 to $4,000,000 over the next twelve months.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has defined its major tax jurisdictions as the United States, Ireland, China, Japan, and Korea and within the United States, Massachusetts. The statutory tax rate is 12.5% in Ireland, 25% in China, 34.6% in Japan, and 21% in Korea, compared to the U.S. federal statutory corporate tax rate of 21%. These differences resulted in a favorable impact to the effective tax rate of 4 percentage points for 2024, 6 percentage points for 2023, and 7 percentage points for 2022. Management has determined that earnings from its legal entities in China will be indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested. In 2024, the Company recorded a non-current deferred tax liability of $1,400,000 with respect to earnings that are not indefinitely reinvested. In 2023, the Company qualified for a tax holiday in China, which is renewed every three years. The tax effect of this benefit on basic and diluted earnings per share for 2024 was not material. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Within the United States, the tax years 2020 through 2023 remain open to examination by the Internal Revenue Service ("IRS") and various state taxing authorities. The tax years 2013 through 2023 remain open to examination by various taxing authorities in foreign jurisdictions in which the Company operates. Management believes the Company is adequately reserved for these audits. The final determination of tax audits could result in favorable or unfavorable changes in our estimates. Any reserves associated with this audit period will not be released until the issue is settled or the audit is concluded. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Interest and penalties included in income tax expense were $2,145,000 in 2024, $1,032,000 in 2023, and $229,000 in 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash paid for income taxes totaled $59,849,000 in 2024, $56,618,000 in 2023, and $57,016,000 in 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Deferred Tax Assets and Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tax effects of temporary differences and attributes that give rise to deferred income tax assets and liabilities as of December 31, 2024 and December 31, 2023 were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:66.495%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.735%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.737%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Intangible asset in connection with change in tax structure&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;369,474&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;375,360&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalization of R&amp;amp;D expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;35,948&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,521&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock-based compensation expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;22,428&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax credit carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,186&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,848&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Inventory and revenue related&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,355&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,897&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Bonuses, commissions, and other compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,949&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,243&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,877&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign net operating losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,306&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;339&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,624&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,514&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;462,147&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;457,478&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(2,515)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(943)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;459,632&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;456,535&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;GILTI tax basis differences in connection with change in tax structure&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(254,213)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(274,327)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(29,008)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(28,685)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reserve for unremitted foreign earnings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(1,400)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(284,621)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(303,012)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net deferred taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;175,011&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Change in Tax Structure and Global Intangible Low-Taxed Income Tax&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2019, the Company made changes to its international tax structure due to legislation by the European Union regarding low tax structures that resulted in an intercompany sale of intellectual property. As a result, the Company recorded an associated deferred tax asset of $437,500,000 in Ireland based on the fair value of the intellectual property that is being realized over fifteen years as future tax deductions. From a United States perspective, the sale was disregarded, and any future deductions claimed in Ireland are added back to taxable income as part of Global Intangible Low-Taxed Income ("GILTI") minimum tax. The Company recorded an associated deferred tax liability of $350,000,000, representing the GILTI minimum tax related to the fair value of the intellectual property.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Other Deferred Tax Assets and Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Beginning in 2022, the Tax Cuts and Jobs Act eliminates the option to deduct research and development expenditures in the period incurred and requires taxpayers to capitalize and amortize such expenditures over five or fifteen years, as applicable, pursuant to Section 174 of the Internal Revenue Code. Accordingly, the Company recorded deferred tax assets resulting from the capitalization of research and development expenditures. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December 31, 2024, the Company had foreign net operating loss carryforwards of $1,306,000, state tax credit carryforwards of $7,619,000 that will begin to expire for the 2031 tax return, and foreign tax credit carryforwards of $2,567,000.  As of December 31, 2023, the Company had foreign net operating loss carryforwards of $1,720,000, state tax credit carryforwards of $8,740,000, and foreign tax credit carryforwards of $943,000.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December 31, 2024, the Company had a valuation allowance for foreign net operation loss carryforwards of $599,000 and a valuation allowance for foreign tax credits of $1,916,000 that were not considered to be realized.  As of December 31, 2023, the Company had a valuation allowance for foreign tax credits of $943,000 that was not considered to be realized. Should these credits be utilized in a future period, the reserve associated with these &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;credits would be reversed in the period when it is determined that the credits can be utilized to offset future income tax liabilities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;While the deferred tax assets, net of valuation allowance, are not assured of realization, management has evaluated the realizability of these deferred tax as sets and has determined that it is more likely than not that these assets will be realized. In reaching this conclusion, we have evaluated certain relevant criteria including the Company&#x2019;s historical profitability, current projections of future profitability, and the lives of tax credits, net operating losses, and other carryforwards. Should the Company fail to generate sufficient pre-tax profits in future periods, we may be required to establish valuation allowances against these deferred tax assets, resulting in a charge to current operations in the period of determination.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-1" decimals="-3" id="f-1162" unitRef="usd">35253000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-4" decimals="-3" id="f-1163" unitRef="usd">16039000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-5" decimals="-3" id="f-1164" unitRef="usd">48546000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-1" decimals="-3" id="f-1165" unitRef="usd">96236000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-4" decimals="-3" id="f-1166" unitRef="usd">119309000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-5" decimals="-3" id="f-1167" unitRef="usd">202149000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="c-1" id="f-1168">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Income tax expense consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.680%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.151%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.151%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.154%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;28,009&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29,084&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;48,355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,524&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,544&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,689&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;12,795&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,207&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,243&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;45,328&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(22,273)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(24,731)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(40,772)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(1,324)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,877)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,354)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,587&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,887&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(20,010)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(19,721)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(29,117)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;25,318&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1169" unitRef="usd">28009000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1170" unitRef="usd">29084000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1171" unitRef="usd">48355000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1172" unitRef="usd">4524000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1173" unitRef="usd">3544000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1174" unitRef="usd">5689000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1175" unitRef="usd">12795000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1176" unitRef="usd">9207000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1177" unitRef="usd">10243000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1178" unitRef="usd">45328000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1179" unitRef="usd">41835000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1180" unitRef="usd">64287000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1181" unitRef="usd">-22273000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1182" unitRef="usd">-24731000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1183" unitRef="usd">-40772000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1184" unitRef="usd">-1324000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1185" unitRef="usd">-5877000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1186" unitRef="usd">-8354000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1187" unitRef="usd">3587000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1188" unitRef="usd">10887000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1189" unitRef="usd">20009000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1190" unitRef="usd">-20010000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1191" unitRef="usd">-19721000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1192" unitRef="usd">-29117000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1193" unitRef="usd">25318000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1194" unitRef="usd">22114000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1195" unitRef="usd">35170000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="c-1" id="f-1196">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A reconciliation of the U.S. federal statutory corporate tax rate to the Company&#x2019;s income tax expense, or effective tax rate, was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:62.296%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.614%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income tax expense at U.S. federal statutory corporate tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;21&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State income taxes, net of federal benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign tax rate differential&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Taxation on multinational operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax reserves&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Limitation on deduction for executive compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Discrete tax expense related to employee stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax benefit for audit settlements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax expense for foreign earnings not indefinitely reinvested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax expense related to tax return filings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax expense related to rate revaluation on state tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax benefit related to GILTI adjustments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Discrete tax benefit for release of valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;19&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="c-1" decimals="2" id="f-1197" unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="c-4" decimals="2" id="f-1198" unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="c-5" decimals="2" id="f-1199" unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="c-1" decimals="2" id="f-1200" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="c-4" decimals="2" id="f-1201" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="c-5" decimals="2" id="f-1202" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-1" decimals="2" id="f-1203" unitRef="number">0.04</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-4" decimals="2" id="f-1204" unitRef="number">0.06</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-5" decimals="2" id="f-1205" unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="c-1" decimals="2" id="f-1206" unitRef="number">0.03</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="c-4" decimals="2" id="f-1207" unitRef="number">0.03</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="c-5" decimals="2" id="f-1208" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent contextRef="c-1" decimals="2" id="f-1209" unitRef="number">-0.05</cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent contextRef="c-4" decimals="2" id="f-1210" unitRef="number">-0.03</cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent contextRef="c-5" decimals="2" id="f-1211" unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent contextRef="c-1" decimals="2" id="f-1212" unitRef="number">0.01</cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent contextRef="c-4" decimals="2" id="f-1213" unitRef="number">0.03</cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent contextRef="c-5" decimals="2" id="f-1214" unitRef="number">0.01</cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent contextRef="c-1" decimals="2" id="f-1215" unitRef="number">0.01</cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent contextRef="c-4" decimals="2" id="f-1216" unitRef="number">0.02</cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent contextRef="c-5" decimals="2" id="f-1217" unitRef="number">0.01</cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="c-1" decimals="2" id="f-1218" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="c-4" decimals="2" id="f-1219" unitRef="number">-0.01</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="c-5" decimals="2" id="f-1220" unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent contextRef="c-1" decimals="2" id="f-1221" unitRef="number">0.01</cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent contextRef="c-4" decimals="2" id="f-1222" unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent contextRef="c-5" decimals="2" id="f-1223" unitRef="number">-0.01</cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent>
    <us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings contextRef="c-1" decimals="2" id="f-1224" unitRef="usd">0.01</us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings>
    <us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings contextRef="c-4" decimals="2" id="f-1225" unitRef="usd">0</us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings>
    <us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings contextRef="c-5" decimals="2" id="f-1226" unitRef="usd">0</us-gaap:IncomeTaxReconciliationRepatriationOfForeignEarnings>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements contextRef="c-1" decimals="2" id="f-1227" unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements contextRef="c-4" decimals="2" id="f-1228" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements contextRef="c-5" decimals="2" id="f-1229" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal contextRef="c-1" decimals="2" id="f-1230" unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal contextRef="c-4" decimals="2" id="f-1231" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal contextRef="c-5" decimals="2" id="f-1232" unitRef="number">-0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal>
    <us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent contextRef="c-1" decimals="2" id="f-1233" unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent contextRef="c-4" decimals="2" id="f-1234" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent contextRef="c-5" decimals="2" id="f-1235" unitRef="number">-0.03</us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-1" decimals="2" id="f-1236" unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-4" decimals="2" id="f-1237" unitRef="number">-0.04</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-5" decimals="2" id="f-1238" unitRef="number">-0.01</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="c-1" decimals="2" id="f-1239" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="c-4" decimals="2" id="f-1240" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="c-5" decimals="2" id="f-1241" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c-1" decimals="2" id="f-1242" unitRef="number">0.19</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c-4" decimals="2" id="f-1243" unitRef="number">0.16</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c-5" decimals="2" id="f-1244" unitRef="number">0.14</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock contextRef="c-1" id="f-1245">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in gross amounts of unrecognized tax benefits, excluding interest and penalties, were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.158%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.642%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,812&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(119)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;505&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions relating to settlements with taxing authorities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,329)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,072)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(242)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,556&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions relating to settlements with taxing authorities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,230)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(894)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;25,714&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(39)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;208&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,935&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions relating to settlements with taxing authorities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,751)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,331)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2024&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;23,736&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-9" decimals="-3" id="f-1246" unitRef="usd">13812000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-5" decimals="-3" id="f-1247" unitRef="usd">119000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-5" decimals="-3" id="f-1248" unitRef="usd">2850000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-5" decimals="-3" id="f-1249" unitRef="usd">505000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities contextRef="c-5" decimals="-3" id="f-1250" unitRef="usd">2329000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="c-5" decimals="-3" id="f-1251" unitRef="usd">1072000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-8" decimals="-3" id="f-1252" unitRef="usd">13647000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-4" decimals="-3" id="f-1253" unitRef="usd">242000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-4" decimals="-3" id="f-1254" unitRef="usd">12556000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-4" decimals="-3" id="f-1255" unitRef="usd">1877000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities contextRef="c-4" decimals="-3" id="f-1256" unitRef="usd">1230000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="c-4" decimals="-3" id="f-1257" unitRef="usd">894000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-7" decimals="-3" id="f-1258" unitRef="usd">25714000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1259" unitRef="usd">39000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1260" unitRef="usd">208000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1261" unitRef="usd">1935000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities contextRef="c-1" decimals="-3" id="f-1262" unitRef="usd">2751000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="c-1" decimals="-3" id="f-1263" unitRef="usd">1331000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-6" decimals="-3" id="f-1264" unitRef="usd">23736000</us-gaap:UnrecognizedTaxBenefits>
    <cgnx:UnrecognizedTaxBenefitsGross contextRef="c-6" decimals="-3" id="f-1265" unitRef="usd">28733000</cgnx:UnrecognizedTaxBenefitsGross>
    <cgnx:UnrecognizedTaxBenefitsGrossNoncurrentLiability contextRef="c-6" decimals="-3" id="f-1266" unitRef="usd">26365000</cgnx:UnrecognizedTaxBenefitsGrossNoncurrentLiability>
    <cgnx:UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes contextRef="c-6" decimals="-3" id="f-1267" unitRef="usd">2368000</cgnx:UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes>
    <cgnx:UnrecognizedTaxBenefitsGross contextRef="c-7" decimals="-3" id="f-1268" unitRef="usd">29053000</cgnx:UnrecognizedTaxBenefitsGross>
    <cgnx:UnrecognizedTaxBenefitsGrossNoncurrentLiability contextRef="c-7" decimals="-3" id="f-1269" unitRef="usd">26685000</cgnx:UnrecognizedTaxBenefitsGrossNoncurrentLiability>
    <cgnx:UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes contextRef="c-7" decimals="-3" id="f-1270" unitRef="usd">2368000</cgnx:UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c-6" decimals="-3" id="f-1271" unitRef="usd">4997000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c-7" decimals="-3" id="f-1272" unitRef="usd">3339000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves contextRef="c-1" decimals="-3" id="f-1273" unitRef="usd">2000000</cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves>
    <cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves contextRef="c-1" decimals="-3" id="f-1274" unitRef="usd">4000000</cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-198"
      decimals="3"
      id="f-1275"
      unitRef="number">0.125</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-199"
      decimals="2"
      id="f-1276"
      unitRef="number">0.25</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-200"
      decimals="3"
      id="f-1277"
      unitRef="number">0.346</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-201"
      decimals="3"
      id="f-1278"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-202"
      decimals="2"
      id="f-1279"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-1" decimals="2" id="f-1280" unitRef="number">0.04</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-4" decimals="2" id="f-1281" unitRef="number">0.06</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-5" decimals="2" id="f-1282" unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings contextRef="c-6" decimals="-3" id="f-1283" unitRef="usd">1400000</us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-1" decimals="-3" id="f-1284" unitRef="usd">2145000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-4" decimals="-3" id="f-1285" unitRef="usd">1032000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-5" decimals="-3" id="f-1286" unitRef="usd">229000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-1" decimals="-3" id="f-1287" unitRef="usd">59849000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-4" decimals="-3" id="f-1288" unitRef="usd">56618000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-5" decimals="-3" id="f-1289" unitRef="usd">57016000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="c-1" id="f-1290">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tax effects of temporary differences and attributes that give rise to deferred income tax assets and liabilities as of December 31, 2024 and December 31, 2023 were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:66.495%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.735%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.737%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Intangible asset in connection with change in tax structure&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;369,474&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;375,360&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalization of R&amp;amp;D expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;35,948&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,521&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock-based compensation expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;22,428&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax credit carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,186&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,848&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Inventory and revenue related&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,355&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,897&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Bonuses, commissions, and other compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,949&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,243&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,877&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,840&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign net operating losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,306&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;339&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,624&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,514&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;462,147&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;457,478&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(2,515)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(943)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;459,632&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;456,535&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;GILTI tax basis differences in connection with change in tax structure&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(254,213)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(274,327)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(29,008)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(28,685)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reserve for unremitted foreign earnings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(1,400)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(284,621)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(303,012)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net deferred taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;175,011&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure contextRef="c-6" decimals="-3" id="f-1291" unitRef="usd">369474000</cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure>
    <cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure contextRef="c-7" decimals="-3" id="f-1292" unitRef="usd">375360000</cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure>
    <cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses contextRef="c-6" decimals="-3" id="f-1293" unitRef="usd">35948000</cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses>
    <cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses contextRef="c-7" decimals="-3" id="f-1294" unitRef="usd">28521000</cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="c-6" decimals="-3" id="f-1295" unitRef="usd">22428000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="c-7" decimals="-3" id="f-1296" unitRef="usd">20916000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic contextRef="c-6" decimals="-3" id="f-1297" unitRef="usd">10186000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic contextRef="c-7" decimals="-3" id="f-1298" unitRef="usd">7848000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsInventory contextRef="c-6" decimals="-3" id="f-1299" unitRef="usd">8355000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsInventory contextRef="c-7" decimals="-3" id="f-1300" unitRef="usd">10897000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther contextRef="c-6" decimals="-3" id="f-1301" unitRef="usd">6949000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther contextRef="c-7" decimals="-3" id="f-1302" unitRef="usd">6243000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther>
    <cgnx:NoncurrentDeferredTaxAssetsDeprecation contextRef="c-6" decimals="-3" id="f-1303" unitRef="usd">2877000</cgnx:NoncurrentDeferredTaxAssetsDeprecation>
    <cgnx:NoncurrentDeferredTaxAssetsDeprecation contextRef="c-7" decimals="-3" id="f-1304" unitRef="usd">1840000</cgnx:NoncurrentDeferredTaxAssetsDeprecation>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign contextRef="c-6" decimals="-3" id="f-1305" unitRef="usd">1306000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign contextRef="c-7" decimals="-3" id="f-1306" unitRef="usd">339000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <cgnx:DeferredTaxAssetsOtherNoncurrent contextRef="c-6" decimals="-3" id="f-1307" unitRef="usd">4624000</cgnx:DeferredTaxAssetsOtherNoncurrent>
    <cgnx:DeferredTaxAssetsOtherNoncurrent contextRef="c-7" decimals="-3" id="f-1308" unitRef="usd">5514000</cgnx:DeferredTaxAssetsOtherNoncurrent>
    <cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross contextRef="c-6" decimals="-3" id="f-1309" unitRef="usd">462147000</cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross>
    <cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross contextRef="c-7" decimals="-3" id="f-1310" unitRef="usd">457478000</cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-6" decimals="-3" id="f-1311" unitRef="usd">2515000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-7" decimals="-3" id="f-1312" unitRef="usd">943000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet contextRef="c-6" decimals="-3" id="f-1313" unitRef="usd">459632000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet contextRef="c-7" decimals="-3" id="f-1314" unitRef="usd">456535000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment contextRef="c-6" decimals="-3" id="f-1315" unitRef="usd">254213000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment contextRef="c-7" decimals="-3" id="f-1316" unitRef="usd">274327000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <cgnx:DeferredTaxLiabilitiesAmortizationOfIntangibleAssets contextRef="c-6" decimals="-3" id="f-1317" unitRef="usd">29008000</cgnx:DeferredTaxLiabilitiesAmortizationOfIntangibleAssets>
    <cgnx:DeferredTaxLiabilitiesAmortizationOfIntangibleAssets contextRef="c-7" decimals="-3" id="f-1318" unitRef="usd">28685000</cgnx:DeferredTaxLiabilitiesAmortizationOfIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings contextRef="c-6" decimals="-3" id="f-1319" unitRef="usd">1400000</us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings>
    <us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings contextRef="c-7" decimals="-3" id="f-1320" unitRef="usd">0</us-gaap:DeferredTaxLiabilitiesUndistributedForeignEarnings>
    <us-gaap:DeferredTaxLiabilities contextRef="c-6" decimals="-3" id="f-1321" unitRef="usd">284621000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities contextRef="c-7" decimals="-3" id="f-1322" unitRef="usd">303012000</us-gaap:DeferredTaxLiabilities>
    <cgnx:DeferredIncomeTaxAssetsLiabilitiesNet contextRef="c-6" decimals="-3" id="f-1323" unitRef="usd">175011000</cgnx:DeferredIncomeTaxAssetsLiabilitiesNet>
    <cgnx:DeferredIncomeTaxAssetsLiabilitiesNet contextRef="c-7" decimals="-3" id="f-1324" unitRef="usd">153523000</cgnx:DeferredIncomeTaxAssetsLiabilitiesNet>
    <cgnx:DeferredTaxAssetsForeignTaxStructureChange contextRef="c-203" decimals="-3" id="f-1325" unitRef="usd">437500000</cgnx:DeferredTaxAssetsForeignTaxStructureChange>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome contextRef="c-203" decimals="-3" id="f-1326" unitRef="usd">350000000</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign contextRef="c-204" decimals="-3" id="f-1327" unitRef="usd">1306000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState contextRef="c-205" decimals="-3" id="f-1328" unitRef="usd">7619000</cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign contextRef="c-204" decimals="-3" id="f-1329" unitRef="usd">2567000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign contextRef="c-206" decimals="-3" id="f-1330" unitRef="usd">1720000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState contextRef="c-207" decimals="-3" id="f-1331" unitRef="usd">8740000</cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign contextRef="c-206" decimals="-3" id="f-1332" unitRef="usd">943000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-208" decimals="-3" id="f-1333" unitRef="usd">599000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-209" decimals="-3" id="f-1334" unitRef="usd">1916000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-210" decimals="-3" id="f-1335" unitRef="usd">943000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:EarningsPerShareTextBlock contextRef="c-1" id="f-1336">Weighted Average Shares&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted-average shares were calculated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:55.058%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.976%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.976%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.124%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Basic weighted-average common shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;171,438&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;172,249&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Effect of dilutive stock awards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,173&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Diluted weighted-average common and common-equivalent shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;172,611&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173,399&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;174,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock options to purchase 8,496,599, 6,854,092, and 4,715,104 shares of common stock, on a weighted-average basis, were outstanding in 2024, 2023, and 2022, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling 365 and 26,079 that will be settled in shares of common stock to the extent they vest, on a weighted-average basis, were outstanding in 2023 and 2022, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. No restricted stock units were excluded in the calculation of dilutive net income per share in 2024. No PRSUs were excluded in the calculation of dilutive net income per share in 2024, 2023, and 2022 as PRSUs were not anti-dilutive on a weighted-average basis.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock contextRef="c-1" id="f-1337">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted-average shares were calculated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:55.058%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.976%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.976%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.124%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Basic weighted-average common shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;171,438&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;172,249&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Effect of dilutive stock awards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,173&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Diluted weighted-average common and common-equivalent shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;172,611&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173,399&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;174,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-1" decimals="-3" id="f-1338" unitRef="shares">171438000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-4" decimals="-3" id="f-1339" unitRef="shares">172249000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-5" decimals="-3" id="f-1340" unitRef="shares">173407000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="c-1" decimals="-3" id="f-1341" unitRef="shares">1173000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="c-4" decimals="-3" id="f-1342" unitRef="shares">1150000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="c-5" decimals="-3" id="f-1343" unitRef="shares">1462000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-1" decimals="-3" id="f-1344" unitRef="shares">172611000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-4" decimals="-3" id="f-1345" unitRef="shares">173399000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-5" decimals="-3" id="f-1346" unitRef="shares">174869000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-211"
      decimals="0"
      id="f-1347"
      unitRef="shares">8496599</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-212"
      decimals="0"
      id="f-1348"
      unitRef="shares">6854092</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-213"
      decimals="0"
      id="f-1349"
      unitRef="shares">4715104</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-214"
      decimals="0"
      id="f-1350"
      unitRef="shares">365</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-215"
      decimals="0"
      id="f-1351"
      unitRef="shares">26079</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-216"
      decimals="0"
      id="f-1352"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-217"
      decimals="0"
      id="f-1353"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-218"
      decimals="0"
      id="f-1354"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-219"
      decimals="0"
      id="f-1355"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:SegmentReportingDisclosureTextBlock contextRef="c-1" id="f-1356">Segment and Geographic Information&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company operates in one segment, machine vision technology. The Company has a single, company-wide management team that administers operations as a whole rather than as discrete operating segments. The Company&#x2019;s chief operating decision maker is the chief executive officer, who assesses performance and allocates  resources at the corporate level, as compared to the geography, product line, or end market levels. The Company offers a variety of machine vision products that have similar economic characteristics and are distributed by the same sales channels to the same types of customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes information about geographic areas (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:28.665%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.243%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.393%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;United&#160;States&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Europe&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Greater China &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;306,766&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;217,880&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;164,147&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;225,722&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;914,515&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;56,948&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;15,655&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;14,844&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16,025&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;103,472&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;288,324&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;220,665&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,115&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;837,547&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62,946&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,005&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,028&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,958&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;112,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;343,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;234,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;200,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;66,928&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,334&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;86,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue is presented geographically based on the customer&#x2019;s country of domicile. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue from a single customer accounted for 10% and 11% of total revenue in 2024 and 2022, respectively. Revenue from this customer was not greater than 10% of total revenue in 2023. Accounts receivable from this customer was 10% of total accounts receivable as of December 31, 2024 and was not greater than 10% of total accounts receivable as of December 31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue from a second customer accounted for 11% of total revenue in 2022. Revenue from this customer was not greater than 10% of total revenue in 2024 or 2023. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2024 or December 31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The measure of segment profit or loss for the Company's single segment is net income. Segment expenses were disaggregated based on the information the chief operating decision maker uses to assess performance and allocate resources considering both quantitative and qualitative factors. The following table summarizes significant segment expenses, which represents the difference between segment revenue and segment net income, (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:55.332%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.350%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.408%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.350%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.408%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.352%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;914,515&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;837,547&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of revenue (1)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;288,721&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;236,306&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;284,185&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross profit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;625,794&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;601,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;721,905&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Research, development, and engineering expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Salaries and fringe benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;79,544&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;78,762&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;76,448&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Incentive compensation (2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,711&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,446&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;14,628&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,229&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,056&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,649&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other segment expenses (3)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;37,703&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total research, development, and engineering expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;139,815&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;139,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;141,133&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Selling, general, and administrative expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Salaries and fringe benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;179,898&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;166,612&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;150,696&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Incentive compensation (2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;45,565&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,716&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;35,849&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,796&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16,936&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,759&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,702&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other segment expenses (3)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;92,666&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;88,946&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total selling, general, and administrative expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;370,914&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;339,139&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;312,107&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Loss (recovery) from fire&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,779&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Restructuring charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;115,065&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;130,702&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;246,229&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,531&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(10,039)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,837)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Investment income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;13,971&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,093&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,715&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other income (expense)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;922&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;592&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(412)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income before income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;131,489&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;135,348&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;250,695&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;25,318&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net income&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106,171&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;113,234&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;215,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1) Cost of revenue includes depreciation and amortization expense (including amortization of acquired technologies) of $12,524,000, $7,065,000, and $6,270,000 for 2024, 2023, and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2)   Incentive compensation includes company bonus and sales commissions.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(3)  Other segment expenses&lt;/span&gt;&lt;span style="color:#ee2724;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;include outside services, prototyping materials, sales demonstration equipment, travel and entertainment, marketing programs, and rent, among other less significant expenses.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-1"
      decimals="INF"
      id="f-1357"
      unitRef="segment">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock contextRef="c-1" id="f-1358">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes information about geographic areas (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:28.665%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.243%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.393%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;United&#160;States&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Europe&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Greater China &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;306,766&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;217,880&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;164,147&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;225,722&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;914,515&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;56,948&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;15,655&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;14,844&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16,025&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;103,472&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;288,324&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;220,665&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,115&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;837,547&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62,946&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,005&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,028&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,958&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;112,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;343,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;234,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;200,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;66,928&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,334&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;86,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-220" decimals="-3" id="f-1359" unitRef="usd">306766000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-138" decimals="-3" id="f-1360" unitRef="usd">217880000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-141" decimals="-3" id="f-1361" unitRef="usd">164147000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-221" decimals="-3" id="f-1362" unitRef="usd">225722000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-1363" unitRef="usd">914515000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets contextRef="c-222" decimals="-3" id="f-1364" unitRef="usd">56948000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-223" decimals="-3" id="f-1365" unitRef="usd">15655000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-224" decimals="-3" id="f-1366" unitRef="usd">14844000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-225" decimals="-3" id="f-1367" unitRef="usd">16025000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-6" decimals="-3" id="f-1368" unitRef="usd">103472000</us-gaap:NoncurrentAssets>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-226" decimals="-3" id="f-1369" unitRef="usd">288324000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-139" decimals="-3" id="f-1370" unitRef="usd">220665000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-142" decimals="-3" id="f-1371" unitRef="usd">164115000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-227" decimals="-3" id="f-1372" unitRef="usd">164443000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-4" decimals="-3" id="f-1373" unitRef="usd">837547000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets contextRef="c-228" decimals="-3" id="f-1374" unitRef="usd">62946000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-229" decimals="-3" id="f-1375" unitRef="usd">17005000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-230" decimals="-3" id="f-1376" unitRef="usd">17028000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-231" decimals="-3" id="f-1377" unitRef="usd">15958000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-7" decimals="-3" id="f-1378" unitRef="usd">112937000</us-gaap:NoncurrentAssets>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-232" decimals="-3" id="f-1379" unitRef="usd">343835000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-140" decimals="-3" id="f-1380" unitRef="usd">234643000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-143" decimals="-3" id="f-1381" unitRef="usd">227447000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-233" decimals="-3" id="f-1382" unitRef="usd">200165000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-5" decimals="-3" id="f-1383" unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets contextRef="c-234" decimals="-3" id="f-1384" unitRef="usd">66928000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-235" decimals="-3" id="f-1385" unitRef="usd">14725000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-236" decimals="-3" id="f-1386" unitRef="usd">1334000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-237" decimals="-3" id="f-1387" unitRef="usd">3370000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-8" decimals="-3" id="f-1388" unitRef="usd">86357000</us-gaap:NoncurrentAssets>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-238"
      decimals="2"
      id="f-1389"
      unitRef="number">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-239"
      decimals="2"
      id="f-1390"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-240"
      decimals="3"
      id="f-1391"
      unitRef="number">0.10</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-241"
      decimals="2"
      id="f-1392"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock contextRef="c-1" id="f-1393">The following table summarizes significant segment expenses, which represents the difference between segment revenue and segment net income, (in thousands):&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:55.332%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.350%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.408%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.350%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.408%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.352%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;914,515&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;837,547&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of revenue (1)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;288,721&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;236,306&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;284,185&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross profit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;625,794&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;601,241&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;721,905&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Research, development, and engineering expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Salaries and fringe benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;79,544&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;78,762&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;76,448&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Incentive compensation (2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,711&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,446&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;14,628&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,229&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,056&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,649&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other segment expenses (3)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;37,703&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total research, development, and engineering expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;139,815&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;139,400&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;141,133&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Selling, general, and administrative expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Salaries and fringe benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;179,898&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;166,612&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;150,696&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Incentive compensation (2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;45,565&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,716&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;35,849&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36,309&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,796&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16,936&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,759&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,702&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other segment expenses (3)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;92,666&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;88,946&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total selling, general, and administrative expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;370,914&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;339,139&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;312,107&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Loss (recovery) from fire&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,779&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Restructuring charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;115,065&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;130,702&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;246,229&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,531&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(10,039)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,837)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Investment income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;13,971&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,093&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,715&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other income (expense)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;922&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;592&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(412)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income before income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;131,489&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;135,348&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;250,695&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;25,318&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,114&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net income&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106,171&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;113,234&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;215,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1) Cost of revenue includes depreciation and amortization expense (including amortization of acquired technologies) of $12,524,000, $7,065,000, and $6,270,000 for 2024, 2023, and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2)   Incentive compensation includes company bonus and sales commissions.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(3)  Other segment expenses&lt;/span&gt;&lt;span style="color:#ee2724;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;include outside services, prototyping materials, sales demonstration equipment, travel and entertainment, marketing programs, and rent, among other less significant expenses.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-1394" unitRef="usd">914515000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-4" decimals="-3" id="f-1395" unitRef="usd">837547000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-5" decimals="-3" id="f-1396" unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-1" decimals="-3" id="f-1397" unitRef="usd">288721000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-4" decimals="-3" id="f-1398" unitRef="usd">236306000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-5" decimals="-3" id="f-1399" unitRef="usd">284185000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit contextRef="c-1" decimals="-3" id="f-1400" unitRef="usd">625794000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-4" decimals="-3" id="f-1401" unitRef="usd">601241000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-5" decimals="-3" id="f-1402" unitRef="usd">721905000</us-gaap:GrossProfit>
    <us-gaap:LaborAndRelatedExpense contextRef="c-242" decimals="-3" id="f-1403" unitRef="usd">79544000</us-gaap:LaborAndRelatedExpense>
    <us-gaap:LaborAndRelatedExpense contextRef="c-243" decimals="-3" id="f-1404" unitRef="usd">78762000</us-gaap:LaborAndRelatedExpense>
    <us-gaap:LaborAndRelatedExpense contextRef="c-244" decimals="-3" id="f-1405" unitRef="usd">76448000</us-gaap:LaborAndRelatedExpense>
    <cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions contextRef="c-242" decimals="-3" id="f-1406" unitRef="usd">4711000</cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions>
    <cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions contextRef="c-243" decimals="-3" id="f-1407" unitRef="usd">1446000</cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions>
    <cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions contextRef="c-244" decimals="-3" id="f-1408" unitRef="usd">3447000</cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-242" decimals="-3" id="f-1409" unitRef="usd">14628000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-243" decimals="-3" id="f-1410" unitRef="usd">16480000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-244" decimals="-3" id="f-1411" unitRef="usd">17693000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-242" decimals="-3" id="f-1412" unitRef="usd">3229000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-243" decimals="-3" id="f-1413" unitRef="usd">3056000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-244" decimals="-3" id="f-1414" unitRef="usd">2649000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:OtherExpenses contextRef="c-242" decimals="-3" id="f-1415" unitRef="usd">37703000</us-gaap:OtherExpenses>
    <us-gaap:OtherExpenses contextRef="c-243" decimals="-3" id="f-1416" unitRef="usd">39656000</us-gaap:OtherExpenses>
    <us-gaap:OtherExpenses contextRef="c-244" decimals="-3" id="f-1417" unitRef="usd">40896000</us-gaap:OtherExpenses>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-1" decimals="-3" id="f-1418" unitRef="usd">139815000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-4" decimals="-3" id="f-1419" unitRef="usd">139400000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-5" decimals="-3" id="f-1420" unitRef="usd">141133000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:LaborAndRelatedExpense contextRef="c-245" decimals="-3" id="f-1421" unitRef="usd">179898000</us-gaap:LaborAndRelatedExpense>
    <us-gaap:LaborAndRelatedExpense contextRef="c-246" decimals="-3" id="f-1422" unitRef="usd">166612000</us-gaap:LaborAndRelatedExpense>
    <us-gaap:LaborAndRelatedExpense contextRef="c-247" decimals="-3" id="f-1423" unitRef="usd">150696000</us-gaap:LaborAndRelatedExpense>
    <cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions contextRef="c-245" decimals="-3" id="f-1424" unitRef="usd">45565000</cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions>
    <cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions contextRef="c-246" decimals="-3" id="f-1425" unitRef="usd">35513000</cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions>
    <cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions contextRef="c-247" decimals="-3" id="f-1426" unitRef="usd">40716000</cgnx:IncentiveCompensationExpenseBonusAndSalesCommissions>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-245" decimals="-3" id="f-1427" unitRef="usd">35849000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-246" decimals="-3" id="f-1428" unitRef="usd">36309000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-247" decimals="-3" id="f-1429" unitRef="usd">34796000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-245" decimals="-3" id="f-1430" unitRef="usd">16936000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-246" decimals="-3" id="f-1431" unitRef="usd">11759000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization contextRef="c-247" decimals="-3" id="f-1432" unitRef="usd">10702000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:OtherExpenses contextRef="c-245" decimals="-3" id="f-1433" unitRef="usd">92666000</us-gaap:OtherExpenses>
    <us-gaap:OtherExpenses contextRef="c-246" decimals="-3" id="f-1434" unitRef="usd">88946000</us-gaap:OtherExpenses>
    <us-gaap:OtherExpenses contextRef="c-247" decimals="-3" id="f-1435" unitRef="usd">75197000</us-gaap:OtherExpenses>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-1" decimals="-3" id="f-1436" unitRef="usd">370914000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-4" decimals="-3" id="f-1437" unitRef="usd">339139000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-5" decimals="-3" id="f-1438" unitRef="usd">312107000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <cgnx:LossGainFromCatastrophes contextRef="c-1" decimals="-3" id="f-1439" unitRef="usd">0</cgnx:LossGainFromCatastrophes>
    <cgnx:LossGainFromCatastrophes contextRef="c-4" decimals="-3" id="f-1440" unitRef="usd">-8000000</cgnx:LossGainFromCatastrophes>
    <cgnx:LossGainFromCatastrophes contextRef="c-5" decimals="-3" id="f-1441" unitRef="usd">20779000</cgnx:LossGainFromCatastrophes>
    <us-gaap:RestructuringCharges contextRef="c-1" decimals="-3" id="f-1442" unitRef="usd">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-4" decimals="-3" id="f-1443" unitRef="usd">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-5" decimals="-3" id="f-1444" unitRef="usd">1657000</us-gaap:RestructuringCharges>
    <us-gaap:OperatingIncomeLoss contextRef="c-1" decimals="-3" id="f-1445" unitRef="usd">115065000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-4" decimals="-3" id="f-1446" unitRef="usd">130702000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-5" decimals="-3" id="f-1447" unitRef="usd">246229000</us-gaap:OperatingIncomeLoss>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c-1" decimals="-3" id="f-1448" unitRef="usd">1531000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c-4" decimals="-3" id="f-1449" unitRef="usd">-10039000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c-5" decimals="-3" id="f-1450" unitRef="usd">-1837000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:InvestmentIncomeNonoperating contextRef="c-1" decimals="-3" id="f-1451" unitRef="usd">13971000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating contextRef="c-4" decimals="-3" id="f-1452" unitRef="usd">14093000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating contextRef="c-5" decimals="-3" id="f-1453" unitRef="usd">6715000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-1" decimals="-3" id="f-1454" unitRef="usd">922000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-4" decimals="-3" id="f-1455" unitRef="usd">592000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-5" decimals="-3" id="f-1456" unitRef="usd">-412000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-1" decimals="-3" id="f-1457" unitRef="usd">131489000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-4" decimals="-3" id="f-1458" unitRef="usd">135348000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-5" decimals="-3" id="f-1459" unitRef="usd">250695000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1460" unitRef="usd">25318000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1461" unitRef="usd">22114000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1462" unitRef="usd">35170000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-1463" unitRef="usd">106171000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-4" decimals="-3" id="f-1464" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-5" decimals="-3" id="f-1465" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization contextRef="c-1" decimals="-3" id="f-1466" unitRef="usd">12524000</us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization contextRef="c-4" decimals="-3" id="f-1467" unitRef="usd">7065000</us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization contextRef="c-5" decimals="-3" id="f-1468" unitRef="usd">6270000</us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization>
    <us-gaap:BusinessCombinationDisclosureTextBlock contextRef="c-1" id="f-1470">Business Combinations&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Moritex Corporation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On October 18, 2023, the Company acquired all the outstanding shares of Moritex Corporation ("Moritex"), a global provider of premium optical components based in Japan, for an enterprise value of &#xa5;40&#160;billion Japanese Yen, or approximately $270&#160;million U.S. Dollars based on the closing date foreign exchange rate. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The cash-free, debt-free enterprise value was adjusted by cash acquired, debt assumed, and final working capital balances to arrive at total consideration to be allocated to assets acquired and liabilities assumed of &#xa5;44,376,245,000 ($296,138,000 based on the closing date foreign exchange rate), of which &#xa5;44,227,414,000 ($295,144,000) was paid in cash on the closing date and &#xa5;148,831,000 ($994,000) was paid during the first quarter of 2024 as a purchase price adjustment based on the closing balance sheet. The Company acquired cash balances totaling $38,088,000 as part of this transaction, to arrive at a net cash outflow of $257,056,000 on the closing date. There was no contingent consideration as part of this transaction. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In the fourth quarter of 2024, the Company recorded measurement-period adjustments that increased goodwill by $6,478,000 and are reflected in the final purchase price allocation below. The adjustments consisted primarily of changes to deferred income tax liabilities based on the final push-down accounting for intangible assets to legal-entity jurisdictions, a reduction in customer relationships based on a methodology refinement, and changes to provisional assets and liabilities based on new information obtained within the one-year measurement period that refined initial estimates.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The portfolio of Moritex optical components allows us to expand our served market to include high-end lenses and lighting and provide our customers with a more complete product offering by replacing third-party components with Cognex-manufactured optical components. Moritex also provides the Company with a more substantial presence in Japan, which is an important machine vision market where we believe we can increase our share through a stronger local presence.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;This transaction was accounted for as a business combination. Identifiable assets acquired and liabilities assumed were recorded at their estimated fair values as of the acquisition date, which were valued using level 3 inputs for intangible assets, inventories, and property, plant and equipment. Pro-forma information, as well as revenue and earnings from the date of the acquisition, are not presented because they are not material to the Company&#x2019;s consolidated financial statements. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Transaction costs were approximately $5,800,000 and were expensed as incurred as part of SG&amp;amp;A expenses on the Consolidated Statement of Operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The purchase price was allocated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.016%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.784%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;38,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,543&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Inventories&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,882&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Property, plant and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,805&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;151,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,800&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred income tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,162&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,363&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accounts payable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,639)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14,718)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred income tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(22,665)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reserve for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,864)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,294)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;Purchase price&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;296,138&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The customer relationships, completed technologies, and trademarks are included in "Intangible assets" on the Consolidated Balance &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sheet.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The customer relationships are being amortized to SG&amp;amp;A expenses over fifteen years, the completed technologies are being amortized to cost of revenue over nine years, and the trademarks are being amortized to SG&amp;amp;A expenses over three years. None of the acquired goodwill is deductible for tax purposes.&lt;/span&gt;&lt;/div&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <cgnx:BusinessCombinationEnterpriseValue contextRef="c-248" decimals="-9" id="f-1471" unitRef="jpy">40000000000</cgnx:BusinessCombinationEnterpriseValue>
    <cgnx:BusinessCombinationEnterpriseValue contextRef="c-248" decimals="-6" id="f-1472" unitRef="usd">270000000</cgnx:BusinessCombinationEnterpriseValue>
    <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="c-249" decimals="-3" id="f-1473" unitRef="jpy">44376245000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="c-249" decimals="-3" id="f-1474" unitRef="usd">296138000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross contextRef="c-249" decimals="-3" id="f-1475" unitRef="jpy">44227414000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireBusinessesGross contextRef="c-249" decimals="-3" id="f-1476" unitRef="usd">295144000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireBusinessesGross contextRef="c-250" decimals="-3" id="f-1477" unitRef="jpy">148831000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireBusinessesGross contextRef="c-250" decimals="-3" id="f-1478" unitRef="usd">994000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents contextRef="c-248" decimals="-3" id="f-1479" unitRef="usd">38088000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="c-249" decimals="-3" id="f-1480" unitRef="usd">257056000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:GoodwillPurchaseAccountingAdjustments contextRef="c-251" decimals="-3" id="f-1481" unitRef="usd">6478000</us-gaap:GoodwillPurchaseAccountingAdjustments>
    <us-gaap:BusinessAcquisitionCostOfAcquiredEntityTransactionCosts contextRef="c-248" decimals="-3" id="f-1482" unitRef="usd">5800000</us-gaap:BusinessAcquisitionCostOfAcquiredEntityTransactionCosts>
    <us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock contextRef="c-1" id="f-1483">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The purchase price was allocated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.016%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.784%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;38,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,543&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Inventories&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,882&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Property, plant and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,805&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;151,525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,800&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred income tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,162&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,363&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accounts payable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,639)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14,718)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred income tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(22,665)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reserve for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,864)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,294)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;Purchase price&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;296,138&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents contextRef="c-248" decimals="-3" id="f-1484" unitRef="usd">38088000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables contextRef="c-248" decimals="-3" id="f-1485" unitRef="usd">11543000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory contextRef="c-248" decimals="-3" id="f-1486" unitRef="usd">21882000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="c-248" decimals="-3" id="f-1487" unitRef="usd">19805000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:Goodwill contextRef="c-248" decimals="-3" id="f-1488" unitRef="usd">151525000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="c-252" decimals="-3" id="f-1489" unitRef="usd">64800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="c-253" decimals="-3" id="f-1490" unitRef="usd">32300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="c-254" decimals="-3" id="f-1491" unitRef="usd">850000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets contextRef="c-248" decimals="-3" id="f-1492" unitRef="usd">4162000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets contextRef="c-248" decimals="-3" id="f-1493" unitRef="usd">3363000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable contextRef="c-248" decimals="-3" id="f-1494" unitRef="usd">6639000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="c-248" decimals="-3" id="f-1495" unitRef="usd">14718000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="c-248" decimals="-3" id="f-1496" unitRef="usd">22665000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes contextRef="c-248" decimals="-3" id="f-1497" unitRef="usd">5864000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther contextRef="c-248" decimals="-3" id="f-1498" unitRef="usd">2294000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet contextRef="c-248" decimals="-3" id="f-1499" unitRef="usd">296138000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <cgnx:CatastropheTextBlock contextRef="c-1" id="f-1500">Loss (Recovery) from Fire&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On June 7, 2022, the Company&#x2019;s primary contract manufacturer experienced a fire at its plant in Indonesia, destroying a significant amount of Cognex inventories.&lt;/span&gt;&lt;/div&gt;In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses of inventories and other assets of $48,339,000, partially offset by insurance proceeds received from the Company's insurance carrier of $27,560,000. In 2023, the Company recorded recoveries related to the fire of $8,000,000, consisting of $2,500,000 for proceeds received from the Company's insurance carrier in relation to a business interruption claim and $5,500,000 for proceeds received as part of a financial settlement for lost inventory and other losses incurred as a result of the fire.</cgnx:CatastropheTextBlock>
    <us-gaap:LossFromCatastrophes contextRef="c-255" decimals="-3" id="f-1501" unitRef="usd">20779000</us-gaap:LossFromCatastrophes>
    <cgnx:GrossLossFromCatastrophes contextRef="c-255" decimals="-3" id="f-1502" unitRef="usd">48339000</cgnx:GrossLossFromCatastrophes>
    <us-gaap:InsuranceRecoveries contextRef="c-255" decimals="-3" id="f-1503" unitRef="usd">27560000</us-gaap:InsuranceRecoveries>
    <us-gaap:InsuranceRecoveries contextRef="c-256" decimals="-3" id="f-1504" unitRef="usd">8000000</us-gaap:InsuranceRecoveries>
    <cgnx:InsuranceRecoveriesBusinessInterruption contextRef="c-256" decimals="-3" id="f-1505" unitRef="usd">2500000</cgnx:InsuranceRecoveriesBusinessInterruption>
    <cgnx:InsuranceRecoveriesLostInventoryAndOtherLosses contextRef="c-256" decimals="-3" id="f-1506" unitRef="usd">5500000</cgnx:InsuranceRecoveriesLostInventoryAndOtherLosses>
    <us-gaap:SubsequentEventsTextBlock contextRef="c-1" id="f-1507">Subsequent Events&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 12, 2025, the Company's Board of Directors declared a cash dividend of $0.080 per share. The dividend is payable March 13, 2025 to all shareholders of record as of the close of business on February 27, 2025.&lt;/span&gt;&lt;/div&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:DividendsPayableAmountPerShare
      contextRef="c-257"
      decimals="INF"
      id="f-1508"
      unitRef="usdPerShare">0.080</us-gaap:DividendsPayableAmountPerShare>
    <srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock contextRef="c-1" id="f-1509">SCHEDULE II &#x2013; VALUATION AND QUALIFYING ACCOUNTS&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:30.711%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.536%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.472%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.536%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.472%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.536%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.472%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.536%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.914%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:2.581%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.472%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:2.581%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.481%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Additions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Description&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance&#160;at&lt;br/&gt;Beginning&lt;br/&gt;of Period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Charged&#160;to&lt;br/&gt;Costs and&lt;br/&gt;Expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Charged&lt;br/&gt;to Other&lt;br/&gt;Accounts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Deductions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance&#160;at&lt;br/&gt;End of&lt;br/&gt;Period&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="33" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(In thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allowance for Credit Losses on Accounts Receivable:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;583&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;459&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(222)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;827&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(645)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;583&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;776&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;191&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(237)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reserve&#160;for Sales Returns:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred Tax Valuation Allowance:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;943&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,572&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,515&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,661&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,718)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;943&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,188&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,234&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,889&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,650)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,661&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;padding-left:36pt;text-indent:-36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt"&gt;Specific write-offs&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-indent:-36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt"&gt;Foreign currency exchange rate changes&lt;/span&gt;&lt;/div&gt;</srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-258" decimals="-3" id="f-1510" unitRef="usd">583000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-259" decimals="-3" id="f-1511" unitRef="usd">459000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-259" decimals="-3" id="f-1512" unitRef="usd">222000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-259" decimals="-3" id="f-1513" unitRef="usd">7000</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-260" decimals="-3" id="f-1514" unitRef="usd">827000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-261" decimals="-3" id="f-1515" unitRef="usd">730000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-262" decimals="-3" id="f-1516" unitRef="usd">500000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-262" decimals="-3" id="f-1517" unitRef="usd">645000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-262" decimals="-3" id="f-1518" unitRef="usd">-2000</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-258" decimals="-3" id="f-1519" unitRef="usd">583000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-263" decimals="-3" id="f-1520" unitRef="usd">776000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-264" decimals="-3" id="f-1521" unitRef="usd">191000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-264" decimals="-3" id="f-1522" unitRef="usd">237000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-264" decimals="-3" id="f-1523" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-261" decimals="-3" id="f-1524" unitRef="usd">730000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-265" decimals="-3" id="f-1525" unitRef="usd">2018000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-266" decimals="-3" id="f-1526" unitRef="usd">500000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-266" decimals="-3" id="f-1527" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-266" decimals="-3" id="f-1528" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-266" decimals="-3" id="f-1529" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-267" decimals="-3" id="f-1530" unitRef="usd">2518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-268" decimals="-3" id="f-1531" unitRef="usd">1518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-269" decimals="-3" id="f-1532" unitRef="usd">500000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-269" decimals="-3" id="f-1533" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-269" decimals="-3" id="f-1534" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-269" decimals="-3" id="f-1535" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-265" decimals="-3" id="f-1536" unitRef="usd">2018000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-270" decimals="-3" id="f-1537" unitRef="usd">1518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-271" decimals="-3" id="f-1538" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-271" decimals="-3" id="f-1539" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-271" decimals="-3" id="f-1540" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-271" decimals="-3" id="f-1541" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-268" decimals="-3" id="f-1542" unitRef="usd">1518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-272" decimals="-3" id="f-1543" unitRef="usd">943000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-273" decimals="-3" id="f-1544" unitRef="usd">1572000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-273" decimals="-3" id="f-1545" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-273" decimals="-3" id="f-1546" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-273" decimals="-3" id="f-1547" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-274" decimals="-3" id="f-1548" unitRef="usd">2515000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-275" decimals="-3" id="f-1549" unitRef="usd">7661000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-276" decimals="-3" id="f-1550" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-276" decimals="-3" id="f-1551" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-276" decimals="-3" id="f-1552" unitRef="usd">6718000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-276" decimals="-3" id="f-1553" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-272" decimals="-3" id="f-1554" unitRef="usd">943000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-277" decimals="-3" id="f-1555" unitRef="usd">8188000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-278" decimals="-3" id="f-1556" unitRef="usd">2234000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-278" decimals="-3" id="f-1557" unitRef="usd">3889000</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-278" decimals="-3" id="f-1558" unitRef="usd">6650000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-278" decimals="-3" id="f-1559" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-275" decimals="-3" id="f-1560" unitRef="usd">7661000</us-gaap:ValuationAllowancesAndReservesBalance>
    <dei:AuditorName contextRef="c-1" id="f-1561">GRANT THORNTON LLP</dei:AuditorName>
    <dei:AuditorLocation contextRef="c-1" id="f-1562">Boston, Massachusetts</dei:AuditorLocation>
    <ecd:MtrlTermsOfTrdArrTextBlock contextRef="c-279" id="f-1563">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;During the quarter ended December 31, 2024, the following Section 16 officer adopted a Rule 10b5-1 trading arrangement, as defined in Item 408 of Regulation S-K, that is intended to satisfy the affirmative defense conditions of Exchange Act Rule 10b5-1(c):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;padding-left:14.5pt"&gt;On December 10, 2024, Joerg Kuechen, the Chief Technology Officer of the Company, adopted a trading arrangement for the sale of shares of the Company&#x2019;s common stock (a &#x201c;Rule 10b5-1 Trading Plan&#x201d;). Mr. Kuechen&#x2019;s Rule 10b5-1 Trading Plan, which has a term ending on December 10, 2025, provides for the exercise of vested stock options to acquire up to 265,732 shares of common stock and the sale of up to 277,342 shares of common stock pursuant to the terms of such Rule 10b5-1 Trading Plan. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;During the quarter ended December 31, 2024, no 10b5-1 trading arrangements were modified or terminated, and no director or officer of the Company adopted or terminated a &#x201c;non-Rule 10b5-1 trading arrangement,&#x201d; as defined in Item 408 of Regulation S-K.&lt;/span&gt;&lt;/div&gt;</ecd:MtrlTermsOfTrdArrTextBlock>
    <ecd:TrdArrAdoptionDate contextRef="c-279" id="f-1564">December 10, 2024</ecd:TrdArrAdoptionDate>
    <ecd:TrdArrIndName contextRef="c-279" id="f-1565">Joerg Kuechen</ecd:TrdArrIndName>
    <ecd:TrdArrIndTitle contextRef="c-279" id="f-1566">Chief Technology Officer</ecd:TrdArrIndTitle>
    <ecd:Rule10b51ArrAdoptedFlag contextRef="c-279" id="f-1567">true</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:TrdArrSecuritiesAggAvailAmt
      contextRef="c-280"
      decimals="INF"
      id="f-1568"
      unitRef="shares">265732</ecd:TrdArrSecuritiesAggAvailAmt>
    <ecd:TrdArrSecuritiesAggAvailAmt
      contextRef="c-281"
      decimals="INF"
      id="f-1569"
      unitRef="shares">277342</ecd:TrdArrSecuritiesAggAvailAmt>
    <ecd:NonRule10b51ArrAdoptedFlag contextRef="c-163" id="f-1570">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:Rule10b51ArrTrmntdFlag contextRef="c-163" id="f-1571">false</ecd:Rule10b51ArrTrmntdFlag>
    <ecd:NonRule10b51ArrTrmntdFlag contextRef="c-163" id="f-1572">false</ecd:NonRule10b51ArrTrmntdFlag>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc
          xlink:href="#f-108"
          xlink:label="f-108"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#f-109"
          xlink:label="f-109"
          xlink:type="locator"/>
        <link:loc
          xlink:href="#f-107"
          xlink:label="f-107"
          xlink:type="locator"/>
        <link:footnote id="fn-1" xlink:label="fn-1" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"><xhtml:span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">175,481&#160;</xhtml:span></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="f-108"
          xlink:to="fn-1"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="f-109"
          xlink:to="fn-1"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="f-107"
          xlink:to="fn-1"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
